retinex matlab版本图像增强代码
时间: 2023-11-13 19:05:22 浏览: 74
以下是一个简单的 Retinex 图像增强的 Matlab 代码。该代码实现了基于单尺度 Retinex 算法的图像增强,其中参数 alpha 和 beta 可以调整增强效果。
```matlab
function output = retinex(input, alpha, beta)
% input: 输入图像
% alpha: 控制大气光照的强度 (typical value: 125)
% beta: 控制对比度增强的强度 (typical value: 46)
if nargin < 2
alpha = 125;
end
if nargin < 3
beta = 46;
end
% 将图像转为对数域
log_input = log10(double(input)+1);
% 计算大气光照
max_input = max(log_input(:));
atmos_light = max_input - alpha;
% 去除大气光照
output = log_input - atmos_light;
output(output < 0) = 0;
% 对比度增强
output = beta * output;
output = exp(output) - 1;
% 将像素值限制在 [0, 255]
output(output < 0) = 0;
output(output > 255) = 255;
output = uint8(output);
end
```
使用示例:
```matlab
img = imread('lena.png');
output = retinex(img);
imshow(output);
```
阅读全文