How to separate an image to rgb?

14 Ansichten (letzte 30 Tage)
Jitha
Jitha am 31 Dez. 2013
Bearbeitet: DGM am 12 Feb. 2023
how to divide an image into its r,g,and b colour planes,

Akzeptierte Antwort

Image Analyst
Image Analyst am 31 Dez. 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 Kommentare
Walter Roberson
Walter Roberson am 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);
atersaw tigyhun
atersaw tigyhun am 29 Jul. 2019
Verschoben: DGM am 12 Feb. 2023
hahaha too long

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (3)

Sailesh Sidhwani
Sailesh Sidhwani am 25 Okt. 2018
Bearbeitet: Sailesh Sidhwani am 29 Jul. 2019
Starting R2018b, Image Processing Toolbox has a new function "imsplit" which does exactly this: https://www.mathworks.com/help/images/ref/imsplit.html

ES
ES am 31 Dez. 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);

Negesse Tadesse
Negesse Tadesse am 29 Jul. 2019
Bearbeitet: DGM am 12 Feb. 2023
how about imsplit function?
[R G B] = imsplit(myImage);

Kategorien

Mehr zu Image Processing Toolbox finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by