adjust brightness of an image with respect to another image.
17 views (last 30 days)
Show older comments
Is there some automatic function for that, something like imregister only to equalize the brightness between two images ? Thanks.
0 Comments
Answers (3)
Walter Roberson
on 15 Jun 2012
The below might not look like it makes the brightnesses of the images the same, but mathematically it does the job, provided that you do not get saturation.
b1 = mean2(rgb2gray(Image1));
b2 = mean2(rgb2gray(Image2));
NewImage2 = Image2 + (b1-b2);
Image Analyst
on 17 Jun 2012
For the ultimate in histogram matching of grayscale images, see my histogram matching/shaping routine. http://www.mathworks.com/matlabcentral/fileexchange/?term=authorid%3A31862 You can't do better since it will provide as exact a match as is theoretically possible. (It's only slightly inexact when the image sizes are different, for obvious reasons. Ask if you don't know why.)
For a color image, I think the algorithm by Mark Grundland and Neil A. Dodgson is possibly the best algorithm out there: http://www.eyemaginary.com/Portfolio/ColorHistogramWarp.html
4 Comments
Thang Le
on 25 Feb 2016
Sorry for digging up an old post. I've looked at the custom-shaped histogram package and I'm not sure how to equalize the brightness and contrast across multiple images. I have 160 images with different levels of brightness and contrast and I would like to create a set of new 160 images from these with the same level of brightness and contrast. Image Analyst, could you help?
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!