资源描述:
《图像的分割与边缘提取.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验五图像的分割与边缘提取一.实验目的及要求1.利用MATLAB研究图像分割与边缘检测的常用算法原理;2.掌握MATLAB图像域值分割与边缘检测函数的使用方法;3.了解边缘检测的算法和用途,比较Sobel、Prewitt、Canny等算子边缘检测的差异。二、实验内容(一)研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行的结果。熟悉程序中所使用函数的调用方法,改变有关参数,观察试验结果。1.图像阈值分割clearall,closeall;I=imread('rice.tif');figure(1),imshow(I)f
2、igure(2);imhist(I)T=120/255;Ibw1=im2bw(I,T);%选择阈值T=120/255对图像二值化;figure(3);subplot(1,2,1),imshow(Ibw1);T=graythresh(I);%采用Otsu方法计算最优阈值T对图像二值化;L=uint8(T*255)Ibw2=im2bw(I,T);subplot(1,2,2),imshow(Ibw2);helpim2bw;helpgraythresh;(令T取不同值,重做上述试验,观察试验结果)2.边缘检测clearall,closea
3、ll;I=imread('rice.tif');BW1=edge(I,'sobel');BW2=edge(I,'canny');BW3=edge(I,'prewitt');BW4=edge(I,'roberts');BW5=edge(I,'log');figure(1),imshow(I),title('OriginalImage');figure(2),imshow(BW1),title('sobel');figure(3),imshow(BW2),title('canny');figure(4),imshow(BW3),tit
4、le('prewitt');figure(5),imshow(BW4),title('roberts');figure(6),imshow(BW5),title('log');%在完成上述试验后,查看函数edge()使用说明。helpedge%仔细阅读函数edge()使用说明后,研究IPT提供的边缘检测演示程序。edgedemo(二)利用MATLAB熟悉并验证其它图像分割方法(三)采用MATLAB编程实现自动全局阈值算法,对图像'rice.tif'进行二值化分割算法步骤:1)选取一个的初始估计值T;2)用T分割图像。这样便会生成两
5、组像素集合:G1由所有灰度值大于T的像素组成,而G2由所有灰度值小于或等于T的像素组成。3)对G1和G2中所有像素计算平均灰度值m1和m2。4)计算新的阈值:T=(m1+m2)/25)重复步骤(2)到(4),直到逐次迭代所得到的T值之差小于一个事先定义的参数To,即,如果
6、Tn–Tn-1
7、8、阈值算法。五、实验报告要求1.简述试验的目的和试验原理;2.叙述各段程序功能,改变有关函数的参数,分析比较实验结果;3.打印出所编写的实验程序。4.写出本实验的心得体会及意见。1.图像阈值分割I=imread('cameraman.tif');subplot(2,3,1),imshow(I),title('原图');subplot(2,3,2),imhist(I),title('原图的直方图');T=120/255;Ibw1=im2bw(I,T);subplot(2,3,3),imshow(Ibw1),title('选择阈值T=1
9、20/255对图像二值化');T=graythresh(I);L=uint8(T*255);Ibw2=im2bw(I,T);subplot(2,3,4),imshow(Ibw2),title('用Otsu方法计算最优阈值T对图像二值化');T1=150/255;Ibw1=im2bw(I,T1);subplot(2,3,5),imshow(Ibw1),title('选择阈值T1=150/255对图像二值化');T1=graythresh(I);L=uint8(T1*255);Ibw2=im2bw(I,T1);subplot(2,3,
10、6),imshow(Ibw2),title('用Otsu方法计算最优阈值T1对图像二值化');2.边缘检测clc;clearall,closeall;I=imread('cameraman.tif');BW1=edge(I,'sobel');BW2