opencv-腐蚀erode()

【功能】

腐蚀是对白色部分(高亮部分)而言的,腐蚀就是原图中的高亮部分被腐蚀,“领域被蚕食”,效果图拥有比原图更小的高亮区域。

腐蚀就是一个平移的结果匀速包含在 原图中的所有点的集合。

【原型】

void cv::erode( InputArray src, OutputArraydst, InputArray kernel,
                Point anchor, int iterations,
                int borderType, constScalar& borderValue )
{
//调用morphOp函数,并设定标识符为MORPH_ERODE
   morphOp( MORPH_ERODE, src, dst, kernel, anchor, iterations, borderType,borderValue );
}

可以看到函数内部只是调用了一下morphOp()函数,函数第一个值为MOPRH_ERODE

参数1:InputArray类型的src,输入图像,填Mat类的对象即可。
参数2:OutputArray类型的dst,即目标图像,需要和输入图片有一样的尺寸和类型。
参数3:InputArray类型的kernel,膨胀操作的核。若为NULL时,表示的是使用参考点位于中心3x3的核。

参数4:Point类型的anchor,锚的位置,其有默认值(-1,-1),表示锚位于中心。
参数5:int类型的iterations,迭代使用erode()函数的次数,默认值为1。
参数6:int类型的borderType,用于推断图像外部像素的某种边界模式,它有默认值BORDER_DEFAULT。
参数7:const Scalar&类型的borderValue,当边界为常数时的边界值,一般我们不用管。

【实例】

#include<opencv2/opencv.hpp>
#include <opencv2/highgui/highgui_c.h>
#include<iostream>

using namespace cv;

int main(int argc, char** argv) {

	Mat image = imread("D:\\study\\picture\\a.jpg");
	//内核矩阵,指定形状和尺寸为15*15的矩形
	Mat element = getStructuringElement(MORPH_RECT, Size(15, 15));

	Mat dstImage;
	//腐蚀图片为output为第二个参数,第一个参数为原图片,第三个参数为内核矩阵
	erode(image, dstImage, element);
	imshow("[原图]腐蚀操作", image);

	imshow("[效果图]腐蚀操作", dstImage);

	waitKey(0);

	return 0;

}

结果:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值