How to convert an image from 3d to 2d?
Show older comments
I got following error while processing it.
Error using ==> iptcheckinput Function HISTEQ expected its first input, I, to be two-dimensional.
Error in ==> histeq at 71
iptcheckinput(a,{'uint8','uint16','double','int16','single'}, ...
Error in ==> Project_Stage_1 at 9
I2 = histeq(f); %improve contrast
2 Comments
Matt J
on 1 Nov 2012
Well, why doubt the error message? Is f two-dimensional or isn't it?
Richa Nayak
on 11 Nov 2012
Answers (1)
Image Analyst
on 1 Nov 2012
You can't do it on a color image. You can do it on each color channel, one at a time,
% Extract the individual red, green, and blue color channels.
redChannel = rgbImage(:, :, 1);
greenChannel = rgbImage(:, :, 2);
blueChannel = rgbImage(:, :, 3);
or convert to hsv colorspace
% Extract the individual red, green, and blue color channels.
hsv = rgb2hsv(rgbImage);
hChannel = hsv (:, :, 1);
sChannel = hsv (:, :, 2);
vChannel = hsv (:, :, 3);
and do it on the v channel - this is the best way and it avoids severe color artifacts like you'll have doing it in RGB space.
Categories
Find more on Convert Image Type in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!