- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
图像复原维纳滤波边缘提取
图像复原
1). 针对图像水平运动所引起的图像退化,给出连续函数退化模型的系统传递函数H(u,v)
2). 编程用维纳滤波实现对运动模糊图像的复原。
解:
首先将设计一个水平运动模糊滤波器对无噪的Lenna.bmp进行滤波,得到模糊后的图像,然后进行维纳滤波,也就是逆滤波(要消除H的零点,避免出现0/0)。程序如下:
A=imread(Lenna.bmp);
F=fft2(A);
F=fftshift(F);
N=512;
u=1:N/2;
T=1;a=0.05;%选择水平运动参数
x=pi*a*u;
H=zeros(N,N);
H(1,1+N/2:N)=(T./x).*sin(x).*exp(-i*x);%计算滤波系数
H(1,1:N/2)=fliplr(conj(H(1,1+N/2:N)));%利用共轭对称性
for n=2:N
H(n,:)=H(1,:);
end
figure,mesh(abs(H))%滤波器幅度特性
G=F.*H;
G=fftshift(G);
AA=uint8(ifft2(G));
figure,imshow(AA)%模糊的图像
%维纳滤波,也是逆滤波
H2=H+(H==0);%去除滤波器零点,将H中的0变为1,避免后面计算出现0/0
G2=fftshift(G);
F2=G2./H2;
F2=fftshift(F2);
A2=uint8(ifft2(F2));
figure,imshow(A2)
实验结果如下:
产生模糊图像的滤波器:
模糊后的Lenna
维纳滤波的结果:
向模糊的图片加入均值为0、方差0.001的高斯噪声(程序几乎同上,不再给出)
采用直接逆滤波(去除零点)和维纳滤波(其中K通过尝试,取10)的结果对比如下:
如果采用半径受限的逆滤波,得到结果如下:
可见,半径受限的逆滤波产生了图像模糊,同时也滤除了部分噪声,有振铃效应;而维纳滤波产生的图像更为清晰,振铃效应不明显,但是噪声比较明显。
二. 图像复原
1). 针对图像水平平移a后与原图像叠加形成的重影图像所引起的图像退化,给出连续函数退化模型的系统传递函数H(u,v)
2). 编程用维纳滤波实现对一个重影图像的复原。
解:1)设系统冲击响应为h(x,y),则
对上式做傅里叶变换,,
即为连续函数退化模型的系统传递函数H(u,v)
2)
A=imread(Lenna.bmp);
[M,N] = size(A);
a=12; %水平位移12pixel
B=[A(:,N-a+1:N) A(:,1:N-a)];
B=B*0.5+A*0.5;
figure,subplot(121),imshow(B),title(重影图像(无噪))
u=1:N;
H=zeros(M,N);
H(1,:)=0.5*(1+exp(-1i*2*pi*(u-N/2)*a/N));
for n=2:M
H(n,:)=H(1,:);
end
%k=10;
H2=H+(abs(H)1e-10);%避免除以很小的数导致误差,去阈值为1e-10
F=fftshift(fft2(B));%
F_R=F./H2;%无噪时,维纳滤波即逆滤波
%F_R=F./H2.*(1-k./(k+(abs(H2))^2));%有噪声时
A_re = uint8(real(ifft2(fftshift(F_R))));
figure, subplot(122),imshow(A_re) ,title(维纳滤波后)
向重影的图片加入均值为0、方差0.001的高斯噪声,选取合适的阈值(经试验,可取0.1,即H2=H+(abs(H)0.1),k可取10),实验结果如下:
阈值选取过小时,噪声明显;阈值选取过大时,振铃效应明显。K增大时,噪声变小,图像亮度下降。
三 拍摄一张包含硬币、橡皮、钥匙等小物件的图像获得上述物体的边缘二值图像
解:
拍摄图像如下:
程序如下:
A=imread(edge_test.jpg);%1280×960×3
A=rgb2gray(A);
A=imresize(A,0.25);%为了方便在屏幕上显示,并且容易观察到细节,长宽均缩小为原来的1/4
figure,imshow(A)
BW1=edge(A,sobel,0.04);%选取合适的阈值
BW2 = edge(A,prewitt,0.04);
BW3 = edge(A,roberts,0.04);
BW4 = edge(A,log,0.003);
BW5 = edge(A,zerocross,0.003);
BW6 = edge(A,canny,0.08);
figure,subplot(131),imshow(BW1),title(sobel, thresh=0.04)
su
文档评论(0)