OpenCV 10 - 形态学操作2(开、闭、梯度、顶帽、黑帽)

本文介绍了OpenCV中的morphologyEx()函数,用于形态学操作,包括开操作、闭操作、梯度、顶帽和黑帽。这些操作有助于图像处理,如清除小物体、突出边缘和特定区域。通过示例代码展示了每种操作的使用方法。
摘要由CSDN通过智能技术生成

函数morphologyEx()说明

morphologyEx()函数是一种形态学变化函数。数学形态学可以理解为一种滤波行为,因此也称为形态学滤波。滤波中用到的滤波器(kernal),在形态学中称为结构元素

函数原型:

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			:输出图像(需要和源图片有一样的尺寸和类型)
kernel		:滤波器(结构元素)
anchor		:结构元素的原点,默认值(-1,-1),表示锚位于中心
iterations	:迭代次数

结构元素种类

结构元素 注释
CV_MOP_OPEN 开运算
CV_MOP_CLOSE 闭运算
CV_MOP_GRADIENT 梯度运算
CV_MOP_TOPHAT 顶帽
CV_MOP_BLACKHAT 黑帽

1 形态学操作 - 开

先腐蚀,再膨胀,可清除一些小东西(亮的),放大局部低亮度的区域

示例代码:

void CallBack(int ,void*) {
   
	int tmp = ElementSize*2 + 1;
	Mat structureElement = getStructuringElement(MORPH_RECT, Size(tmp, tmp),Size(-1,-1));
	morphologyEx(src, dst, CV_MOP_OPEN,	structureElement);	//开
	imshow(OUTPUT_WIN, dst);
}
int main(int argc, char** argv)
{
   

	src = imread("./77.png");
	if (!src.data)	//判断图片是否加载成功!
	{
   
		std::cout << "打开图片失败!" << std::endl;
		return -1;
	}

	namedWindow(OUTPUT_WIN,CV_WINDOW_AUTOSIZE);
	createTrackbar("Element size:", OUTPUT_WIN, &ElementSize, max_Size, CallBack);

	imshow("src image", src);
	waitKey(100000);

	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江凡心

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值