数字图像处理作业Word下载.docx
《数字图像处理作业Word下载.docx》由会员分享,可在线阅读,更多相关《数字图像处理作业Word下载.docx(21页珍藏版)》请在冰点文库上搜索。
![数字图像处理作业Word下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/6/9d7e830e-9f6b-44db-82cf-f21da205b899/9d7e830e-9f6b-44db-82cf-f21da205b8991.gif)
显示图像:
2.
代码:
I2=zeros(256,256);
I2(i,j)=(-1)^(i+j).*100;
f2(i,j)'
I3=fft2(I2);
imshow(I3);
比较f1(m,n)和f2(m,n)的幅度谱:
可见f2(m,n)是将频谱中心化,使fi(m,n)的频谱从原点移到中心,从而得到一个完整的频谱。
3.
I3=zeros(256,256);
I3=imrotate(I2,90,'
bilinear'
I4=fft2(I3);
imshow(I4);
fft(f3)'
I5=fft2(I2);
imshow(I5);
显示结果:
比较fft(f2)和fft(f3):
可见f2(m,n)旋转90度,其傅里叶变换fft(f3)也相应发生旋转。
4.
代码:
I4=zeros(256,256);
I5=zeros(256,256);
191
143
I3=imrotate(I1,90,'
I4=imadd(I1,I3);
I5=fft2(I4);
图四'
imshow(I5)
fft(f5)'
fft(f5)和fft(f1),fft(f4)的关系:
由显示图可见,fft(f5)的频谱是fft(f1)和fft(f4)的叠加。
图像的傅里叶变换满足线性。
5.
I4=imadd(I2,I3);
图五'
fft(f6)'
比较fft(f5)与fft(f6)的频谱图:
可见fft(f6)是fft(f5)的中心化。
二.
I1=zeros(64,64);
fori=1:
32
forj=1:
I1(i,j)=1;
fori=32:
64
I1(i,j)=0;
forj=32:
I2=[I1,I1,I1,I1;
I1,I1,I1,I1;
I1,I1,I1,I1];
原二值图像'
I3=Medfilt2(I2);
figure,imshow(I3);
中值滤波后的图想'
I4=filter2(fspecial('
average'
3),I2);
figure,imshow(I4);
均值滤波后的图像'
显示图像:
比较处理前后的图像:
原图分别经过中值滤波和均值滤波,均值滤波过后的图黑白格边缘显得模糊;
而中值滤波后的图边缘很清晰,可见中值滤波可以保护图像边界。
三.
I1=zeros(256,28);
I2=zeros(256,24);
I3=zeros(256,11);
256
28
form=1:
23
forn=1:
24
I2(m,n)=0;
form=234:
form=24:
233
7
I2(m,n)=255;
forn=8:
25
forg=1:
fork=1:
11
I3(g,k)=0;
I=[I1,I2,I2,I2,I2,I2,I2,I2,I2,I2,I3];
imshow(I);
原灰度图像'
J1=imnoise(I,'
gaussian'
0,0.005);
%加入高斯噪声
figure
(2)
subplot(1,2,1),imshow(J1);
加高斯噪声后的图像'
J2=imnoise(I,'
salt&
pepper'
0.02);
%加入盐噪声
subplot(1,2,2),imshow(J2),title('
加椒盐噪声后的图像'
3),J1);
figure(3)
subplot(2,2,1),imshow(I4),title('
含高斯噪声图均值滤波后的图像'
I5=medfilt2(J1,[3,3]);
subplot(2,2,2),imshow(I5),title('
含高斯噪声图中值滤波后的图像'
I6=filter2(fspecial('
3),J2);
subplot(2,2,3),imshow(I6),title('
含椒盐噪声图均值滤波后的图像'
I7=medfilt2(J2,[3,3]);
subplot(2,2,4),imshow(I7),title('
含椒盐噪声图中值滤波后的图像'
比较四种滤波结果:
可见中值滤波器和均值滤波器的作用都是抹平信号,消除噪声。
而中值滤波器比较趋向于保留细节。
均值滤波能有效的去除高斯噪声,而中值滤波能较好的去除椒盐噪声。
四.
I=imread('
source.bmp'
J1=edge(I,'
roberts'
figure
(1),imshow(J1);
roberts边缘检测'
J2=edge(I,'
prewitt'
figure
(2),imshow(J2);
prewitt边缘检测'
J3=edge(I,'
sobel'
figure(3),imshow(J3);
sobel边缘检测'
figure,subplot(1,3,1),imshow(I),title('
原图'
subplot(1,3,2),imshow(J3),title('
prewitt边缘检测图'
H2=fspecial('
I2=filter2(H2,I);
subplot(1,3,3),imshow(I2),title('
prewitt锐化图'
J5=edge(I,'
figure
(2),subplot(1,3,1),imshow(I),title('
subplot(1,3,2),imshow(J5),title('
sobel边缘检测图'
H3=fspecial('
I3=filter2(H3,I);
subplot(1,3,3),imshow(I3),title('
sobel锐化图'
figure(3),subplot(1,3,1),imshow(I),title('
subplot(1,3,2),imshow(J1),title('
Roberts边缘检测图'
H1=fspecial('
I1=filter2(H1,I);
subplot(1,3,3),imshow(I1);
roberts锐化图'
原图,边缘检测图和锐化图三者的关系:
Prewitt和Sobel边缘检测后的图像的边缘间断点较多,边缘更清晰一些;
roberts边缘检测边缘间断点较少,对噪声很敏感,可见,Prewitt和Sobel边缘检测的边缘检测效果更好一些。
图像锐化则是将边缘部分增强了。
Prewitt和Sobel的锐化图似乎没有太大区别。
五.
迭代法是基于逼近的思想,其步骤如下:
1.
求出图象的最大灰度值和最小灰度值,分别记为ZMAX和ZMIN,令初始阈值T0=(ZMAX+ZMIN)/2;
2.
根据阈值TK将图象分割为前景和背景,分别求出两者的平均灰度值ZO和ZB;
3.
求出新阈值TK+1=(ZO+ZB)/2;
4.
若TK=TK+1,则所得即为阈值;
否则转2,迭代计算。
编程:
//阈值初始为0
intThresholdVal:
=0;
intThresholdVal2:
//总灰度值
intTotalGrayLevel:
forintLoop:
=0to255do
ifintGrayLevel[intLoop]<
>
0then
=intTotalGrayLevel+intLoop*intGrayLevel[intLoop];
//求出初始最大灰度值
ifintGrayLevel[intLoop]>
begin
intLGrayLevel:
=intLoop;
break;
end;
//求出初始最小灰度值和初始阈值
=255downto0do
intRGrayLevel:
=(intThresholdVal+intLoop)div2;
//迭代求解
whileintThresholdVal<
intThresholdVal2do
=intThresholdVal;
intCount:
=0tointThresholdValdo
=intCount+intGrayLevel[intLoop];
=intLGrayLevel+intLoop*intGrayLevel[intLoop];
=intTotalGrayLevel-intLGrayLevel;
=intLGrayLeveldivintCount;
=intRGrayLeveldiv(intSize-intCount);
=(intLGrayLevel+intRGrayLevel)div2;
迭代所得的阈值分割的图象效果良好。
基于迭代的阈值能区分出图像的前景和背景的主要区域所在,但在图像的细微处还没有很好的区分度