1、.页脚.学 生 实 验 报 告实验课程名称数字图像处理课程上机实验 .页脚.实验一 图像显示【实验内容】1)使用 MATLAB 图像读取函数 imread读取图像。2)使用 MATLAB 图像显示函数 imshow显示图像。3)使用 MATLAB 添加色带函数 colorbar为图像添加色带。【实验目的】1)掌握 MATLAB图像读取和显示函数的应用方法。2)了解如何为图像添加色带。【实验结果】(放置处理前图像)(放置处理后图像)2-1 2-5-3 2-10【程序说明】a=imread(yq.jpg);a=double(a);%a=uint8(a);imshow(a);%save saturn
2、.dat a -ascii;save yu.text a -ascii;%结果图2-1e=imread(yq.jpg);imshow(e);iptsetpref(ImshowTruesize,manual);figure,imshow(e);iptsetpref(ImshowTruesize,auto);bw1=zeros(20,20);bw1(2:2:18,2:2:18)=1;figure,imshow(bw1,notruesize);bw1 whos %结果图2-5-3%使用一个调色板来显示一副二进制图像figure,imshow(bw,1 0 0;0 0 1);%结果图 2-10本次实验
3、得分.页脚.实验二 图像运算【实验内容】1)使用 MATLAB 滑动邻域操作函数 nlfilter对图像进行处理。2)使用 MATLAB 分离邻域操作函数 blkproc对图像进行处理。【实验目的】1)掌握滑动邻域操作函数的应用方法。2)掌握分离邻域操作函数的应用方法。【实验结果】(放置处理前图像) (放置处理后图像)2-14Jpg【程序说明】(放置程序段)%f3.23(滑动邻域操作)i=imread(2-14.jpg);f=inline(max(x(:);i2=nlfilter(i,3 3,f);subplot(1,2,1),imshow(i);subplot(1,2,2),imshow(i
4、2);%结果图:3-23.jpg%f3.25(分离邻域操作 1)i=imread(2-14.jpg);f=inline(uint8(round(mean2(x)*ones(size(x);i2=blkproc(i,8 8,f);i3=blkproc(i,1 8,f);subplot(1,3,1),imshow(i);subplot(1,3,2),imshow(i2);subplot(1,3,3),imshow(i3);%结果图: 3-25.jpg本次实验得分.页脚.实验三 图像变换【实验内容】1)构造一矩形或正方形或菱形或其他形状的二进制图像。2)使用 MATLAB 二维傅里叶变换函数 fft
5、2对图像进行处理。【实验目的】1)掌握二进制图像的构造方法。2)掌握二维傅里叶变换函数的应用方法。【实验结果】(放置处理前图像)无(放置处理后图像)4-2.jpg 4-4.jpg 4-5.jpg 4-6.jpg【二维傅里叶变换数学计算】(放置数学公式)C=ifft2(fft2(A).*fft2(B);【程序说明】(放置程序段)%fig_4.6f=zeros(40,40);f(6:24,13:17)=1;imshow(f,notruesize);%结果图:4-2.jpg%fig_4.7F=fft2(f);F2=log(abs(F);imshow(F2,-1 5,notruesize);color
6、map(jet);%结果图:4-4.jpg%fig_4.8F=fft2(f,256,256);imshow(log(abs(F),-1 5);colormap(jet);%结果图:4-5.jpg%fig_4.3F=fft2(f,256,256);F2=fftshift(F);imshow(log(abs(F2),-1 5);colormap(jet);%结果图:4-6.jpg本次实验得分.页脚.实验四 滤波和滤波器设计【实验内容】1)应用 MATLAB二维窗口设计函数 fwind2创建一个近似圆对称的带通滤波器,通频带为 0.10.5,输出滤波器的频率响应曲线。【实验目的】1)了解 MATLA
7、B滤波器设计方法。2)掌握用二维窗口设计函数 fwind2创建带通滤波器的方法。【实验结果】(放置处理后图像)【程序说明】(放置程序段)f1,f2=freqspace(34,meshgrid);Hd1=ones(34);r=sqrt(f1.2+f2.2);Hd1(r0.5)=0;win=fspecial(gaussian,34,2);win=win./max(win(:);h3=fwind2(Hd1,win);figure,freqz2(h3); %结果图:5-9.jpg 本次实验得分.页脚.实验五 二值形态学操作【实验内容】1)应用 MATLAB 图像膨胀函数 imdilate对图像进行膨胀
8、操作。2)应用 MATLAB 图像腐蚀函数 imreode对图像进行腐蚀操作。【实验目的】1)了解 MATLAB图像膨胀和图像腐蚀基本算法。2)掌握 MATLAB图像膨胀 imdilate和图像腐蚀函数 imreode的使用方法。【实验结果】(放置处理后图像)6-1.jpg 6-3.jpg【图像膨胀和图像腐蚀数学计算】(放置数学公式)【程序说明】(放置程序段)BW=zeros(9,10);BW(5:6,5:7)=1;SE=strel(square,3);BW2=imdilate(BW,SE);subplot(1,2,1),imshow(BW);subplot(1,2,2),imshow(BW2
9、);%结果图:6-1.jpgse=strel(rectangle,40 30);bw1=imread(6-2.bmp);bw2=imerode(bw1,se);imshow(bw2);%结果图:6-3.jpg本次实验得分.页脚.实验六 图像的空间变换【实验内容】1)读取两幅图像。2)对两幅图像进行匹配。【实验目的】1)掌握 MATLAB图像匹配方法。【实验结果】(放置处理前图像)(放置处理后图像)7-9.jpg 7-10.jpg【程序说明】(放置程序段)orthophoto=imread(23_s.jpg);subplot(1,2,1),imshow(orthophoto)unregister
10、ed=imread(23_s.jpg);subplot(1,2,2),imshow(unregistered)cpselect(unregistered(:,:,1),orthophoto)input_points=120.7086 93.9772319.2222 78.9202127.9838 291.6312352.0729 281.1445;input_points_corr=cpcorr(input_points,b本次实验得分.页脚.ase_points,.unregistered(:,:,1),orthophoto)input_points_corr=120.7086 93.977
11、2319.2222 78.9202127.1064 289.8935352.0729 281.1445;mytform=cp2tform(input_points,base_points,projective);registered=imtransform(unregistered,mytform)%结果图: 7-9.jpg%ch7_8_11lily=imread(7-8.jpg);flowers=imread(7-8.jpg);subplot(1,2,1),imshow(lily);subplot(1,2,2),imshow(flowers);%rect_lily=93 13 81 69;r
12、ect_flowers=190 68 235 210;sub_lily=imcrop(lily,rect_lily);sub_flowers=imcrop(flowers,rect_flowers);sub_lily1,rect_lily=imcrop(lily);sub_flowers1,rect_flowers=imcrop(flowers);subplot(1,2,1),imshow(sub_lily1)subplot(1,2,2),imshow(sub_flowers1)% c=normxcorr2(sub_lily(:,:,1),sub_flowers(:,:,1);figure,s
13、urf(c),shading flat%sub_lily,rect_lily=imcrop(lily);sub_flowers,rect_flowers=imcrop(flowers);%max_c,imax=max(abs(c(:);ypeak,xpeak=ind2sub(size(c),imax(1);corr_offset=(xpeak-size(sub_lily,2)(ypeak-size(sub_lily,1);rect_offset=(rect_flowers(1)-rect_lily(1)(rect_flowers(2)-rect_lily(2);offset=corr_offs
14、et+rect_offset;xoffset=offset(1);yoffset=offset(2);%xbegin=xoffset + 1;xend=xoffset + size(lily,2);ybegin=yoffset+1;yend=yoffset+size(lily,1);extracted_lily=flowers(ybegin:yend,xbegin:xend,:);if isequal(lily,extracted_lily)disp(lily.tif was extracted from flowers.tif)end %recovered_lily=uint8(zeros(
15、size(flowers);recovered_lily(ybegin:yend,xbegin:xend,:)=lily;m,n,p=size(flowers)mask=ones(m,n);i=find(recovered_lily(:,:,1)=0);mask(i)=.2;figure,imshow(flowers(:,:,1)hold onh=imshow(recovered_lily);set(h,AlphaData,mask)%结果图: 7-10.jpg.页脚.实验七 图像增强【实验内容】1)读取一副图像。2)应用 MATLAB 直方图均衡化函数 histeq对图像进行均衡化操作。【实
16、验目的】1)掌握 MATLAB直方图均衡化方法。【实验结果】(放置处理后图像)8-4-2.jpg 8-11.jpg【程序说明】(放置程序段)(放置处理前后图像的数据矩阵)i=imread(84.jpg);imshow(i)figure,imcontour(i)%结果图: 8-4-2.jpgi=imread(84.gif);j,t=histeq(i);figure,plot(0:255)/255,t)%结果图: 8-11.jpgA=17 24 1 18 1523 5 7 14 164 6 13 20 2210 12 19 21 311 18 25 2 9%结果: A =17 24 1 18 1523 5 7 14 164 6 13 20 2210 12 19 21 311 18 25 2 9本次实验得分.页脚.