(matlab)数字图像处理实验报告.doc
重 庆 交 通 大 学学 生 实 验 报 告实验课程名称数字图像处理课程上机实验 开课实验室 河海学院仿真实验室 学 院 河海学院 年 级 专 业 08级地理信息系统 学 生 姓 名 学 号 时 间 2011 至 2012 学年第 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.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实验二 图像运算本次实验得分【实验内容】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(i2); %结果图: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二维傅里叶变换函数fft2对图像进行处理。【实验目的】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');colormap(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)了解MATLAB滤波器设计方法。2)掌握用二维窗口设计函数fwind2创建带通滤波器的方法。【实验结果】(放置处理后图像)【程序说明】(放置程序段) f1,f2=freqspace(34,'meshgrid');Hd1=ones(34);r=sqrt(f1.2+f2.2);Hd1(r<0.1)|(r>0.5)=0;win=fspecial('gaussian',34,2);win=win./max(win(:);h3=fwind2(Hd1,win);figure,freqz2(h3); %结果图:5-9.jpg 实验五 二值形态学操作本次实验得分【实验内容】1)应用 MATLAB图像膨胀函数imdilate对图像进行膨胀操作。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);%结果图: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)unregistered=imread('23_s.jpg');subplot(1,2,2),imshow(unregistered)cpselect(unregistered(:,:,1),orthophoto)input_points=120.7086 93.9772 319.2222 78.9202 127.9838 291.6312 352.0729 281.1445;input_points_corr=cpcorr(input_points,base_points,. unregistered(:,:,1),orthophoto)input_points_corr=120.7086 93.9772 319.2222 78.9202 127.1064 289.8935 352.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;rect_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,surf(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_offset+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(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对图像进行均衡化操作。【实验目的】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 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9%结果:A = 17 24 1 18 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9