Changing pixel colors of .JPG image produces weird colors

조회 수: 3(최근 30일)
Bao 2022년 7월 20일
댓글: Bao 2022년 7월 21일
function applyGrid(app)
app.newImage = app.originalImage;
[imageWidth, imageLength] = size(app.originalImage);
imageLength = imageLength/3;
for row = imageWidth/18 : imageWidth/18 : imageWidth
app.newImage(round(row), :) = 0;
for col = imageLength/36 : imageLength/36 : imageLength
app.newImage(:, round(col)) = 0;
% display new image with grid lines to UI
app.Image.ImageSource = app.newImage;
This code is supposed to draw a grid onto an image. It works, but the vertical lines are blue when their value is set to 0 and red when set to 255. The horizontal lines are black at 0 and green at 255. The grid lines need to all be black. The image is a .jpg read to a property with imread().

채택된 답변

Jonas 2022년 7월 20일
dont forget to set all 3 channels of the rgb image to 0 by using e.g.
app.newImage(:, round(col),:) = 0
  댓글 수: 3
Bao 2022년 7월 21일
Yeah that makes sense. Thanks for the explanation.

댓글을 달려면 로그인하십시오.

추가 답변(1개)

Image Analyst
Image Analyst 2022년 7월 20일
You could use line() to draw lines in the overlay above the image instead of burning them into the image arrray itself. So do you want the grid lines burned in (so the underlying image, not just the displayed image, is changed), or not?
  댓글 수: 1
Bao 2022년 7월 21일
I want the grid lines burned in. We are making an application that is able to plot and transform a 360 degree image. It needs to be burned in so that the user can save the new image.

댓글을 달려면 로그인하십시오.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by