changing the rgb values of the pixels in a jpg image
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commento
Poornakant
il 15 Lug 2017
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.
Risposte (3)
Walter Roberson
il 6 Apr 2011
Replace your 3 existing assignments with
J(i,j,:) = newrgb .* 255;
2 Commenti
roshana
il 7 Apr 2011
1 Commento
Walter Roberson
il 7 Apr 2011
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 .
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!