图像轮廓处理:OpenCV 中的轮廓查找与绘制
1. 引言
在图像处理中,边缘检测算法(如 Canny 边缘检测器)可用于找到图像中不同区域的边缘像素,但这些算法本身并未提供关于这些边缘的更多信息。下一步是将这些边缘像素组合成轮廓。OpenCV 提供了方便的函数 cv::findContours() 来完成这一任务。
2. 轮廓的基本概念
- 轮廓的定义 :轮廓是一组点,以某种方式表示图像中的曲线。在 OpenCV 中,轮廓通常用 STL 风格的
vector<>模板对象表示,其中向量的每个元素编码了曲线上下一个点的位置信息。常见的表示形式是二维点序列(如vector<cv::Point>或vector<cv::Point2f>),但也有其他表示方式,例如 Freeman 链,其中每个点表示从前一个点沿给定方向的特定“步长”。 -
cv::findContours()函数的输入图像 :该函数从二值图像中计算轮廓。它可以处理由cv::Canny()生成的包含边缘像素的图像,也可以处理由cv::threshold()或cv::adaptiveThreshold()等函数生成的图像,其中边缘作为正负区域之间的边界隐含存在。
超级会员免费看
订阅专栏 解锁全文
1318

被折叠的 条评论
为什么被折叠?



