数字图像处理-图像增强: MSRCR Method For Image Processing

% MSRCR Method For Image Processing
% Test for Digital Image Processing
% By Gu Jinjin 2012/10/16-17
% Refer to Retinex processing for automatic image enhancemen
% And thank videoandimage08's help for sharing me some Info 
% ------
clc;clear all;

% 读取图像灰度值
I = imread('test.jpg');
IR = I(:,:,1);
IG = I(:,:,2);
IB = I(:,:,3);

% 转换为 double 类型
IR_double = double(IR);
IG_double = double(IG);
IB_double = double(IB);

% Set Gaussian Parameters
sigma1 = 5;
sigma2 = 20;
sigma3 = 240;
% 矩阵化网格向量
[x,y] = meshgrid((-(size(IR,2)-1)/2):(size(IR,2)/2),(-(size(IR,1)-1)/2):(size(IR,1)/2));

% 计算高斯环境函数 Fk
gauss1 = exp(-(x.^2+y.^2)/(sigma1*sigma1));
% 归格化 Fk = k*Fk
Gauss1 = gauss1/sum(gauss1(:));
gauss2 = exp(-(x.^2+y.^2)/(sigma2*sigma2));
Gauss2 = gauss2/sum(gauss2(:));
gauss3 = exp(-(x.^2+y.^2)/(sigma3*sigma3));
Gauss3 = gauss3/sum(gauss3(:));

% 计算MSR,MSRCR
for i &#
  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
clc; clear all; I=imread('9.jpg'); Ir=I(:,:,1); %分别提取图像的R分量,G分量和B分量 Ig=I(:,:,2); Ib=I(:,:,3); %%%%%%%%%%设定所需参数%%%%%% G = 192; b = -30; alpha = 125; beta = 46; %%%%%%%%%%设定高斯参数%%%%%% sigma_1=15; %三个高斯核 sigma_2=80; sigma_3=250; [x y]=meshgrid((-(size(Ir,2)-1)/2):(size(Ir,2)/2),(-(size(Ir,1)-1)/2):(size(Ir,1)/2)); gauss_1=exp(-(x.^2+y.^2)/(2*sigma_1*sigma_1)); %计算高斯函数 Gauss_1=gauss_1/sum(gauss_1(:)); %归一化处理 gauss_2=exp(-(x.^2+y.^2)/(2*sigma_2*sigma_2)); Gauss_2=gauss_2/sum(gauss_2(:)); gauss_3=exp(-(x.^2+y.^2)/(2*sigma_3*sigma_3)); Gauss_3=gauss_3/sum(gauss_3(:)); %%%%%%%%%%对R分量操作%%%%%%% Ir_double=double(Ir); Ir_log=log(Ir_double+1); %将图像转换到对数域 f_Ir=fft2(Ir_double); %对图像进行傅立叶变换,转换到频域中 fgauss=fft2(Gauss_1,size(Ir,1),size(Ir,2)); %用0将图像填充至大小size(Ir,1)*size(Ir,2) fgauss=fftshift(fgauss); %将频域中心移到零点 Rr= ifft2(fgauss.*f_Ir); %做卷积后变换回空域中 Rr_log= log(abs(Rr) + 1); Rr1=Ir_log-Rr_log; %sigam=15的处理结果 fgauss=fft2(Gauss_2,size(Ir,1),size(Ir,2)); fgauss=fftshift(fgauss); Rr= ifft2(fgauss.*f_Ir); Rr_log= log(abs(Rr) + 1); Rr2=Ir_log-Rr_log; %sigam=80 fgauss=fft2(Gauss_3,size(Ir,1),size(Ir,2)); fgauss=fftshift(fgauss); Rr= ifft2(fgauss.*f_Ir); Rr_log= log(abs(Rr) + 1); Rr3=Ir_log-Rr_log; %sigam=200 Rr=0.33*Rr1+0.34*Rr2+0.33*Rr3; %加权求和 Rr=exp(Rr); min1=min(min(Rr)); max1=max(max(Rr)); Rr_final=(Rr-min1)*255/(max1-min1); %线性拉伸 %figure,imshow(Rr_final,[]);

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值