第6章 图像处理_6.3形态学滤波(1)

数学形态学概述:建立在格伦和拓扑学基础之上的图像分析科学
基本运算:二值腐蚀和膨胀
二值开闭运算
骨架抽取
极限腐蚀
击中击不中变换
形态学梯度
Top-hat变换
颗粒分析
流域变换
灰值腐蚀和膨胀
灰值开闭运算
灰值形态学梯度
...

膨胀/腐蚀数学本质:图像A与核B的卷积操作

膨胀/腐蚀的功能:消除噪声
分割出独立的图像元素,
在图像中连接相邻元素
寻找图像中极大值/极小值区域
求出图像梯度

膨胀:求局部最大值的操作,锚点为核中元素最大值
腐蚀:求局部最小值的操作,锚点为核中元素最小值


构造kernel函数:getStructuringElement
Mat getStructuringElement(int shape, 
         Size ksize, 
         Point anchor=Point(-1,-1));
参数1 shape:可以用如下的枚举类型
参数2 ksize:核的大小
参数3 anchor:锚点,默认为中心点
//! shape of the structuring element
enum { 
    MORPH_RECT=0, //矩形
    MORPH_CROSS=1, //十字形
    MORPH_ELLIPSE=2 //椭圆形
};
例:
int tempsize = 5;
Mat element = getStructuringElement(MORPH_ELLIPSE,
                                        Size(2 * tempsize + 1, 2 * tempsize + 1),
                                         Point(tempsize, tempsize));

MORPH_RECT


MORPH_CROSS


MORPH_ELLIPSE


腐蚀函数erode
void erode(InputArray src,
OutputArray dst,
InputArray kernel,
Point anchor = Point(-1,-1),
int iterations = 1,
int borderType = BORDER_CONSTANT,
const Scalar& borderValue = morphologyDefaultBorderValue())
{
//调用morphOP函数,MORPH_ERODE模式
morphOP(MORPH_ERODE,
src,
dst,
kernel,
anchor,
iterations,
borderType,
borderVlaue)
}

膨胀函数dilate
void dilate(InputArray src,
OutputArray dst,
InputArray kernel,
Point anchor = Point(-1,-1),
int iterations,
int borderType = BORDER_CONSTANT,
const Scalar& borderValue = morphologyDefaultBorderValue())
{
//调用morphOP函数,MORPH_DILATE模式
morphOP(MORPH_DILATE,
src,
dst,
kernel,
anchor,
iterations = 1,
borderType,
borderVlaue)
}


常用参数说明:
参数3 kernel:核,如果=NULL,则表示使用参考点位于中心的3*3的核,可用getStructuringElement函数构造
参数4 anchor:锚点,默认为中心点
参数5 iterations:迭代调用该函数的次数,默认值为1

例:
Mat image = imread("1.jpg");
Mat element = getStructuringElement(MORPH_RECT,Size(15,15));
Mat out;
dilate(image, out, element);
erode(image, out, element);
MORPH_RECT
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值