资源描述:
《MATLAB图像增强与变换处理》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验二图像分割和形态学处理一、实验目的1、掌握图像分割的基本方法。2、掌握形态学处理的基本方法。3、学会使用MATLAB编程实现上述方法。二、实验任务(1)编程实现基于阈值的图像分割方法和边缘检测方法。(2)编程实现膨胀、腐蚀方法。(3)编程实现开运算和闭运算的方法。(3)编程实现提取骨架和细化的方法。三、实验配套的主要仪器设备及台(套)数教师示范用投影仪一台微型计算机每个学生一台四、报告要求记录每一步的实验过程。实验步骤以及结果:第一步:阈值的图像分割方法:建立m文件输入下面程序并运行:f=imread('01.jpg');T=0.5*(double(min(f(:)
2、))+double(max(f(:))));done=false;while~doneg=f>=T;Tnext=0.5*(mean(f(g))+mean(f(~g)));done=abs(T-Tnext)<0.5;T=Tnext;end%T2=graythresh(f);T3=T/255;wb=im2bw(f,T3);subplot(121),imshow(f),title('原始图像')subplot(122),imshow(wb),title('分割后图像')显示图像:第二步:图像的边缘检测:closeallclearallI2=imread('01.jpg');%
3、读取图像%I1=im2double(I);%将彩图序列变成双精度I2=rgb2gray(I2);%将彩色图变成灰色图[thr,sorh,keepapp]=ddencmp('den','wv',I2);I3=wdencmp('gbl',I2,'sym5',2,thr,sorh,keepapp);%小波除噪I4=medfilt2(I3,[99]);%中值滤波I5=imresize(I4,0.2,'bicubic');%图像大小BW1=edge(I5,'sobel');%sobel图像边缘提取BW2=edge(I5,'roberts');%roberts图像边缘提取BW3=e
4、dge(I5,'prewitt');%prewitt图像边缘提取BW4=edge(I5,'log');%log图像边缘提取BW5=edge(I5,'canny');%canny图像边缘提取h=fspecial('gaussian',5);%高斯滤波BW6=edge(I5,'zerocross',[],h);%zerocross图像边缘提取figure;subplot(2,2,1);%图划分为一行三幅图,第一幅图imshow(I2);%绘图subplot(2,2,2);imshow(BW1);title('Sobel算子');subplot(2,2,3);imshow(B
5、W2);title('Roberts算子');subplot(2,2,4);imshow(BW3);title('Prewitt算子');显示图像:第三步:实现膨胀、腐蚀方法A=imread('01.jpg');%B=[010;111;010];%A2=imdilate(A,B);se=strel('ball',5,5);A2=imdilate(A,se);A3=imerode(A,se);subplot(131),imshow(A),title('原始图像')subplot(132),imshow(A2),title('膨胀后图像')subplot(133),imsh
6、ow(A3),title('腐蚀后图像')显示图像为:第四步:实现开运算和闭运算的方法f=imread('01.jpg');se=strel('square',20);fo=imopen(f,se);fc=imclose(f,se);subplot(131),imshow(f),title('原始图像')subplot(132),imshow(fo),title('开运算后图像')subplot(133),imshow(fc),title('闭运算后图像')图像显示为:第五步:骨架提取与细化:f=imread('circbw.jpg');BW1=bwmorph(f,'s
7、kel',inf);BW2=bwperim(f,8);subplot(131),imshow(f),title('原始图像')subplot(132),imshow(BW1),title('提取骨架后图像')subplot(133),imshow(BW2),title('细化后图像')图像显示为:实验总结:通过本次实验我掌握了用MATLAB对图像进行处理的基本操作:读取,显示,存储,图像增强以及傅里叶变换于反变换的一些简单操作。