Contrast enhancement techniques in HSV or LAB

18 views (last 30 days)
S. on 3 Dec 2021
Commented: Image Analyst on 21 Dec 2021
My first question is if it is in general better to apply the contract enhancement techniques like imadjust(), histeq() in HSV (on V) or LAB (on L).
Besides this, I have a question about the italic part of the definition of imadjust(). Can someone explain this to me with a visualization or something like that?
  • imadjust increases the contrast of the image by mapping the values of the input intensity image to new values such that, by default, 1% of the data is saturated at low and high intensities of the input data.
Are there besides imadjust(), histeq(), adapthisteq() other contrast enhancement techniques I could try? Imadjust() seems to have the best effect, however I would expect histeq() would have the best effect, because it ensures a uniform histogram in stead of the tops that are still seen at imadjust().

Accepted Answer

Image Analyst
Image Analyst on 3 Dec 2021
I think doing it in any of those color spaces will produce an approximately similar results. Note that increasing contrast is almost never necessary prior to doing image analysis. It may make the image easier to see but doing something like binarizing the image will not be affected. It will still choose a threshold, just a different one than if you had not doine contrast adjustment, but the binary image will be the same.
Histogram equalization is something beginners learn because it seems like a neat trick, but it is rarely needed. I can say that in over 40 years of image analysis I've never needed to do histogram equalization. Now adaptive histogram equalization, like adapthisteq() where the contrast adjustment varies as you move around the image, can be useful to flatten the background and allow for global thresholding. But global histogram equalization is almost never necessary or desired. As you found out, it often does a non-linear histogram stretch that usually gives an unnatural appearance as compared to the linear stretch that imadjust() gives.
Image Analyst
Image Analyst on 21 Dec 2021
Sure, you can try it, just to drive home that fact that it's probably neither necessary nor does it produce a pleasing image as compared to a linear stretch. Once you try it you might understand better. In over 40 years of image processing I don't think I've ever run across a situation where histogram equalization was really required or even helpful, not to mention the fact that it makes the images look unnatural.

Sign in to comment.

More Answers (1)

yanqi liu
yanqi liu on 4 Dec 2021
yes,sir,may be use imtool to interactively adjust relevant parameters and analyze the visualization effect

Community Treasure Hunt

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

Start Hunting!