【问题标题】:Calculating contour vertices for vector<Point2f> point cloud with cv::findContour()使用 cv::findContour() 计算向量<Point2f> 点云的轮廓顶点
【发布时间】:2018-07-26 18:10:37
【问题描述】:

请理解我对 opencv 还很陌生。 我所拥有的是一个填充了 2D 点云的向量,其中浮点值作为 x 和 y 索引。我想要的只是某种方法来计算这朵云的外轮廓。确定一个边界矩形和一个凸包是没有问题的,因为相应的函数只与我的向量一起工作。我期待findContour() 没有什么不同,但似乎我错了。从字面上看,findContour() 上的每个教程都教我如何将图像加载到cv::Mat 对象中,没有人谈论这应该如何与理论上与二进制图像没有太大区别的 2D 点云一起工作。我知道findContour() 期望它的第一个参数是一种特殊类型的矩阵,但我不知道如何修改我的向量以获得所需的结果。我试图用cv::Mat(vector&lt;Point2f&gt;) 实例化一个矩阵,它本身可以工作,但不幸的是,当我将它传递给 findContour() 时会导致异常。请帮忙!

我正在使用 Raspbian btw 在 Raspberry Pi 3 上使用 GCC。

【问题讨论】:

  • findContours 只会在图像中找到轮廓。

标签: c++ opencv


【解决方案1】:

findContours 只会在图像中找到轮廓。

点云的外轮廓定义不明确 - 你怎么知道不要“进入”两个点之间以连接到更靠近中间的点?

只有当你有一些你认为是边缘的尺度长度时才有意义。 openCV 最简单的方法是计算凸包,然后查看convexity defects - 将您认为属于轮廓的任何缺陷添加到该位置的点列表中

【讨论】:

    猜你喜欢
    • 2012-09-19
    • 2011-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多