How to extract 24 binary images from one RGB image which is of 24-bit/pixel color depth?
2 views (last 30 days)
Show older comments
How to extract 24 binary images from one RGB image which is of 24-bit/pixel color depth in matlab ?
0 Comments
Answers (2)
David Young
on 18 Aug 2015
Edited: David Young
on 18 Aug 2015
Try this:
% example rgb 24-bit image
img = imread('peppers.png');
% Make the binary array array corresponding to each bit
% and store it in a element of a cell array. bitarrays{1} has
% bit 1 for the r band, bitarrays{9} has bit 1 for the g band,
% bitarrays{24} has bit 8 for the b band, etc.
bitarrays = cell(1, 24); % allocate cell array
for b = 1:24
band = floor((b-1)/8) + 1;
bitinband = b - 8*(band-1);
bitarrays{b} = bitget(img(:,:,band), bitinband);
end
To see if the results look reasonable, display each image in turn:
for b = 1:24
imshow(bitarrays{b}, []);
pause;
end
One question though: why do you want to do this? I can't think of a reason why it would be useful, and if you would like to say what the underlying problem is, it may be that someone can suggest a much better way to tackle it.
0 Comments
Image Analyst
on 19 Aug 2015
David's answer looks good. By the way, I also answered in your duplicate post: http://www.mathworks.com/matlabcentral/answers/223883-how-to-get-each-plane-of-a-24-bit-plane-image#answer_189718
0 Comments
See Also
Categories
Find more on Image Processing Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!