OpenCV 4.11.0
开源计算机视觉库
加载中…
搜索中…
无匹配项
为轮廓创建边界框和圆形

上一篇教程: 凸包
下一篇教程: 为轮廓创建旋转边界框和椭圆

原作者Ana Huamán
兼容性OpenCV >= 3.0

目标

在本教程中,您将学习如何:

理论

代码

解释

主函数相当简单,从注释可以看出,我们执行以下操作:

  • 打开图像,将其转换为灰度并模糊它以去除噪声。
  • 创建一个标题为“源”的窗口,并在其中显示源文件。
  • source_window上创建一个轨迹条,并为其分配一个回调函数。通常,回调函数用于对某种信号做出反应,在本例中是轨迹条的状态变化。需要显式调用一次thresh_callback来同时显示“轮廓”窗口和“源”窗口。

回调函数执行所有有趣的工作。

  • 查找轮廓并将它们保存到向量contourhierarchy中。
  • 对于每个找到的轮廓,我们现在应用多边形逼近,精度为±3,并声明曲线必须闭合。之后,我们为每个多边形找到一个边界矩形并将其保存到boundRect中。最后,我们为每个多边形找到最小外接圆,并将其保存到centerradius向量中。

我们已经找到所需的一切,剩下的就是绘图。

  • 创建一个新的无符号8位字符Mat,填充为零。它将包含我们将要绘制的所有图形(矩形和圆形)。
  • 对于每个轮廓:选择一个随机颜色,绘制轮廓、边界矩形和最小外接圆。
  • 显示结果:创建一个名为“轮廓”的新窗口,并在其中显示我们添加到 drawings 中的所有内容。

结果

结果如下: