数字图像处理MATLAB上机作业.docx

上传人:b****2 文档编号:2277994 上传时间:2023-05-03 格式:DOCX 页数:18 大小:302.97KB
下载 相关 举报
数字图像处理MATLAB上机作业.docx_第1页
第1页 / 共18页
数字图像处理MATLAB上机作业.docx_第2页
第2页 / 共18页
数字图像处理MATLAB上机作业.docx_第3页
第3页 / 共18页
数字图像处理MATLAB上机作业.docx_第4页
第4页 / 共18页
数字图像处理MATLAB上机作业.docx_第5页
第5页 / 共18页
数字图像处理MATLAB上机作业.docx_第6页
第6页 / 共18页
数字图像处理MATLAB上机作业.docx_第7页
第7页 / 共18页
数字图像处理MATLAB上机作业.docx_第8页
第8页 / 共18页
数字图像处理MATLAB上机作业.docx_第9页
第9页 / 共18页
数字图像处理MATLAB上机作业.docx_第10页
第10页 / 共18页
数字图像处理MATLAB上机作业.docx_第11页
第11页 / 共18页
数字图像处理MATLAB上机作业.docx_第12页
第12页 / 共18页
数字图像处理MATLAB上机作业.docx_第13页
第13页 / 共18页
数字图像处理MATLAB上机作业.docx_第14页
第14页 / 共18页
数字图像处理MATLAB上机作业.docx_第15页
第15页 / 共18页
数字图像处理MATLAB上机作业.docx_第16页
第16页 / 共18页
数字图像处理MATLAB上机作业.docx_第17页
第17页 / 共18页
数字图像处理MATLAB上机作业.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数字图像处理MATLAB上机作业.docx

《数字图像处理MATLAB上机作业.docx》由会员分享,可在线阅读,更多相关《数字图像处理MATLAB上机作业.docx(18页珍藏版)》请在冰点文库上搜索。

数字图像处理MATLAB上机作业.docx

数字图像处理MATLAB上机作业

数字图像处理实验报告

指导老师:

学号

姓名

班级

 

1.产生右图所示图像f1(m,n),其中图像大小为256X256,中间亮条为128X32,暗处=0,亮处=100对其进行FFT:

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

2若令f2(m,n)=(-1)(m+n)f1(m,n),重复以上过程,

比较二者幅度谱的异同,简述理由;

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

并与FFT(f2)的幅度谱进行比较;

4若将f1(m,n)顺时针旋转90度得到f4(m,n),令f5(m,n)=f1(m,n)+f4(m,n),

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

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

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

f1=zeros(256,256);

fori=64:

1:

192

forj=122:

1:

144

f1(i,j)=100;

end

end

fft_f1=fft2(f1);

fft_f1=abs(fft_f1);

tmax=fft_f1(1,1);

tmin=fft_f1(1,1);

fori=1:

256

forj=1:

256

iftmax

tmax=fft_f1(i,j);

end

iftmin>fft_f1(i,j)

tmin=fft_f1(i,j);

end

end

end

delta=tmax-tmin;

fori=1:

256

forj=1:

256

fft_f1(i,j)=255*(fft_f1(i,j)-tmin)/delta;

end

end

subplot(1,2,1);

imshow(f1);

