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”形态学运算, 返回 源图像减去开运算的图像;
    相关函数: imopen、imclose、imdilate、imerode、bwperim
    程序示例
    % get skeleton of an object in a binary image
    close all; clear; clc;
    warning off all;
    imgdat = logical([1, 0, 0; 1, 0, 1; 0, 0, 1]);
    retdat = bwmorph(imgdat, 'bridge') % using 'brige' option
    imgdat = logical([0, 0, 0; 0, 1, 0; 0, 0, 0]);
    retdat = bwmorph(imgdat, 'clean') % using 'clean' option
    imgdat = logical([1, 1, 1; 1, 0, 1; 1, 1, 1]);
    retdat = bwmorph(imgdat, 'fill') % using 'fill' option
    输出结果:
    retdat =
    1 1 0
    1 1 1
    0 1 1
    retdat =
    0 0 0
    0 0 0
    0 0 0
    retdat =
    1 1 1
    1 1 1
    1 1 1
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值