您的当前位置:首页正文

数字图像处理图像分割代码

2022-09-22 来源:小奈知识网


实验六 图像分割 一、实验目的

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腐蚀图像')

因篇幅问题不能全部显示,请点此查看更多更全内容