Multiscale Retinex
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.
Citation pour cette source
Geoffrey Schivre (2024). Multiscale Retinex (https://www.mathworks.com/matlabcentral/fileexchange/71386-multiscale-retinex), MATLAB Central File Exchange. Extrait(e) le .
Compatibilité avec les versions de MATLAB
Plateformes compatibles
Windows macOS LinuxCatégories
Tags
Remerciements
A inspiré : Hierax
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Découvrir Live Editor
Créez des scripts avec du code, des résultats et du texte formaté dans un même document exécutable.
Version | Publié le | Notes de version | |
---|---|---|---|
1.0.2 | corrected minor bug while combining the different scales ! |
||
1.0.1 | misspelling in algorithm presentation corrected |
||
1.0.0 |