实验四 图像的滤波处理与图像空间变换

更新时间:2024-01-15 07:02:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验四 图像的滤波处理与图像空间变换

一、 实验目的:

1、了解MATLAB 工具箱中滤波器 2、掌握用滤波方式去除图像噪声算法 3、学会对图像的空间变换 二、 实验内容

1、生成含有噪声的图像

分别用imnoise(),imnoise2(),imnoise3()函数生成含有噪声的图像,改变相应参数,观察图像变化,理解各参数的作用。

Imnoise2()的使用:在图像‘Fig0704(Vase).tif.tif’中加入均值为0,标准差为0.1 的高斯噪声。 程序:

i=imread('Fig0704(Vase).tif.tif'); g1=imnoise(i,'gaussian',0,0.01); [M,N]=size(i);

n2=imnoise2('gaussian',M,N,0,0.1); g2=im2double(i)+n2; figure;imshow(g2);

2、噪声估计

用roipoly()、histroi()、statmoments()等函数进行图像噪声参数估计。显示图如下。 程序:

f=imread('Fig0704(Vase).tif.tif'); [M,N]=size(f);

n2=imnoise2('gaussian',M,N,0,0.1); g2=im2double(f)+n2;

r=[152 200 400 503 159]; c=[106 370 370 106 106]; B=roipoly(g2, c, r); [p,npix]=histroi(g2,c,r); figure;bar(p,1);

25002000150010005000050100150200250300

3、设计陷波滤波器(Notch filter) 利用以下公式编程实现陷波滤波器。

程序: u=-50:50; v=-50:50 U=length(u); V=length(v); u0=20;u1=40; v0=40;v1=20;

H0=notch_filter(u,v,u0,v0); H1=notch_filter(u,v,u1,v1); for(x=1:U) for(y=1:V)

H(x,y)=H0(x,y)*H1(x,y); end end

figure;mesh(H); 子函数:

function [ H ] = notch_filter(u,v ,u0,v0 ) U=length(u); V=length(v); D0=20; n=2; M=0; N=0; for(x=1:U) for(y=1:V)

D1(x,y)=[(u(x)-M/2-u0)^2+(v(y)-N/2-v0)^2]^(1/2); end end for(x=1:U) for(y=1:V)

D2(x,y)=[(u(x)-M/2+u0)^2+(v(y)-N/2+v0)^2]^(1/2); end end for(x=1:U)

for(y=1:V)

H(x,y)=1/(1+((D0^2)/(D1(x,y)*D2(x,y)))^n); end end end

10.80.60.40.20150100100500050150

4、图像的空间变换

用测试图像(C = checkerboard())产生一个指定形状的变形图像,学习使用函数:maketform(),imtransform(),产生下图。 程序:

f = checkerboard(50); T = [1 0 0; .2 1 0; 0 0 1]; tform = maketform('affine', T); g = imtransform(f, tform); figure;imshow(g);

本文来源:https://www.bwwdw.com/article/dujo.html

Top