十、形态学操作

形态学操作

膨胀,腐蚀,开运算,闭运算

获取结构元素

Mat getStructuringElement(int shape, Size ksize, Point anchor = Point(-1,-1));
shape:形状(矩形MORPH_RECT,十字MORPH_CROSS,椭圆MORPH_ELLIPE)
ksize:结构元素大小
anchor:锚点位置

膨胀

原理:结构元素可以是任意形状,结构元素中心为锚点,用结构元素的最大值替换锚点的值(即扩大白色区域)
void dilate( InputArray src, OutputArray dst, InputArray kernel, Point anchor = Point(-1,-1), int iterations = 1,int borderType = BORDER_CONSTANT, const Scalar& borderValue = morphologyDefaultBorderValue() );
src:图像
dst:目标图像
kernel:结构元素
anchor:锚点位置
iterations:执行次数
borderType:边界填充模式
borderValue:边界值

腐蚀

原理:与膨胀的区别是,用结构元素的最小值替换锚点的值(即扩大黑色区域)
void erode( InputArray src, OutputArray dst, InputArray kernel, Point anchor = Point(-1,-1), int iterations = 1, int borderType = BORDER_CONSTANT, const Scalar& borderValue = morphologyDefaultBorderValue() );
src:图像
dst:目标图像
kernel:结构元素
anchor:锚点位置
iterations:执行次数
borderType:边界填充模式
borderValue:边界值

其它

开操作:先腐蚀后膨胀,去掉小的前景色(白)对象
闭操作:先膨胀后腐蚀,去掉小的背景色(黑)对象
形态学梯度:膨胀减去腐蚀
顶帽:原图减去开操作(留下小的前景色(白)对象)
黑帽:闭操作减去原图 (留下小的背景色(黑)对象)
void morphologyEx( InputArray src, OutputArray dst, int op, InputArray kernel, Point anchor = Point(-1,-1), int iterations = 1,
int borderType = BORDER_CONSTANT, const Scalar& borderValue = morphologyDefaultBorderValue() );
src:图像
dst:目标图像
op:形态学操作类型(CV_MOP_OPEN,CV_MOP_CLOSE,CV_MOP_GRADIENT,CV_MOP_TOPHAT,CV_MOP_BLACKHAT)
kernel:结构元素
anchor:锚点位置
iterations:执行次数
borderType:边界填充模式
borderValue:边界值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值