18. 轮廓发现-cv2.findContours()、cv2.drawContours()

本文介绍了如何在OpenCV中使用cv2.findContours()函数发现图像轮廓以及使用cv2.drawContours()绘制轮廓。首先定义了轮廓发现的概念,强调了在寻找轮廓前需要进行阈值处理或Canny边检。接着详细解析了cv2.findContours()函数的参数,包括检索模式和近似方法。最后,讲解了cv2.drawContours()函数用于在图像上绘制轮廓的方法。
摘要由CSDN通过智能技术生成

1. 定义

轮廓发现是基于图像边缘提取的基础寻找对象轮廓的方法,所以边缘提取的阈值会影响最终轮廓发现的结果。

轮廓可以简单认为成将连续的点(连着边界)连在一起的曲线,具有相同 的颜色或者灰度。轮廓在形状分析和物体的检测和识别中很有用。
       为了更加准确,要使用二值化图像。在寻找轮廓之前,要进行阈值化处理或者 Canny 边界检测,查找轮廓的函数会修改原始图像。如果你在找到轮廓之后还想使用原始图像的话,
你应该将原始图像存储到其他变量中.在 OpenCV 中,查找轮廓就像在黑色背景中寻找白色物体。要找的物体应该是白色而背景应该是黑色。

2. 实现函数-cv2.findContours()、cv2.drawContours()

2.1 轮廓发现-cv2.findContours() 

  • 参数如下: cv2.findContours( (InputOutputArray image,OutputArrayOfArrays contours,OutputArray hierarchy,int mode,int method,Point offset = Point() )
  • 参数说明:
  1. image:单通道图像矩阵,可以是灰度图,但更常用的是二值图像,一般是经过Canny、拉普拉斯等边缘检测算子处理过的二值图像;

    2. contours:,是一个向量,,向量内每个元素保存了一组由连续的Point点构成的点的集合的向量,每一组Point点集就是一个轮廓。有多少轮廓

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值