数字图像处理姓名:徐征学号:201215523实验五图像的分割与边缘提取一.实验目的及要求1.利用MATLAB研究图像分割与边缘检测的常用算法原理;2.掌握MATLAB图像域值分割与边缘检测函数的使用方法;3.了解边缘检测的算法和用途,比较Sobel、Prewitt、Canny等算子边缘检测的差异。二、实验内容(一)研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行的结果。熟悉程序中所使用函数的调用方法,改变有关参数,观察试验结果。1.图像阈值分割clearall,closeall;I=imread('rice.tif');figure(1),imshow(I)figure(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,closeall;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');数字图像处理姓名:徐征学号:201215523figure(3),imshow(BW2),title('canny');figure(4),imshow(BW3),title('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分割图像。这样便会生成两组像素集合:G1由所有灰度值大于T的像素组成,而G2由所有灰度值小于或等于T的像素组成。3)对G1和G2中所有像素计算平均灰度值1和2。4)计算新的阈值:T=(1+2)/25)重复步骤(2)到(4),直到逐次迭代所得到的T值之差小于一个事先定义的参数To,即,如果|Tn–Tn-1|To,则停止。三、实验设备1.计算机;2.MATLAB6.5;四、预习与思考1.预习实验内容,阅读教材熟悉实验原理;2.查阅资料,熟悉实验中涉及的有关MATLAB函数;2.利用课余时间,采用MATLAB底层函数编程实现实验内容(二)中的自动全局阈值算法。五、实验报告要求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;数字图像处理姓名:徐征学号:201215523Ibw1=im2bw(I,T);subplot(2,3,3),imshow(Ibw1),title('选择阈值T=120/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,6),imshow(Ibw2),title('用Otsu方法计算最优阈值T1对图像二值化');原图02004006008001000原图的直方图0100200选择阈值T=120/255对图像二值化用Otsu方法计算最优阈值T对图像二值化选择阈值T1=150/255对图像二值化用Otsu方法计算最优阈值T1对图像二值化2.边缘检测clc;clearall,closeall;I=imread('cameraman.tif');BW1=edge(I,'sobel');BW2=edge(I,'canny');BW3=edge(I,'prewitt');BW4=edge(I,'roberts');BW5=edge(I,'log');subplot(2,3,1),imshow(I),title('OriginalImage');subplot(2,3,2),imshow(BW1),title('sobel');subplot(2,3,3),imshow(BW2),title('canny');数字图像处理姓名:徐征学号:201215523subplot(2,3,4),imshow(BW3),title('prewitt');subplot(2,3,5),imshow(BW4),title('roberts');subplot(2,3,6),imshow(BW5),title('log');OriginalImagesobelcannyprewittrobertslog实验心得:学习了图像的分割和边缘检测,对其函数的使用方法在同学和老师的帮助下有了初步的掌握,通过学习对其算法原理有了初步的了解。算法算子是程序自带的,算法原理最好自己进一步学习一下。