I = imread('peppers.png');%读取图像
I = I(10+[1:256],222+[1:256],:);%选定图像的范围
figure(1); imshow(I);%显示原图像
title('Original Image');
LEN = 31; THETA = 11;
PSF = fspecial('motion',LEN,THETA);%产生运动模糊函数
blurred = imfilter(I,PSF,'circular','conv');%产生运动模糊图像
figure(2); subplot(221),
imshow(blurred);%显示运动模糊图像
title('Blurred');
wnr1 = deconvwnr(blurred,PSF);%使用维纳滤波器进行滤波
subplot(222); imshow(wnr1);%显示维纳滤波器后滤波的图像
title('Restored, True PSF');
wnr2 = deconvwnr(blurred,...
fspecial('motion',2*LEN,THETA));%使用两倍长度的点扩散函数进行维纳滤波
subplot(223); imshow(wnr2); %显示恢复的图像
title('Restored, "Long" PSF');
wnr3 = deconvwnr(blurred,...
fspecial('motion',LEN,2*THETA));%使用两倍角度的点扩散函数进行维纳滤波
subplot(224); imshow(wnr3); %显示恢复的图像
title('Restored, Steep');
noise = 0.1*randn(size(I));%生成随机噪声
blurredNoisy = imadd(blurred,im2uint8(noise));%模糊图像加入随机噪声
figure(3); subplot(221)
imshow(blurredNoisy);%显示加入噪声的模糊图像
title('Blurred & Noisy');
wnr4 = deconvwnr(blurredNoisy,PSF);%使用维纳滤波器进行滤波
subplot(222),
imshow(wnr4);%显示恢复后的图像
title('Inverse Filtering of Noisy Data');
NSR = sum(noise(:).^2)/sum(im2double(I(:)).^2);%计算噪声信号功率比
wnr5 = deconvwnr(blurredNoisy,PSF,NSR);%加入NSR参数使用维纳滤波器滤波
subplot(223); imshow(wnr5);%显示恢复后的图像
title('Restored with NSR');
wnr6 =deconvwnr(blurredNoisy,PSF,NSR/2);%改变NSR参数使用维纳滤波器滤波
subplot(224),
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(4); subplot(121)
imshow(wnr7);%显示恢复后的图像
title('Restored with ACF');
ICORR1 = ICORR(:,ceil(size(I,1)/2));
wnr8 = deconvwnr(blurredNoisy,PSF,NPOW,...
ICORR1);%使用噪声能量和图像一维自相关函数进行维纳滤波
subplot(122); imshow(wnr8);%显示恢复后的图像
title('Restored with NP & 1D-ACF');
PSF2 = fspecial('gaussian',11,5);%高斯模糊函数
Blurred = imfilter(I,PSF2,'conv');%模糊后的图像
figure(5); subplot(121)
imshow(Blurred);%显示模糊后的图像
title('Blurred');
V = .02;
BlurredNoisy2 = imnoise(Blurred,'gaussian',0,V);%加入高斯白噪声
subplot(122); imshow(BlurredNoisy2);%显示加噪后的图像
title('Blurred & Noisy');
NP = V*prod(size(I)); % 噪声能量
[reg1 LAGRA] = deconvreg(BlurredNoisy2,PSF,NP);%规则化滤波
figure(6); subplot(221)
imshow(reg1),%显示恢复后的图像
title('Restored with NP');
reg2 = deconvreg(BlurredNoisy2,PSF,NP*1.3);%加大噪声能量进行规则化滤波
subplot(222); imshow(reg2);%显示恢复后的图像
title('Restored with larger NP');
reg3 = deconvreg(BlurredNoisy2,PSF,NP/1.3);%减小噪声能量进行规则化滤波
subplot(223); imshow(reg3);%显示恢复后的图像
title('Restored with smaller NP');
Edged = edgetaper(BlurredNoisy2,PSF);%使图像的边缘模糊
reg4 = deconvreg(Edged,PSF,NP/1.3);%规则化滤波
subplot(224); imshow(reg4);%显示恢复后的图像
title('Edgetaper effect');
reg5 = deconvreg(Edged,PSF,[],LAGRA);%加入拉格朗日乘子进行滤波
figure(7); subplot(221)
imshow(reg5);%显示恢复后的图像
title('Restored with LAGRA');
reg6 = deconvreg(Edged,PSF,[],LAGRA*100);%增大拉格朗日乘子进行滤波
subplot(222); imshow(reg6);%显示恢复后的图像
title('Restored with large LAGRA');
reg7 = deconvreg(Edged,PSF,[],LAGRA/100);%减小拉格朗日乘子进行滤波
subplot(223); imshow(reg7);%显示恢复后的图像
title('Restored with small LAGRA');
REGOP = [1 -2 1];%图像光滑程度约束
reg8 = deconvreg(BlurredNoisy2,PSF,[],LAGRA,...
REGOP);%加入光滑约束进行滤波
subplot(224); imshow(reg8);%显示恢复后的图像
title('Constrained by 1D Laplacian');
PSF3 = fspecial('gaussian',5,5);%高斯模糊函数
Blurred = imfilter(I,PSF3,'symmetric','conv');%模糊后的图像
figure(8); subplot(121)
imshow(Blurred);%显示模糊后的图像
title('Blurred');
V = .002;
BlurredNoisy3 = imnoise(Blurred,'gaussian',0,V);%加入高斯白噪声
subplot(122); imshow(BlurredNoisy3);%显示加噪后的模糊图像
title('Blurred & Noisy');
luc1 = deconvlucy(BlurredNoisy3,PSF,5);%使用lucy-richardson方法滤波
figure(9); subplot(131)
imshow(luc1);%显示恢复后的图像
title('Restored Image, NUMIT = 5');
luc1_cell = deconvlucy({BlurredNoisy3},PSF,5);%使用deconvlucy滤波
luc2_cell = deconvlucy(luc1_cell,PSF);%继续对恢复的图像反卷积
luc2 = im2uint8(luc2_cell{2});%转化图像类型
subplot(132); imshow(luc2);%显示恢复的图像
title('Restored Image, NUMIT = 15');
DAMPAR = im2uint8(3*sqrt(V));%噪声参数
luc3 = deconvlucy(BlurredNoisy3,PSF,15,DAMPAR);%控制噪声放大
subplot(133); imshow(luc3);%显示恢复的图像
title('Restored Image with Damping, NUMIT = 15');
I = rgb2gray(I);%转化为灰度图像
PSF = fspecial('gaussian',7,10);%高斯模糊函数
Blurred4 = imfilter(I,PSF,'symmetric','conv');%产生模糊图像
figure(11); subplot(221)
imshow(Blurred4);%显示模糊后的图像
title('Blurred Image');
UNDERPSF = ones(size(PSF)-4);%较小的PSF
[J1 P1] = deconvblind(Blurred4,UNDERPSF);%反卷积去模糊
subplot(222); imshow(J1);%显示去模糊后的图像
title('Deblurring with Undersized PSF');
OVERPSF = padarray(UNDERPSF,[4 4],'replicate','both');%较大的PSF
[J2 P2] = deconvblind(Blurred4,OVERPSF);%对图像反卷积去模糊
subplot(223); imshow(J2);%显示去模糊后的图像
title('Deblurring with Oversized PSF');
INITPSF = padarray(UNDERPSF,[2 2],'replicate','both');%最初的PSF
[J3 P3] = deconvblind(Blurred4,INITPSF);%对图像反卷积去模糊
subplot(224); imshow(J3);
title('Deblurring with INITPSF');%显示去模糊后的图像
figure(12); subplot(221);
imshow(PSF,[],'InitialMagnification','fit');%显示真实的点扩散函数
title('True PSF'); subplot(222);
imshow(P1,[],'InitialMagnification','fit');%显示较小PSF下恢复的PSF
title('Reconstructed Undersized PSF');
subplot(223);
imshow(P2,[],'InitialMagnification','fit');%显示较大PSF下恢复的PSF
title('Reconstructed Oversized PSF');
subplot(224);
imshow(P3,[],'InitialMagnification','fit');%显示最初PSF下恢复的PSF
title('Reconstructed true PSF');
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
《精通MATLAB图像处理》代码 (255个子文件)
traffic.avi 204KB
greens.jpg 73KB
paris.lan 1.75MB
littlecoriver.lan 1.75MB
paris.lan 1.75MB
ex_16_1.m 6KB
ex_14_2.m 3KB
ex_17_6.m 3KB
ex_17_1.m 2KB
ex_18_4.m 2KB
ex_18_1.m 2KB
ex_14_4.m 2KB
ex_13_1.m 2KB
ex_15_1.m 2KB
ex_17_2.m 2KB
ex_17_5.m 2KB
ex_17_4.m 2KB
ex_17_7.m 1KB
ex_18_5.m 1KB
ex_17_3.m 1KB
ex_9_13.m 1KB
ex_18_3.m 1KB
ex_14_3.m 1KB
ex_10_2.m 1KB
ex_18_2.m 1KB
ex_18_6.m 1KB
ex_10_3.m 869B
ex_10_4.m 776B
ex_11_18.m 773B
ex_8_8.m 749B
ex_11_17.m 748B
myhisteq.m 727B
ex_7_6.m 714B
ex_10_5.m 709B
ex_6_15.m 625B
ex_9_10.m 588B
ex_9_15.m 549B
ex_7_10.m 539B
ex_4_23.m 523B
ex_7_1.m 499B
ex_9_20.m 464B
ex_8_12.m 450B
ex_6_6.m 447B
ex_4_17.m 434B
ex_4_9.m 430B
ex_3_16.m 428B
ex_10_1.m 413B
ex_9_12.m 396B
ex_6_9.m 388B
ex_8_13.m 386B
ex_7_9.m 381B
ex_2_9.m 376B
ex_9_9.m 369B
ex_6_1.m 367B
ex_8_19.m 364B
ex_6_12.m 355B
ex_8_14.m 355B
ex_9_14.m 350B
ex_10_6.m 347B
ex_4_16.m 332B
ex_11_13.m 331B
ex_11_6.m 324B
ex_9_11.m 317B
ex_7_5.m 316B
ex_6_5.m 307B
ex_6_3.m 305B
ex_3_14.m 304B
ex_8_17.m 304B
ex_6_10.m 303B
ex_3_11.m 301B
ex_7_8.m 297B
ex_7_7.m 297B
ex_6_2.m 295B
ex_4_13.m 289B
ex_6_11.m 288B
ex_6_8.m 283B
ex_12_3.m 282B
ex_5_5.m 281B
ex_8_16.m 281B
ex_8_18.m 277B
ex_2_3.m 271B
ex_11_3.m 269B
ex_6_4.m 268B
ex_3_16plot.m 262B
ex_11_4.m 259B
ex_9_8.m 259B
ex_4_2.m 251B
ex_8_2.m 250B
ex_2_13.m 248B
ex_12_1.m 246B
ex_4_6.m 242B
ex_3_12.m 236B
ex_11_7.m 235B
ex_8_5.m 234B
ex_9_7.m 231B
ex_11_12.m 230B
ex_11_11.m 230B
ex_12_4.m 228B
ex_7_4.m 218B
ex_2_11.m 217B
共 255 条
- 1
- 2
- 3
资源评论
- zhaoxukl13142012-07-10代码很全,刚好要用到图像配准的源代码,不用手敲了
延陵小明
- 粉丝: 650
- 资源: 33
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功