changing the rgb values of the pixels in a jpg image
3 次查看(过去 30 天)
显示 更早的评论
J=imread('A.jpg');
for i=1:r
for j=1:c
J(i,j,1)=newrgb(1,1);
J(i,j,2)=newrgb(1,2);
J(i,j,3)=newrgb(1,3);
end
end
%%newrgb is a matrix with 3 rgb values.
when I check the newrgb matrix, it has double values larger than one,i guess 1 to 255.
I know imread gives me values of uint8, but i tried converting the newrgb values to uint8, or even converting the rgb of my image to double, but the result is a white picture, what should i do?
thank you
1 个评论
Poornakant
2017-7-15
Hello Roshana, I'm working on something similar to this question of yours. Changing the RGB values of a pixel to get a specific curve of an image. I'm new to MATLAB coding could you please help me with the method you've used to sort your problem. Thank you.
回答(3 个)
roshana
2011-4-7
1 个评论
Walter Roberson
2011-4-7
If J is uint8 and your newrgb values are in the range you indicate, then your original code will set the entire block J(1:r,1:c,:) to be the color indicated by newrgb. If r and c are the size of J then the result would be a monochrome picture. If the values in newrgb are all the same, then the monochrome picture would be a shade of gray.
After you assign the values, look at J(1,1,:) to see whether the values match the (rounded) values of newrgb .
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!