How to normalise Image intensity?

30 views (last 30 days)
Kyle
Kyle on 1 Jul 2011
Moved: DGM on 5 Mar 2023
Hi,
I have 2 picture of the same object taken on different time. There are intensity different between the 2 picture(minor changes in lighting condition.)
Is there a way for me to make both to have the same intensity? Eg, Im2's intensity follows Im1's intensity?
Im1:
Im2
Thanks

Accepted Answer

Dustin
Dustin on 3 Jul 2011
Hi Kyle,
The method suggested by Sean de is fine to normalize the maximum intensity. However, it will not necessarily give you the same appearance for both images (due to the intensity distributions not definitely being scaled by a multiplicative factor).
I suggest you try the histogram transfer method in order to get a somewhat similar appearance. Something along the lines of:
b = histeq(b,imhist(a));
Cheers.
  7 Comments
Dustin
Dustin on 6 Jul 2011
Moved: DGM on 5 Mar 2023
You need to find the difference in the intensity values in the histograms of each image. Then, this difference for each intensity level can be transferred to the histogram of the third image, and histogram equalization performed on that image with this histogram.
Basic arithmetic and histeq should let you solve your problem. Look at this for further information about histogram equalization:
http://en.wikipedia.org/wiki/Histogram_equalization
Farah Nadiah
Farah Nadiah on 2 Apr 2016
Moved: DGM on 5 Mar 2023
Dustin..can i ask..how to subtract the two histogram that u mean in previous comment...can i have the coding thanx.. :)

Sign in to comment.

More Answers (2)

Sean de Wolski
Sean de Wolski on 1 Jul 2011
Inormalized = double(I)./double(max(I(:)));
Doing this to both will give them both the same maximum intensity (1).
  1 Comment
Kyle
Kyle on 2 Jul 2011
I try the code but the image still looks the same for me.
I uploaded the image,hope u can help me make both the images into same intensity.

Sign in to comment.


Image Analyst
Image Analyst on 9 Jul 2011
If you really want to match intensities of gray scale images, meaning that the histograms of the two images have EXACTLY the same histograms after transforming one image, then you need to look at my "Custom-shaped histogram" File Exchange submission: http://www.mathworks.com/matlabcentral/fileexchange/?term=authorid%3A31862 You could use this on each color channel independently for what will probably give very acceptable results.
If you want to match histograms of a color image, I direct you to the Grundland/Dodgson method: http://www.eyemaginary.com/Portfolio/ColorHistogramWarp.html

Community Treasure Hunt

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

Start Hunting!