RGB images are 3-D(i.e 3 , 2-D array for R,G,B ), can we extract these array seperatly?

9 次查看(过去 30 天)
I want to convert the 3-D image array into 1-D array, so if i got R,G & B array seperatly then these can be converted into 2-D array easily.. so how to get these 3 (R,G,B) array??

采纳的回答

Wayne King
Wayne King 2014-3-29
编辑:Wayne King 2014-3-29
You just select each "page" of the matrix.
im = imread('ngc6543a.jpg');
Rim = im(:,:,1);
Gim = im(:,:,2);
Bim = im(:,:,3);
  4 个评论

请先登录,再进行评论。

更多回答(2 个)

Image Analyst
Image Analyst 2014-3-29
Extract each color channel
% Extract the individual red, green, and blue color channels.
redChannel = rgbImage(:, :, 1);
greenChannel = rgbImage(:, :, 2);
blueChannel = rgbImage(:, :, 3);
as shown in my attached demo that takes RGB histograms of every image in your folder.
Screenshot:
  7 个评论
Image Analyst
Image Analyst 2016-10-13
That doesn't look right. If the image is 980 by 1280 by 4 color channels, and you've read in all the data, then your reshape would not work since your new desired size does not contain all the pixels. I suggest you start your own discussion thread (rather than keep bugging priyanka), and read this and attach your actual image.

请先登录,再进行评论。


priyanka
priyanka 2014-3-29
When i am using imtool() function and checking the pixel information,pixel value is not matched with the pixel value which is obtained by redChannel = rgbImage(:, :, 1); greenChannel = rgbImage(:, :, 2); blueChannel = rgbImage(:, :, 3);
  1 个评论
Image Analyst
Image Analyst 2021-3-27
Attach your image. There's a good possibility you're cheking the value using the x,y from the cursor in imtool as redChannel(x,y), which would be incorrect. Remember y is row, not x, so it needs to be redChannel(y, x), NOT redChannel(x, y);

请先登录,再进行评论。

Community Treasure Hunt

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

Start Hunting!

Translated by