adjust brightness of an image with respect to another image.
Show older comments
Is there some automatic function for that, something like imregister only to equalize the brightness between two images ? Thanks.
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
0 votes
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
Elad
on 17 Jun 2012
Image Analyst
on 17 Jun 2012
Not that I know of.
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?
Image Analyst
on 26 Feb 2016
Try using imhistmatch() in a loop.
I would like to ask you if imhistmatch() have worked for your 160 images with different levels of brightness and contrast. I have same problem to solve.
Categories
Find more on Image Preview and Device Configuration in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!