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'); % 设置图像标题