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.
引用格式
Geoffrey Schivre (2024). Multiscale Retinex (https://www.mathworks.com/matlabcentral/fileexchange/71386-multiscale-retinex), MATLAB Central File Exchange. 检索时间: .
MATLAB 版本兼容性
平台兼容性
Windows macOS Linux类别
标签
致谢
启发作品: Hierax
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!