DISPLAY RED, GREEN & BLUE COMPONENTS OF RGB IMAGE
79 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Hello, I want to display 3 images of red, blue & green component. I don't want to display the GRAYSCALE images. I tried following code:
X-imread('Hello.jpg');
R = X(:,:,1);
image(R), colormap([[0:1/255:1]', zeros(256,1), zeros(256,1)]), colorbar;
%Green Component
G = X(:,:,2);
figure;
image(G), colormap([zeros(256,1),[0:1/255:1]', zeros(256,1)]), colorbar;
%Blue component
B = X(:,:,3);
figure;
image(B), colormap([zeros(256,1), zeros(256,1), [0:1/255:1]']), colorbar;
but it gives me 3 images with background as Red, green & blue.. How can I display only Red component of RGB image [No Grayscales]
Thanks
2 comentarios
Walter Roberson
el 19 de Mzo. de 2022
A = [0:1/255:1];
B = (0:1/255:1);
isequal(A, B)
The line
A = [0:1/255:1];
to MATLAB means the same thing as
temporary = 0:1/255:1;
A = horzcat(temporary);
clear temporary
but horzcat() of a single variable returns the same thing as the input (but after having taken a little bit of time), so the functionality is the same as
A = 0:1/255:1;
but taking slightly more time.
There are differences between using () and [] brackets. For example,
[1 -2]
(1 -2)
That is, inside [], in some combinations of spacing, the space can indicate end of an expression and beginning of the next element.
Respuestas (5)
Walter Roberson
el 15 de Abr. de 2012
X-imread('Hello.jpg');
R = X
R(:,:,2:3) = 0;
image(R);
pause(5);
G = X;
G(:,:,[1 3]) = 0;
image(G);
pause(5);
B = X;
B(:,:,1:2) = 0;
image(B);
pause(5);
3 comentarios
DGM
el 24 de Abr. de 2022
To answer the "reverse process" question:
% assume that this is the "forward process"
X = imread('peppers.png');
R = X;
R(:,:,2:3) = 0;
G = X;
G(:,:,[1 3]) = 0;
B = X;
B(:,:,1:2) = 0;
montage({R G B},'size',[1 3]);
% now you have three RGB images called R,G, and B
% you could reassemble them directly:
RGB1 = cat(3,R(:,:,1),G(:,:,2),B(:,:,3));
Priyanka Johri
el 2 de Nov. de 2016
x = imread('Hello.jpg');
figure, imshow(x(:,:,1)); % Red component
figure, imshow(x(:,:,2)); % Green component
figure, imshow(x(:,:,3)); % Blue component
% Is this what you required?
9 comentarios
Image Analyst
el 27 de Jun. de 2021
@abdelatti errokhsy, What does "styb by stybe" mean? I have no idea what a styb or stybe is.
Walter Roberson
el 27 de Jun. de 2021
I have a suspicion that they are asking for a line by line explanation of the code.
Image Analyst
el 15 de Abr. de 2012
Not sure what you want. I guess my first answer would be to just not display the green and blue components and that would then "display only Red component." But I don't know what you mean when you say "No Grayscales." The red channel, or any color channel is simply a numerical array, and that is normally displayed as gray scale, though you can apply a pseudocolor look up table (colormap) like you did to make it appear in any tint or even combination of many different colors. But you don't want the red channel to appear red, like you're doing now, and you don't want it to appear in gray scale, so what do you want?
13 comentarios
Moe Makki
el 22 de Mayo de 2021
@Image Analyst how do i scan pixels of an image and then remove green and blue components if redValue is above 200
Image Analyst
el 22 de Mayo de 2021
Shatha Ali.
el 17 de Oct. de 2020
i=imread('6.jpg');
red= i(:,:,1);
green=i(:,:,2);
blue=i(:,:,3);
black=i(:,:,0:0:0);
white=i(:,:,1:1:1);
black=zeros(size(i,1),size(i,2),'unit8');
just_red=cat(3,red,black,black);
just_green=cat(3,black,green,black);
just_blue=cat(3,black,black,blue);
just_black=cat(3,black,black,black);
just_white=cat(3,white,white,white);
picture(3,2,1),imshow(i);
picture(3,2,2),imshow(just_red);
picture(3,2,3),imshow(just_green);
picture(3,2,4),imshow(just_blue);
picture(3,2,5),imshow(just_black);
picture(3,2,6),imshow(just_white);
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/383753/image.png)
0 comentarios
Dayangku Nur Faizah Pengiran Mohamad
el 5 de Dic. de 2021
Editada: Walter Roberson
el 5 de Dic. de 2021
B = X(:,:,3);
figure;
image(B), colormap([zeros(256,1), zeros(256,1), [0:1/255:1]']), imwrite(B,colormap,'blueHello.jpg');
Hope this will helps you.
0 comentarios
Ver también
Categorías
Más información sobre Colormaps en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!