opencv中的开运算,闭运算,形态学梯度,顶帽和黑帽

开运算:先腐蚀,再膨胀

可以清除一些小东西(亮的),放大局部低亮度的区域


闭运算:先膨胀,再腐蚀

可以清除小黑点


形态学梯度:膨胀图与腐蚀图之差

提取物体边缘


顶帽:原图像 - 开运算图

突出原图像中比周围亮的区域


黑帽:闭运算图 - 原图像

突出原图像中比周围暗的区域


这些运算都能用一个函数进行处理

void morphologyEx(InputArray src, OutputArray dst, int op, InputArray kernel, ...)


看前四个参数就行了,后面的就用默认值

第一个参数 输入

第二个参数 输出

第三个参数 操作类型

MORTH_OPEN                函数做开运算

MORTH_CLOSE              函数做闭运算

MORTH_GRADIENT       函数做形态学梯度运算

MORTH_TOPHAT            函数做顶帽运算

MORTH_BLACKHAT       函数做黑帽运算

MORTH_DILATE              函数做膨胀运算

MORTH_ERODE             函数做腐蚀运算


第四个参数  内核类型    用getStructuringElement函数得到


例子:

	morphologyEx(ma1, maArray[0], MORPH_OPEN, getStructuringElement(MORPH_RECT, Size(15,15)));
	imshow("im4", maArray[0]);

	morphologyEx(ma1, maArray[1], MORPH_CLOSE, getStructuringElement(MORPH_RECT, Size(15, 15)));
	imshow("im5", maArray[1]);

	morphologyEx(ma1, maArray[2], MORPH_GRADIENT, getStructuringElement(MORPH_RECT, Size(15, 15)));
	imshow("im6", maArray[2]);

	morphologyEx(ma1, maArray[3], MORPH_TOPHAT, getStructuringElement(MORPH_RECT, Size(15, 15)));
	imshow("im7", maArray[3]);

	morphologyEx(ma1, maArray[4], MORPH_BLACKHAT, getStructuringElement(MORPH_RECT, Size(15, 15)));
	imshow("im8", maArray[4]);

	morphologyEx(ma1, maArray[5], MORPH_DILATE, getStructuringElement(MORPH_RECT, Size(15, 15)));
	imshow("im9", maArray[5]);

	morphologyEx(ma1, maArray[6], MORPH_ERODE, getStructuringElement(MORPH_RECT, Size(15, 15)));
	imshow("im10", maArray[6]);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值