rgb2ind equivalent for grayscale images - NOT gray2ind because its not the same, at all.

7 views (last 30 days)
So I love that rgb2ind finds the best matching colors for the number of colors that you want and that you have the option of no dithering, but I realized that finding the best colors in a NxMx3 matrix is probably a lot more computationally expensive than just doing a grayscale image.
The gray2ind just does an even colormap split based on the number of colors you want, not the image itself, for instance, if I want 3 colors, it just bins it like [0 .5 1] which I find not useful at all in this case.
Having both the no dithering option and the color approximation based on image values are important to me, does anyone have a suggestion?

Accepted Answer

Image Analyst
Image Analyst on 13 Mar 2013
There is a new imquantize() function. You should probably be using imquantize() for grayscale quantization rather than gray2ind(). I don't see any need for gray2ind().

More Answers (1)

Walter Roberson
Walter Roberson on 13 Mar 2013
Work around:
rgb2ind( YourGrayImage(:,:,[1 1 1]), N )
  3 Comments
Walter Roberson
Walter Roberson on 13 Mar 2013
I didn't say it would be efficient performance: it is a work-around, to provide the functionality of finding the "best" colors.
Shaun VanWeelden
Shaun VanWeelden on 13 Mar 2013
haha well thank you anyway, I do appreciate it and I hadn't thought of doing grayImg(:,:,[1 1 1]) before, I usually use repmat, that is a nice trick!

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!