请了解我对opencv还是很陌生。
我所拥有的是一个充满2D点云且浮点值分别为x和y索引的向量。我想要的是某种方法来计算此云的外部轮廓。确定边界矩形和凸包是没有问题的,因为相应的函数仅适用于我的向量。我期望findContour()
没什么不同,但似乎我错了。从字面上看,每个关于findContour()
的教程都教我如何将图像加载到cv::Mat
对象中,没有人谈论这与二维点云在理论上与二进制图像没有什么不同。我知道findContour()
期望它的第一个参数是特殊类型的矩阵,但是我不知道如何修改向量以达到期望的结果。我尝试使用cv::Mat(vector<Point2f>)
实例化一个矩阵,该矩阵本身可以工作,但不幸的是,当我将其传递给findContour()时会导致异常。请帮忙!
我正在使用Raspbian btw在Raspberry Pi 3上使用GCC。
答案 0 :(得分:0)
findContours将仅在图像中找到轮廓。
点云的外部轮廓定义不明确-您怎么知道不进入两个点之间才能连接到更靠近中间的点?
仅当您具有一定比例尺长度并认为是边缘时才有意义。 openCV的最简单方法是计算凸包,然后查看convexity defects-将您认为轮廓的任何缺陷添加到该位置的点列表中