机器视觉.docx

上传人:b****5 文档编号:6900470 上传时间:2023-01-12 格式:DOCX 页数:19 大小:736.99KB
下载 相关 举报
机器视觉.docx_第1页
第1页 / 共19页
机器视觉.docx_第2页
第2页 / 共19页
机器视觉.docx_第3页
第3页 / 共19页
机器视觉.docx_第4页
第4页 / 共19页
机器视觉.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

机器视觉.docx

《机器视觉.docx》由会员分享,可在线阅读,更多相关《机器视觉.docx(19页珍藏版)》请在冰豆网上搜索。

机器视觉.docx

机器视觉

大作业

1.产生下图所示图像f1(m,n),其中图像大小为256×256,中间亮条为128×32,暗处=0,亮处=100。

对其进行FFT:

①同屏显示原图f1(m,n)和FFT(f1)的幅度谱图;

②若令

,重复以上过程,比较二者幅度谱的异同,简述理由;

③若将f2(m,n)顺时针旋转90度得到f3(m,n),试显示FFT(f3)的幅度谱,并与FFT(f2)

的幅度谱进行比较;

④若将f1(m,n)顺时针旋转90度得到f4(m,n),令f5(m,n)=f1(m,n)+f4(m,n),试显示FFT(f5)

的幅度谱,并指出其与FFT(f1)和FFT(f4)的关系;

⑤若令f6(m,n)=f2(m,n)+f3(m,n),试显示FFT(f6)的幅度谱,并指出其与FFT(f2)和FFT(f3)

的关系,比较FFT(f6)和FFT(f5)的幅度谱。

2.一幅灰度图像(256级,白为255,黑为0),分别加入高斯白噪声和椒盐噪声,再分别进行3×3的平均滤波和中值滤波,显示原图像、加噪图像和滤波结果图像,并比较四种滤波结果。

3.对某一灰度图像,进行如下处理:

(1)分别利用Roberts、Prewitt和Sobel边缘检测算子进行边缘检测;

(2)将Roberts、Prewitt和Sobel边缘检测算子修改为锐化算子,对原图像进行锐化,同屏显示原图像、边缘检测结果和锐化后图像,说明三者之间的关系。

 

第一题

一、画出所要求图形:

>>f1=zeros(256,256)——将f赋值为全0,大小为256*256的矩阵;

>>f1(64:

192,112:

144)=1——将f中列像素为64-192、横像素为112-144的像素块赋值为1;

>>imshow(f1,'notruesize')——显示f矩阵所对应的图像。

如下图所示:

 

二、对f1进行二维快速傅里叶变换并图原图同屏显示:

>>f1=zeros(256,256);

>>f1(64:

192,112:

144)=1;

>>subplot(1,2,1),imshow(f1,'notruesize');——在一个平面内的左半块图中显示原图;

>>F1=fft2(f1);——对f1进行二维快速傅里叶变换;

>>F2=fftshift(abs(F1));——把快速傅里叶变换的DC组件移到光谱中心;

>>subplot(1,2,2),imshow(F2,'notruesize')——在一个平面内的右半块图中显示变换后的图像。

 

三、实现

aa=ones(1,33)——建立一个1行33列的矩阵

form=1:

33

bb=(-1).^m

cc(1,m)=bb

end————for语句,使cc成为(1,-1,……1,-1)共33列的矩阵

aa=cc.*(-1)——使aa成为(-1,1,……-1,1)共33列的矩阵

f1=zeros(256,256);

f1(64:

192,112:

144)=1;

f2=f1;

forhang=1:

2:

129

shiji=hang+63

f2(shiji,112:

144)=aa

end————for语句,使f2从64行开始到192行偶数行为aa(f2图像如下,左图为原图,右图为放大图)

forhang=1:

2:

128

shiji=hang+1+63

f2(shiji,112:

144)=cc

end————for语句,使f2从65行开始到191行奇数行为cc(f2图像如下,左图为原图,右图为放大图)

四、对f2进行二维快速傅里叶变换并图原图同屏显示:

>>subplot(1,2,1),imshow(f2,'notruesize');

>>F1=fft2(f2);

>>F2=fftshift(abs(F1));

>>subplot(1,2,2),imshow(F2,'notruesize')

 

五、将f2(m,n)顺时针旋转90度得到f3(m,n),试显示FFT(f3)的幅度谱

>>f3=imrotate(f2,90)——旋转90度得到如下图像

>>imshow(f3,'notruesize')

>>F1=fft2(f3);

>>F2=fftshift(abs(F1));

>>subplot(1,2,1),imshow(f3,'notruesize');

>>subplot(1,2,2),imshow(F2,'notruesize')

六、将f1(m,n)顺时针旋转90度得到f4(m,n),令f5(m,n)=f1(m,n)+f4(m,n),试显示FFT(f5)

的幅度谱

f4=imrotate(f1,90);

f5=f4+f1

 

七、令f6(m,n)=f2(m,n)+f3(m,n),显示FFT(f6)的幅度谱

>>f6=f2+f3;

>>F1=fft2(f6);

>>F2=fftshift(abs(F1));

>>imshow(F2,'notruesize')

 

第二题

显示灰度图像

I=imread('rice.png');——将矩阵赋值给I

imshow(I,'notruesize')——显示图像如图

 

