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

3 vues (au cours des 30 derniers jours)
How to extract 24 binary images from one RGB image which is of 24-bit/pixel color depth in matlab ?

Réponses (2)

David Young
David Young le 18 Août 2015
Modifié(e) : David Young le 18 Août 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.

Image Analyst
Image Analyst le 19 Août 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

Catégories

En savoir plus sur Get Started with MATLAB dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by