形态学分析

在 OpenCV 中,形态学(Morphology)是一种图像处理技术,主要用于处理图像中的形状和结构。形态学操作基于图像形状的形态学特征,如点、线、曲线等,而不是像素值。形态学操作通常用于图像预处理、分割、边缘检测等任务,特别是在处理二值图像(如边缘检测后的图像)时特别有效。
OpenCV 中常见的形态学操作主要包括腐蚀、膨胀、开闭操作、形态学梯度、黑帽与顶帽、击中与不击中等。
morphologyEx 是OpenCV中用于执行各种形态学操作的函数之一,函数原型为:

void morphologyEx(
InputArray src,    //输入图像,可以是任何单通道图像,通常是CV_8U类型的
OutputArray dst,   // 输出图像,与输入图像类型一致。
int op,            //形态学操作类型,这里应选择 MORPH_OPEN
InputArray kernel,   //结构元素(或内核),确定操作的性质。可以使用 getStructuringElement() 函数创建不同形状和大小的结构元素。
Point anchor = Point(-1,-1),   //结构元素的锚点位置,默认为结构元素的中心点。
int iterations = 1,    //操作的迭代次数,默认为1。
int borderType = BORDER_CONSTANT,   //边界填充的方式,默认为 BORDER_CONSTANT。
const Scalar& borderValue = morphologyDefaultBorderValue()  //边界填充的值,默认为 morphologyDefaultBorderValue()。
);


op: 形态学操作类型,可以是以下之一:

  • cv::MORPH_ERODE = 0:腐蚀操作
  • cv::MORPH_DILATE = 1:膨胀操作
  • cv::MORPH_OPEN = 2:开操作(先腐蚀后膨胀)
  • cv::MORPH_CLOSE = 3:闭操作(先膨胀后腐蚀)
  • cv::MORPH_GRADIENT = 4:表示梯度操作(基本梯度)
  • cv::MORPH_TOPHAT = 5:表示顶帽操作
  • cv::MORPH_BLACKHAT = 6:表示黑帽操作
  • cv::MORPH_HITMISS = 7:表示击中/击不中操作

腐蚀与膨胀

腐蚀

腐蚀的作用

  • 物体缩小:腐蚀操作会使图像中的物体区域缩小。在二值图像中,腐蚀会使白色区域收缩,并尽可能减少物体边缘的尖锐部分。
  • 分离连接的物体:可以分离非常接近的物体,使它们之间的连接部分变窄或完全消失,从而将它们分开成
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值