您的位置:首页 > 编程语言 > MATLAB

Matlab函数bwmorph、bwperim

2016-05-23 10:34 706 查看
原文地址:Matlab函数bwmorph、bwperim作者:骑驴去找你呀


Matlab函数bwmorph简介


  函数功能: 对二值图像进行数学形态学(Mathematical Morphology)运算。


  语法格式:


  BW2 = bwmorph(BW,operation)


  对二值图像进行指定的形态学处理。


  BW2 = bwmorph(BW,operation,n)


  对二值图像进行n次指定的形态学处理。
n可以是Inf(无穷大),这意味着将一直对该图像做同样的形态学处理直到图像不再发生变化。


  operation是一个字符串, 用于指定进行的形态学处理类型, operation可以为以下值:


  'bothat':进行“bottom hat”形态学运算,即返回源图像减去闭运算的图像;


  'branchpoints':找到骨架中的分支点;


  'bridge':进行像素连接操作;


  'clean':去除图像中孤立的亮点,比如, 一个像素点,
像素值为1,其周围像素的像素值全为0,则这个孤立的亮点将被去除;


  'close':进行形态学闭运算(即先腐蚀后膨胀);


  'diag': 采用对角线填充, 去除八邻域的背景;


  'dilate': 使用结构元素ones(3)对图像进行膨胀运算;


  'endpoints':找到骨架中的结束点;


  'erode':使用结构元素ones(3)对图像进行腐蚀运算;


  'fill':填充孤立的黑点, 比如3*3的矩阵,
除了中间元素为0外,其余元素全部为1,则这个0将被填充为1;


  'hbreak':断开图像中的H型连接;


  'majority':如果一个像素的8邻域中有等于或超过5个像素点的像素值为1, 则将该点像素值置1;


  'open':进行形态学开运算(即先膨胀后腐蚀);


  'remove':如果一个像素点的4邻域都为1,
则该像素点将被置0;该选项将导致边界像素上的1被保留下来;


  'skel':在这里n = Inf,骨架提取但保持图像中物体不发生断裂;不改变图像欧拉数;


  'spur':去除小的分支, 或引用电学术语“毛刺”;


  'thicken':在这里n = Inf, 通过在边界上添加像素达到加粗物体轮廓的目的;


  'thin':在这里n = Inf,进行细化操作;


  'tophat':进行“top hat”形态学运算, 返回源图像减去开运算的图像;


Matlab函数——bwperim

功能:查找二值图像的边缘。

用法:BW2 = bwperim(BW1)

BW2 = bwperim(BW1,conn)

BW2 = bwperim(BW1,conn)表示从输入图像BW1中返回只包括对象边缘像素点的图像。

conn的定义值如下:

维数

参数值

说明

对二维

4 4邻域

8
8邻域

对三维

6
6邻域

18 18邻域

26 26邻域

例子:

BW1 = imread('circbw.tif');

BW2 = bwperim(BW1,8);

imshow(BW1)

figure, imshow(BW2)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: