实验六 图像分割 一、实验目的
1、熟悉并掌握MATLAB图像处理工具箱的使用;
2、理解并掌握常用的图像分割技术。
二、实验环境
MATLAB 6.5以上版本、Windows XP或Windows 7计算机。
三、相关函数
1edge
检测灰度或者二值图像的边缘,返回一个二值图像,1像素是检测到的边缘,0像素是非边缘。
用法:BW = edge(I,'sobel',thresh,direction),
I为检测对象;边缘检测算子可用sobel,roberts,prewitt,zerocross,log,canny;
thresh指定阈值,检测时忽略所有小于阈值的边缘,默认自动选择阈值;direction方向,在所指定的方向direction上,用算子进行边缘检测horizontal(水平方向)、
vertical(垂直方向)或both(两个方向)。
2strel
创建形态学结构元素。
用法:
SE = STREL('ball',R,H,N) 创建一个空间椭球状的结构元素,其X-Y平面半径为R,高度为H。R必须为非负整数,H是一个实数。N必须为一个非负偶数。当N>0时此球形结构元素由一系列空间线段结构元素来近似。
SE = STREL('disk',R,N) 创建一个指定半径R的平面圆盘形的结构元素。这里R必须是非负整数。N须是0,4,6,8。当N大于0时,圆盘形结构元素由一组N(或N+2)个周期线结构元素来近似。当N等于0时,不使用近似,即结构元素的所有像素是由到中心像素距离小于等于R的像素组成。N可以被忽略,此时缺省值是4。注: 形态学操作在N>0情况下要快于N=0的情形。
4 imerode
腐蚀图像
用法:IM2 = imerode(IM,SE)
腐蚀灰度、二进制或压缩二进制图像 IM ,返回腐蚀图像 IM2 。参数 SE 是函数
strel 返回的一个结构元素体或是结构元素体阵列。
5 imdilate
膨胀图像
用法:IM2 = imdilate(IM, SE)
膨胀灰度图像、二值图像、或者打包的二值图像IM,返回膨胀图像M2。变量SE是一个结构元素或者一个结构元素的数组,其是通过strel函数返回的。
四、实验内容
1、采用三种不同算子检测图像边缘,显示结果。
i=imread('f:\\1.jpg')
BW1 = edge(I,'prewitt');
BW2 = edge(I,'zerocross');
BW3 = edge(I,'canny');
subplot(2,2,1);imshow(i);title('原图像')
subplot(2,2,2);imshow(BW1);title('prewitt边缘图')
subplot(2,2,3);imshow(BW2);title('zerocross边缘图')
subplot(2,2,4);imshow(BW3);title('canny边缘图')
2、对二值图像分别进行方形模板3*3和5*5的膨胀和腐蚀操作,显示结果。
a=imread('f:\\1.jpg')
i = rgb2gray(a)
I = im2bw(a,0.5)
se3 = strel('disk',3);
erodedBW1 = imerode(I,se3);
se4 = strel('disk',5);
erodedBW2 = imerode(I,se4);
se1 = strel('ball',3,3);
I1 = imdilate(a,se1);
se2 = strel('ball',5,5);
I2 = imdilate(a,se2);
subplot(2,2,1);imshow(I1);title('3*3膨胀图像')
subplot(2,2,2);imshow(I2);title('5*5膨胀图像')
subplot(2,2,3);imshow(erodedBW1);title('3*3腐蚀图像')
subplot(2,2,4);imshow(erodedBW2);title('5*5腐蚀图像')
因篇幅问题不能全部显示,请点此查看更多更全内容