How to separate an image to rgb?
14 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
how to divide an image into its r,g,and b colour planes,
0 commentaires
Réponse acceptée
Image Analyst
le 31 Déc 2013
No reshaping is needed. Simply extract the color channels you need:
% Extract the individual red, green, and blue color channels.
redChannel = rgbImage(:, :, 1);
greenChannel = rgbImage(:, :, 2);
blueChannel = rgbImage(:, :, 3);
Then, to reverse the process and create an RGB image from three separate color channels:
% Recombine separate color channels into a single, true color RGB image.
rgbImage = cat(3, redChannel, greenChannel, blueChannel);
3 commentaires
Walter Roberson
le 14 Mai 2017
This code would definitely work if you have an RGB image stored in a variable named rgbImage .
It is possible, however, that this is not what you want done. What you might want done might be
% Extract the individual red, green, and blue color channels.
redChannel = rgbImage(:, :, 1);
greenChannel = rgbImage(:, :, 2);
blueChannel = rgbImage(:, :, 3);
z = zeros(size(rgbImage), class(rgbImage));
redImage = z; redImage(:,:,1) = redChannel;
greenImage = z; greenImage(:,:,2) = greenChannel;
blueImage = z; blueImage(:,:,3) = blueChannel;
subplot(2,2,1); image(rgbImage);
subplot(2,2,2); image(redImage);
subplot(2,2,3); image(greenImage);
subplot(2,2,4); image(blueImage);
Plus de réponses (3)
Sailesh Sidhwani
le 25 Oct 2018
Modifié(e) : Sailesh Sidhwani
le 29 Juil 2019
Starting R2018b, Image Processing Toolbox has a new function "imsplit" which does exactly this: https://www.mathworks.com/help/images/ref/imsplit.html
0 commentaires
ES
le 31 Déc 2013
I=imread('image.jpg')
will give I (a 3d array, of size [x,y,3] )where x and y are the dimensions of the image. 3 is for R, G, and B components.
To separate out the three components, you can do a
R = reshape(I(:,:,1),[],1);
G = reshape(I(:,:,2),[],1);
B = reshape(I(:,:,3),[],1);
0 commentaires
Negesse Tadesse
le 29 Juil 2019
Modifié(e) : DGM
le 12 Fév 2023
how about imsplit function?
[R G B] = imsplit(myImage);
0 commentaires
Voir également
Catégories
En savoir plus sur Red dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!