www.gusucode.com > 《matlab图像处理与界面编程宝典》秦襄培 编著,每章的MATLAB源代码程序 > 第19章/代码19-4.txt

    
I = imread('sample3.jpg');                    % 读入图像
I = I(125+[1:256],1:256,:);                   % 图像剪切
figure;                                       % 新建窗口
imshow(I);                                    % 显示原始图像
title('Original Image');                      % 设置图像标题
PSF = fspecial('gaussian',11,5);   % 设置滤波器
Blurred = imfilter(I,PSF,'conv');  % 图像卷积计算
figure;                            % 新建窗口
imshow(Blurred);                   % 显示处理后的图像
title('Blurred');                  % 设置图像标题
V = .02;                                         % 设定方差
BlurredNoisy = imnoise(Blurred,'gaussian',0,V);  % 添加噪声
figure;                                          % 新建窗口
imshow(BlurredNoisy);                            % 显示处理后的图像
title('Blurred & Noisy');                        % 设置图像标题
 
NP = V*prod(size(I));                            % 噪声功率
[reg1 LAGRA] = deconvreg(BlurredNoisy,PSF,NP);  % 图像复原
figure,                                         % 新建窗口
imshow(reg1),                                   % 显示处理后的图像
title('Restored with NP');                      % 设置图像标题
reg2 = deconvreg(BlurredNoisy,PSF,NP*1.3);     % 采用放大1.3倍的NP
figure;                                        % 新建窗口
imshow(reg2);                                  % 显示处理后的图像
title('Restored with larger NP');              % 设置图像标题
reg3 = deconvreg(BlurredNoisy,PSF,NP/1.3);     % 采用缩小1.3倍的NP
figure;                                        % 新建窗口
imshow(reg3);                                  % 显示处理后的图像  
title('Restored with smaller NP');             % 设置图像标题
Edged = edgetaper(BlurredNoisy,PSF);          % 去卷积处理
reg4 = deconvreg(Edged,PSF,NP/1.3);           % 图像复原
figure;                                       % 新建窗口
imshow(reg4);                                 % 显示处理后的图像
title('Edgetaper effect');                    % 设置图像标题
reg5 = deconvreg(Edged,PSF,[],LAGRA);           % 使用拉格朗日乘法器复原图像
figure;                                         % 新建窗口  
imshow(reg5);                                   % 显示处理后的图像
title('Restored with LAGRA');                   % 设置图像标题
reg6 = deconvreg(Edged,PSF,[],LAGRA*100);        % 使用增大100倍的LAGRA值
figure;                                          % 新建窗口
imshow(reg6);                                    % 显示处理后的图像
title('Restored with large LAGRA');              % 设置图像标题
reg7 = deconvreg(Edged,PSF,[],LAGRA/100);           % 使用缩小100倍的LAGRA值
figure;                                             % 新建窗口
imshow(reg7);                                       % 显示处理后的图像
title('Restored with small LAGRA');                 % 设置图像标题  
REGOP = [1 -2 1];                                     % 改变约束方法
reg8 = deconvreg(BlurredNoisy,PSF,[],LAGRA,REGOP);    % 复原图像 
figure;                                               % 新建窗口
imshow(reg8);                                         % 显示处理后的图像
title('Constrained by 1D Laplacian');                 % 设置图像标题