Igs=imnoise(I,'gaussian',0,0.02);——加入高斯噪声

imshow(Igs,'notruesize')——显示图像如下

 

>>Ijy=imnoise(I,'salt&pepper',0.02);——加入椒盐噪声

>>imshow(Ijy,'notruesize')——显示图像如下

 

加入高斯噪声后使用中值滤波,滤波前后结果如图:

I=imread('rice.png');

Igs=imnoise(I,'gaussian',0,0.02);

Imshow(Igs)

Igszl=medfilt2(Igs)——对Igs进行中值滤波

figure

(2)

imshow(Igszl)

加入椒盐噪声后使用中值滤波,滤波前后结果如图:

I=imread('rice.png');

Ijy=imnoise(I,'salt&pepper',0.02);

imshow(Ijy)

Ijyzl=medfilt2(Ijy)

figure

(2)

imshow(Ijyzl)

 

加入高斯噪声后使用平均滤波,滤波前后结果如图:

I=imread('rice.png');

I=imnoise(I,'gaussian',0,0.02);

imshow(I);

h=[111

111

111];——产生滤波模板

H=h/9;——对滤波模板归一化

J=conv2(I,h);——用均值模板对图像滤波

figure;

imshow(J,[])——显示滤波结果

加入椒盐噪声后使用平均滤波,滤波前后结果如图:

I=imread('rice.png');

I=imnoise(I,'salt&pepper',0.02);

imshow(I)

h=[111

111

111];

H=h/9;

J=conv2(I,h);

figure;

imshow(J,[])

显示原图像、加噪图像和滤波结果图像:

(1)高斯噪声

I=imread('rice.png');

Igs=imnoise(I,'gaussian',0,0.02);

figure,

imshow(I);

h=[111

111

111];

H=h/9;

J=conv2(Igs,h);

imshow(J,[])

I=imnoise(I,'gaussian',0,0.02);

figure;

Imshow(I)

K=medfilt2(I);

figure;

imshow(K)

I=imread('rice.png');

figure;

imshow(I)

 

(2)椒盐噪声

I=imread('rice.png');

Ijy=imnoise(I,'salt&pepper',0.02);

h=[111

111

111];

H=h/9;

J=conv2(Ijy,h);

imshow(J,[])

K=medfilt2(Ijy);

figure;

imshow(K)

figure;

imshow(Ijy)

figure;

imshow(I)

 

第三题

一、分别利用Roberts、和Sobel边缘检测算子进行边缘检测,结果如图

>>I=imread('rice.png');——读取原图

>>imshow(I)——显示原图

>>R=edge(I,'Roberts');——R为Roberts边缘检测算子进行边缘检测的结果

>>figure;imshow(R);——第二个图显示Roberts边缘检测算子进行边缘检测的结果

>>S=edge(I,'sobel');——S为边缘检测算子进行边缘检测的结果

>>figure;imshow(S);

>>P=edge(I,'prewitt');——P为Prewitt边缘检测算子进行边缘检测的结果

>>figure;imshow(P);——第四个图显示Prewitt边缘检测算子进行边缘检测的结果

 

使用锐化算子(拉式算子):

circuit=imread('rice.png');

I=circuit;

I=double(I);——将图像矩阵转化为double类型

imshow(I,[]);

h=[010

1-40

010];——拉式算子的表示模板

J=conv2(I,h,'same');——拉式算子对图像滤波

K=I-J;——增强图像为原始图像减去拉式算子滤波的图像

subplot(1,2,1),imshow(circuit)

subplot(1,2,2),imshow(K,[])

Roberts边缘检测及锐化,结果如图(左1为原图,右1为原图锐化,左2为Roberts边缘检测,右2为边缘检测锐化):

circuit=imread('rice.png');

I=circuit;

I=double(I);

h=[010

1-40

010];

J=conv2(I,h,'same');

K=I-J;

subplot(2,2,1),imshow(circuit)

subplot(2,2,2),imshow(K,[])

R=edge(circuit,'Roberts');

subplot(2,2,3),imshow(R)

R=double(R);

J=conv2(R,h,'same');

K=R-J;

subplot(2,2,4),imshow(K,[])

 

 

sobel边缘检测及锐化,结果如图(左1为原图,右1为原图锐化,左2为sobel边缘检测,右2为边缘检测锐化):

circuit=imread('rice.png');

I=circuit;

I=double(I);

h=[010

1-40

010];

J=conv2(I,h,'same');

K=I-J;

subplot(2,2,1),imshow(circuit)

subplot(2,2,2),imshow(K,[])

S=edge(circuit,'sobel');

subplot(2,2,3),imshow(S)

S=double(S);

J=conv2(S,h,'same');

K=R-J;

subplot(2,2,4),imshow(K,[])

 

Prewitt边缘检测及锐化,结果如图(左1为原图,右1为原图锐化,左2为Prewitt边缘检测,右2为边缘检测锐化):

circuit=imread('rice.png');

I=circuit;

I=double(I);

h=[010

1-40

010];

J=conv2(I,h,'same');

K=I-J;

subplot(2,2,1),imshow(circuit)

subplot(2,2,2),imshow(K,[])

P=edge(circuit,'prewitt');

subplot(2,2,3),imshow(P)

P=double(P);

J=conv2(P,h,'same');

K=R-J;

subplot(2,2,4),imshow(K,[])

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1