Contrast enhancement techniques in HSV or LAB
18 views (last 30 days)
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().
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.