资源简介

即对图像R、G、B分别计算,并加权求和。 在MSR算法的增强过程中,图像可能会增加了噪声而造成对图像的局部区域色彩失真,使得物体的真真颜色效果不能很好的呈现出来,从而影响了整体视觉效果。为了弥补这个缺点,一般情况下会采用带色彩恢复因子C的多尺度算法来解决。

资源截图

代码片段和文件信息

close all;
clear all;
clc;  
I=imread(‘1.jpg‘);
if size(I3) ~= 3
    error(‘请输入彩色图像!‘);
end
R=I(::1);
G=I(::2);
B=I(::3);
[N1M1]=size(R);
R0=double(R);
G0=double(G);
B0=double(B);
% 取对数
Rlog=log(R0+1);
Glog=log(G0+1);
Blog=log(B0+1);
% 傅里叶变换
Rfft2=fft2(R0);
Gfft2=fft2(G0);
Bfft2=fft2(B0);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 高斯滤波函数
% 可以设置不同的sigma处理后取均值
sigma=128;
F=zeros(N1M1);
for i=1:N1
    for j=1:M1
        F(ij)=exp(-((i-N1/2)^2+(j-M1/2)^2)/(2*sigma*sigma));
    end
end
F=F./(sum(F(:)));
% 对高斯滤波函数进行二维傅里叶变换
Ffft=fft2(double(F));
% 卷积运算
DR0=Rfft2.*Ffft;
DG0=Gfft2.*Ffft;
DB0=Bfft2.*Ffft;
DR=ifft2(DR0);
DG=ifft2(DG0);
DB=ifft2(DB0);
% 在对数域中,用原图像减去低通滤波后的的图像,得到高频增强图像
DRdouble=double(DR);
DGdouble=double(DG);
DBdouble=double(DB);
DRlog=log(DRdouble+1);
DGlog=log(DGdouble+1);
DBlog=log(DBdouble+1);
Rr0=Rlog-DRlog;
Gg0=Glog-DGlog;
Bb0=Blog-DBlog;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
sigma=256;
F=zeros(N1M1);
for i=1:N1
    for j=1:M1
        F(ij)=exp(-((i-N1/2)^2+(j-M1/2)^2)/(2*sigma*sigma));
    end
end
F=F./(sum(F(:)));
% 对高斯滤波函数进行二维傅里叶变换
Ffft=fft2(double(F));
% 卷积运算
DR0=Rfft2.*Ffft;
DG0=Gfft2.*Ffft;
DB0=Bfft2.*Ffft;
DR=ifft2(DR0);
DG=ifft2(DG0);
DB=ifft2(DB0);
% 在对数域中,用原图像减去低通滤波后的的图像,得到高频增强图像
DRdouble=double(DR);
DGdouble=double(DG);
DBdouble=double(DB);
DRlog=log(DRdouble+1);
DGlog=log(DGdouble+1);
DBlog=log(DBdouble+1);
Rr1=Rlog-DRlog;
Gg1=Glog-DGlog;
Bb1=Blog-DBlog;

评论

共有 条评论