You are now following this Submission
- You will see updates in your followed content feed
- You may receive emails, depending on your communication preferences
Two different implementation of the Multiscale Retinex algorithm for image enhancement based on Petro, A. B., Sbert, C., & Morel, J. M. (2014). Multiscale retinex. Image Processing On Line, 71-88.
The first one use an exponential downscaling by 'scalefactor' until 'scalefactor^nscale', this has the advantage of speed up the algorithm for large image but produces more halo artifacts.
The second one take as input the different scales disered and thus allow non constrain scaling.
The miniature is generated by :
Im = imread('example.jpg');
% use the maximum chanel as an approximation of the image illumination
L = max(Im, [], 3);
% compute reflectance using both methods
ret = MSRetinex(mat2gray(L), 5, 3, 2, [5 5], 8);
ret2 = MSRetinex2(mat2gray(L), [5, 35, 150], [5 5], 8);
% use value of hsv domain to enhance the image
Ihsv = rgb2hsv(Im);
Ihsv(:, :, 3) = mat2gray(ret);
R1 = hsv2rgb(Ihsv);
Ihsv(:, :, 3) = mat2gray(ret2);
R2 = hsv2rgb(Ihsv);
% display the miniature
figure;
subplot(2, 1, 1)
imshowpair(Im, R1, 'montage')
title('MSRetinex output')
subplot(2, 1, 2)
imshowpair(Im, R2, 'montage')
title('MSRetinex2 output')
The image 'example.jpg' comes from : https://www.dropbox.com/s/096l3uy9vowgs4r/Code.rar, Wang, S., Zheng, J., Hu, H. M., & Li, B. (2013). Naturalness preserved enhancement algorithm for non-uniform illumination images. IEEE Transactions on Image Processing, 22(9), 3538-3548.
Cite As
Geoffrey Schivre (2026). Multiscale Retinex (https://se.mathworks.com/matlabcentral/fileexchange/71386-multiscale-retinex), MATLAB Central File Exchange. Retrieved .
Acknowledgements
Inspired: Hierax
General Information
- Version 1.0.2 (147 KB)
MATLAB Release Compatibility
- Compatible with R2015a and later releases
Platform Compatibility
- Windows
- macOS
- Linux
