全局低照度图像增强matlab

 
clear;
clc;
close all;
%读入图片
A=imread('before.png');
% A= rgb2gray(A);
% mean2(A)
% std2(A)
%显示源图片
figure ;
imshow(A);
title('RGB Original Image')
%调用ALTM
outval = ALTM(A);
% mean2(outval)
% std2(outval)
%输出目标图像
figure ;
imshow(outval);
%图像增强函数
function outval = ALTM(I)
II = im2double(I);
Ir=double(II(:,:,1));
Ig=double(II(:,:,2));
Ib=double(II(:,:,3));
% 
% % % Global Adaptation
% input world luminance values
Lw = 0.299 * Ir + 0.587 * Ig + 0.114 * Ib;
% Lw = im2double(I);
% % % the maximum luminance value
Lwmax = max(max(Lw));
[m, n] = size(Lw);%[]矩阵表示
% % % log-average luminance
Lwaver = exp(sum(sum(log(0.001 + Lw))) / (m * n));
Lg = log(Lw / Lwaver + 1) / log(Lwmax / Lwaver + 1);
gain = Lg ./ Lw;
gain(find(Lw == 0)) = 0;
outval = cat(3, gain .* Ir, gain .* Ig, gain .* Ib);
% outval = gain .* Lw;
 
end

结果如下:

原图片

基于MATLAB照度图像增强技术是指通过一系列算法处理,在光照不足的情况下提升图像的质量和可视性。这类技术广泛应用于夜间监控、医疗成像等领域,对于改善视觉效果、提高后续分析精度有着重要意义。 常见的照度图像增强方法包括但不限于: ### 1. 直方图均衡化(Histogram Equalization) 直方图均衡化是一种简单有效的全局对比度拉伸算法,它能够自动调整灰度分布,使得变换后的图像具有均匀的概率密度函数(PDF),从而达到增强细节的目的。然而,该方法可能会导致过度饱和的问题。 ```matlab % 加载图片并转换为灰度图 I = rgb2gray(imread('lowlight_image.jpg')); % 执行直方图均衡化 enhancedImg_HE = histeq(I); imshowpair(enhancedImg_HE,I,'montage'); ``` ### 2. 自适应直方图均衡化 (Adaptive Histogram Equalization - AHE) 和 Contrast Limited Adaptive Histogram Equalization (CLAHE) 为了克服传统直方图均衡化的局限性,AHE将整个图像划分为若干个小区域,并对每个小块单独应用直方图均衡化;而CLAHE则进一步限制了局部直方图的最大高度,防止过强的噪声放大现象发生。 ```matlab claheFilter = adapthisteq(I,'ClipLimit',0.02,'Distribution','rayleigh'); figure; subplot(1,2,1); imshow(I); title('原图'); subplot(1,2,2); imshow(claheFilter);title('经 CLAHE 处理后'); ``` ### 3. Retinex 理论及其变体 Retinex理论假设人类感知的颜色不仅取决于物体反射光谱特性还受到周围环境照明条件的影响。基于此思想发展出了多种改进版本如单尺度/多尺度Retinex模型等,它们能在保持色彩保真度的同时有效去除阴影部分带来的负面影响。 #### 单尺度Retinex(Single-Scale Retinex): ```matlab function ssrImage = SSR(img,sigma) log_Retinex = zeros(size(img)); for i=1:size(img,3) singleChannel = double(img(:,:,i)).^2; % 计算各通道平方值 gaussianBlur = imgaussfilt(singleChannel,sigma); ratio = sqrt(singleChannel ./ (gaussianBlur + eps)); log_Retinex(:,:,i)=ratio.^4 .*img(:,:,i)/255 ; end [~,maxVal]=min(log_Retinex(:)); [~,minVal]=max(log_Retinex(:)); normalized=(log_Retinex-minVal)./(maxVal-minVal)*255; ssrImage = uint8(normalized); end sigmaValue = 60;% 可调参数 ssrResult = SSR(double(I), sigmaValue ); imshow(ssrResult); ``` 以上只是三种常用的技术方案示例,实际应用场景下还可以结合其他预处理步骤(例如去噪)、后期优化措施以及深度学习框架来进行更复杂高效的综合设计。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值