title('原图’);

subplot(1,2,2);

imshow(fft_f1);

title('原图的幅度谱’);

原因

原團的幅度谱

 

fori=1:

256

forj=1:

256f2(i,j)=(-1)F+j)*f1(i,j);

end

endfft_f2=fft2(f2);fft_f2=abs(fft_f2);tmax=fft_f2(1,1);

tmin=fft_f2(1,1);

fori=1:

256

forj=1:

256

iftmax

end

iftmin>fft_f2(i,j)

tmin=fft_f2(i,j);

end

end

end

delta=tmax-tmin;

fori=1:

256

forj=1:

256

fft_f2(i,j)=255*(fft_f2(i,j)-tmin)/delta;

end

endsubplot(2,2,1);imshow(f1);title('原图’);

subplot(2,2,2);

imshow(fft_f1);

title('原图的幅度谱’);subplot(2,2,3);

imshow(f2);

title('原图中心化’);

subplot(2,2,4);

imshow(fft_f2);

title('原图中心化的幅度谱’);

 

原團的幅度谱

原團中心化

原图中心化的幅度谱

 

iBv*

 

f3=imrotate(f2,-90,'bilinear');

fft_f3=fft2(f3);

fft_f3=abs(fft_f3);

tmax=fft_f3(1,1);

tmin=fft_f3(1,1);

fori=1:

256

forj=1:

256

iftmax

end

iftmin>fft_f3(i,j)

tmin=fft_f3(i,j);

end

end

enddelta=tmax-tmin;

fori=1:

256

forj=1:

256

fft_f3(i,j)=255*(fft_f3(i,j)-tmin)/delta;

end

end

subplot(2,2,1);

imshow(f2);

title('原图中心化’);

subplot(2,2,2);

imshow(fft_f2);

title('原图中心化的幅度谱’);

subplot(2,2,3);

imshow(f3);

title('旋转后的图像’);subplot(2,2,4);

imshow(fft_f3);

title('旋转后的幅度谱’);

厲團中心化

原图中心化的幅度谱

I

 

 

旋转后的幅度谱

WWW

 

f4=imrotate(f1,-90,'bilinear');

f5=f1+f4;

fft_f5=fft2(f5);

fft_f5=abs(fft_f5);

tmax=fft_f5(1,1);

tmin=fft_f5(1,1);

fori=1:

256

forj=1:

256

iftmax

end

iftmin>fft_f5(i,j)

tmin=fft_f5(i,j);

end

end

end

delta=tmax-tmin;

fori=1:

256

forj=1:

256fft_f5(i,j)=255*(fft_f5(i,j)-tmin)/delta;

end

end

subplot(2,2,1);

imshow(f1);

title('原图’);

subplot(2,2,2);

imshow(fft_f1);

title('原图的幅度谱’);

subplot(2,2,3);

imshow(f5);

title('相加后的图像’);

subplot(2,2,4);

imshow(fft_f5);

title('相加后的幅度谱’);

原国的幅度谱

相加后的画像

 

 

原图与旋转90度后的图像进行叠加后,相应的幅度谱也进行叠加。

f6=f2+f3;

fft_f6=fft2(f6);

fft_f6=abs(fft_f6);

tmax=fft_f6(1,1);

tmin=fft_f6(1,1);

fori=1:

256

forj=1:

256

iftmax

tmax=fft_f6(i,j);

end

iftmin>fft_f6(i,j)

tmin=fft_f6(i,j);

end

end

end

delta=tmax-tmin;

fori=1:

256

forj=1:

256

fft_f6(i,j)=255*(fft_f6(i,j)-tmin)/delta;

end

end

subplot(2,2,1);

imshow(fft_f2);title('F2');

subplot(2,2,2);imshow(fft_f3);title('F3');

subplot(2,2,3);imshow(fft_f5);title('F5');

subplot(2,2,4);imshow(fft_f6);title('F6');

FFT

(2)和FFT(3)相差90度。

FFT(6)是FFT(5)的中心化。

2.产生教材104页题图4.18(右图)所示的二值图像(白为1,黑为0),编程实现习题4.18所要求的处理(3*3的平均滤波和中值滤波)功能(图像四周边界不考虑,处理结果按四舍五入仍取0或1),显示处理前后的图像,比较其异同。

a=zeros(64,64);

f=zeros(256,256);

fori=1:

1:

32

forj=1:

1:

32

a(i,j)=1;

end

end

fori=33:

1:

64

forj=33:

1:

64a(i,j)=1;

end

end

fori=1:

64:

256

forj=1:

64:

256f(i:

i+63,j:

j+63)=a;

end

end

imshow(f)

fori=2:

1:

255

forj=2:

1:

255

a=[f(i-1,j-1),f(i-1,j),f(i-1,j+1),f(i,j-1),f(i,j),f(i,j+1),f(i+1,j-1),f(i+1,j),f(i+1,

j+1)];

b=[f(i-1,j),f(i,j-1),f(i,j),f(i,j+1),f(i+1,j)];

c=sort(a);

d=sort(b);

zlf1(i,j)=c(5);

zlf2(i,j)=d(5);

endend

subplot(1,3,1);

imshow(f);

title('原图像');

subplot(1,3,2);

imshow(zlfl);

title('方形中值滤波后图像’)

subplot(1,3,3);

imshow(zlf2);

title('十字形中值滤波后图像')

 

方形中值滤波后图像

 

 

十字形中值滤波后图像

 

fori=2:

1:

255

forj=2:

1:

255jlf4(i,j)=(f(i-1,j)+f(i+1,j)+f(i,j-1)+f(i,j+1))/4;

jlf8(i,j)=(f(i-1,j-1)+f(i-1,j)+f(i-1,j+1)+f(i,j-1)+f(i,j+1)+f(i+1,j-1)+f(i+1,j)+f(i+1,j+1))/8;

jjlf4(i,j)=(f(i-1,j)+f(i+1,j)+f(i,j-1)+f(i,j+1)+f(i,j))/5;

jjlf8(i,j)=(f(i-1,j-1)+f(i-1,j)+f(i-1,j+1)+f(i,j-1)+f(i,j+1)+f(i+1,j-1)+f(i+1,j)+f(i+

1,j+1)+f(i,j))/9;

end

end

jlf4=round(jlf4);

jlf8=round(jlf8);

jjlf4=round(jjlf4);

jjlf8=round(jjlf8);

subplot(2,2,1);

imshow(jlf4);

title('4邻域平均滤波后图像’);

subplot(2,2,2);

imshow(jlf8);

title('8邻域平均滤波后图像')

subplot(2,2,3);

imshow(jjlf4);

title('4邻域加权平均滤波后图像')

subplot(2,2,4);

imshow(jjlf8);

title('8邻域加权平均滤波后图像')

4邻域平均滤波后團像

8邻域平均滤S后團像

 

 

4邻域加权平均滤波后團像

塔邻域加权平均滤波后图像

 

 

放大后可看出区别

4邻域平均滤波后图像

8邻域平均滤液后團像

 

4邻域加权平均滤波后團像

8邻域加权平均滤波后團像

 

3•产生教材104页题图4.16所示的灰度图像(白为255,黑为0),分别加入高斯白噪声和椒盐噪声,再分别进行3*3的平均滤波和中值滤波,显示原图像、加噪图像和滤波结果图像,并比较四种滤波结果。

f=zeros(256,256);

a=255*ones(210,7);

fori=0:

1:

8

f(24:

233,(29+24*i):

(29+24*i+6))=a;

end

f1=imnoise(f,'gaussian',0,0.1);%加入均值为零方差为0.1的高斯噪声

f2=imnoise(f,'salt&pepper',0.1);%加入噪声密度为0.1的椒盐噪声

fori=2:

1:

255

forj=2:

1:

255

a=[f1(i-1,j-1),f1(i-1,j),f1(i-1,j+1),f1(i,j-1),f1(i,j),f1(i,j+1),f1(i+1,j-1),f1(i+1,j

),f1(i+1,j+1)];

b=[f2(i-1,j-1),f2(i-1,j),f2(i-1,j+1),f2(i,j-1),f2(i,j),f2(i,j+1),f2(i+1,j-1),f2(i+1,j

),f2(i+1,j+1)];

c=sort(a);

d=sort(b);

zlf1(i,j)=c(5);%中值滤波

zlf2(i,j)=d(5);%中值滤波

jlf8(i,j)=(f1(i-1,j-1)+f1(i-1,j)+f1(i-1,j+1)+f1(i,j-1)+f1(i,j+1)+f1(i+1,j-1)+f1(i+1,j

)+f1(i+1,j+1)+f1(i,j))/9;%平均滤波

jjlf8(i,j)=(f2(i-1,j-1)+f2(i-1,j)+f2(i-1,j+1)+f2(i,j-1)+f2(i,j+1)+f2(i+1,j-1)+f2(i+1,

j)+f2(i+1,j+1)+f2(i,j))/9;%平均滤波

end

end

subplot(2,4,1);imshow(f);

title('原图像');

subplot(2,4,2);imshow(f1);

title('高斯噪声污染后的图像’);

subplot(2,4,3);imshow(zlf1);

title('中值滤波后的图像’);

subplot(2,4,4);imshow(jlf8);

title('平均滤波后的图像’);

subplot(2,4,5);imshow(f);

title('原图像');

subplot(2,4,6);imshow(f2);

title('椒盐噪声污染后的图像’);

subplot(2,4,7);imshow(zlf2);

title('中值滤波后的图像’);

subplot(2,4,8);imshow(jjlf8);

title('平均滤波后的图像’);

 

原團像根盐唾声污染石的團像中值遥渡后的團像平均遞波石的團像

 

5.(第4、5题选做一题)编程实现教材214页所给图像门限化分割的迭代阈值算法,实现对某一灰度图像的二值化。

Pic=imread('C:

\Users\Administrator\Desktop\242dd42a2834349bfb0c018ccbea15ce36d3beb5.j

pg');%读取RGB格式的图像

a=rgb2gray(Pic);%进行RGB到灰度图像的转换

T=0.5*(double(min(a(:

)))+double(max(a(:

))));

do=false;

while~do

g=(a>T);

Tnext=0.5*(mean(a(g))+mean(a(~g)));

do=abs(T-Tnext)<0.2;

T=Tnext;

end

figure;subplot(1,2,1);imshow(a);

subplot(1,2,2);imshow(g);

'?

■■■uu■

6.

%ReadInputRetinaImageinlmg=imread('Input.bmp');

if(dim==3)

dim=ndims(inlmg);

%lnputisacolorimageinImg=rgb2gray(inlmg);end

%ExtractBloodVessels

Threshold=10;

bloodVessels=VesselExtract(inlmg.Threshold);

%OutputBloodVesselsimagefigure;

subplot(121);imshow(inlmg);title('InputImage');subplot(122);imshow(bloodVessels);title('ExtractedBloodVessels');

VesselExtract.m:

functionbloodVessels=VesselExtract(inlmg,threshold)%Kirsch'sTemplatesh1=[5-3-3;

50-3;

5-3-3]/15;

h2=[-3-35;

-305;

-3-35]/15;

h3=[-3-3-3;

50-3;

55-3]/15;

h4=[-355;

-305;

-3-3-3]/15;

h5=[-3-3-3;

-30-3;

555]/15;

h6=[555;

-30-3;

-3-3-3]/15;

h7=[-3-3-3;

-305;

-355]/15;

h8=[55-3;

50-3;

-3-3-3]/15;

%SpatialFilteringbyKirsch'sTemplates

t仁filter2(h1,inlmg);

t2=filter2(h2,inlmg);

t3=filter2(h3,inlmg);

t4=filter2(h4,inlmg);

t5=filter2(h5,inlmg);

t6=filter2(h6,inlmg);

t7=filter2(h7,inlmg);

t8=filter2(h8,inlmg);

s=size(inlmg);

bloodVessels=zeros(s

(1),s

(2));

temp=zeros(1,8);

fori=1:

s

(1)

forj=1:

s

(2)

temp

(1)=t1(i,j);temp

(2)=t2(i,j);temp(3)=t3(i,j);temp(4)=t4(i,j);temp(5)=t5(i,j);temp(6)=t6(i,j);temp(7)=t7(i,j);temp(8)=t8(i,j);if(max(temp)>threshold)

bloodVessels(i,j)=max(temp);

endendend

 

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

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2