低光照清晰化matlab代码
时间: 2024-09-22 15:07:52 浏览: 35
在MATLAB中,为了实现低光照图像的清晰化,你可以使用一些基于图像处理的技术,例如局部对比度增强(LCE)或者去噪算法后叠加高光部分。下面是一个简单的例子,展示了如何使用局部对比度增强的方法:
```matlab
% 加载图像
img = imread('low_light_image.png');
% 转换为灰度图像
gray_img = rgb2gray(img);
% 对比度增强
local_contrast_enhancement = imadjust(gray_img, [0.2; 0.8], [0; 1]); % 这里[0.2; 0.8]代表新的亮度范围,[0; 1]是原范围
% 修复高光部分(这里使用简单的直方图均衡)
hist_eq = imhist(local_contrast_enhancement, 'Normalization', 'probability');
max_hist_val = max(hist_eq);
enhanced_img = histeq(local_contrast_enhancement, max_hist_val);
% 显示原始和增强后的图像
subplot(1,2,1), imshow(gray_img, 'InitialMagnification', 'fit'), title('Original Image');
subplot(1,2,2), imshow(enhanced_img, 'InitialMagnification', 'fit'), title('Enhanced Image');
% 保存结果
imwrite(enhanced_img, 'enhanced_low_light_image.png');
```
这段代码首先将彩色图像转换为灰度,然后通过`imadjust`函数增强对比度,最后使用直方图均衡的方式来修复过曝的部分。
阅读全文