gusucode.com > 《matlab图像处理与界面编程宝典》秦襄培 编著,每章的MATLAB源代码程序 > 第19章/代码19-3.txt
I = imread('peppers.png'); % 读入图像 I = I(10+[1:256],222+[1:256],:); % 图像剪切 figure, imshow(I); % 显示原始图像 title('Original Image'); % 设置图像标题 LEN = 31; % 设置长度 THETA = 11; % 设置角度 PSF = fspecial('motion',LEN,THETA); % 生成滤波器 blurred = imfilter(I,PSF,'circular','conv'); % 图像卷积计算 figure, % 新建窗口 imshow(blurred); % 显示处理后的图像 title('Blurred'); % 设置图像标题 wnr1 = deconvwnr(blurred,PSF); % 使用真实PSF进行图像复原 figure, % 新建窗口 imshow(wnr1); % 显示处理后的图像 title('Restored, True PSF'); % 设置图像标题 wnr2 = deconvwnr(blurred,fspecial('motion',2*LEN,THETA)); % 模糊运动长度取值是真实长度的2倍,2*LEN figure, % 新建窗口 imshow(wnr2); % 显示处理后的图像 title('Restored, "Long" PSF'); % 设置图像标题 wnr3 = deconvwnr(blurred,fspecial('motion',LEN,2*THETA)); % 模糊运动角度取值是真实角度的2倍,2*THETA figure, % 新建窗口 imshow(wnr3); % 显示处理后的图像 title('Restored, Steep'); % 设置图像标题 noise = 0.1*randn(size(I)); % 生成噪声信号 blurredNoisy = imadd(blurred,im2uint8(noise)); % 加入图像 figure, % 新建窗口 imshow(blurredNoisy); % 显示处理后的图像 title('Blurred & Noisy'); % 设置图像标题 wnr4 = deconvwnr(blurredNoisy,PSF); % 图像恢复 figure, % 新建窗口 imshow(wnr4); % 显示处理后的图像 title('Inverse Filtering of Noisy Data'); % 设置图像标题 NSR = sum(noise(:).^2)/sum(im2double(I(:)).^2); % 计算信噪比 wnr5 = deconvwnr(blurredNoisy,PSF,NSR); % 图像恢复 figure, % 新建窗口 imshow(wnr5); % 显示处理后的图像 title('Restored with NSR'); % 设置图像标题 wnr6 = deconvwnr(blurredNoisy,PSF,NSR/2); % 信噪比降低一半,NSR/2 figure, % 新建窗口 imshow(wnr6); % 显示处理后的图像 title('Restored with NSR/2'); % 设置图像标题 NP = abs(fftn(noise)).^2; % 傅立叶变换 NPOW = sum(NP(:))/prod(size(noise)); % 噪声功率 NCORR = fftshift(real(ifftn(NP))); % 噪声自相关函数,居中的 IP = abs(fftn(im2double(I))).^2; % 傅立叶变换 IPOW = sum(IP(:))/prod(size(I)); % 原始图像功率 ICORR = fftshift(real(ifftn(IP))); % 图像自相关函数,居中的 wnr7 = deconvwnr(blurredNoisy,PSF,NCORR,ICORR); % 图像恢复 figure, % 新建窗口 imshow(wnr7); % 显示处理后的图像 title('Restored with ACF'); % 设置图像标题 ICORR1 = ICORR(:,ceil(size(I,1)/2)); % 一维自相关函数 wnr8 = deconvwnr(blurredNoisy,PSF,NPOW,ICORR1); % 图像恢复 figure, % 新建窗口 imshow(wnr8); % 显示处理后的图像 title('Restored with NP & 1D-ACF'); % 设置图像标题