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

matlab二值图处理

2016-05-09 19:07 471 查看
Matlab中bwmorph函数在提取二进制图像的轮廓如下:

详情help bwmorph

语法: BW2 = bwmorph(BW1,operation) ;

BW2 = bwmorph(BW1,operation,n) ; n为次数;

Operation的参数可以有多种选择,现归纳如下:

'bothat':闭包运算,即先腐蚀,在膨胀,然后减去原图像;

'bridge':做连接运算;

'clean':去除孤立的亮点;

'close':进行二值闭运算;

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

'dilate':采用结构元素ones(3)做膨胀运算;

'erode':采用结构元素ones(3)作腐蚀运算;

'fill':填充孤立的黑点;

'hbreak':断开H形连接;

'majority':若像素的8邻域中有大于或等于5的元素为1,则像素为1,否则为0;

'open':执行二值开运算;

'remove':去掉内点,即若像素的4邻域都为1,则像素为0;

'shrink'n=inf:做收缩运算,这样没有孔的物体收缩为一个点,而含孔的物体收缩为一个相连的环,环的位置在孔和物体外边缘的中间,收缩运算保持欧拉数不变,

'skel'n=inf: 提取物体的骨架,即去除物体外边缘的点,但是保持物体不发生断裂,它也保持欧拉数不变。 

'spur':去除物体小的分支;

'thicken'‘thicken’n=inf;对物体进行粗化,即对物体的外边缘增加像素,知道原来为连接的物体按照8邻域被连接起来。粗化保持欧拉数不变。

'thin'n=inf:对物体进行细化,使得没有孔的物体收缩为最小连接棒,而含有孔的物体收缩为一个连接的环,同样细化保持欧拉数不变。

'tophat':用原图减去开运算后的图像;

当然,可以用一个函数处理后再用另一个函数进行二次处理,以获得不同的效果。

下面以我最近做的一个裂纹处理的图来说明各种选项的作用,可能例子不是很恰当,大概看看就好。











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