# How to extract 24 binary images from one RGB image which is of 24-bit/pixel color depth?

12 views (last 30 days)
Anushka on 18 Aug 2015
Answered: Image Analyst on 19 Aug 2015
How to extract 24 binary images from one RGB image which is of 24-bit/pixel color depth in matlab ?

David Young on 18 Aug 2015
Edited: David Young on 18 Aug 2015
Try this:
% example rgb 24-bit image
% 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.

Image Analyst on 19 Aug 2015