gpt4 book ai didi

c++ - 使用 HoughLinesP 检测矩形物体的准确中心点

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:01:25 25 4
gpt4 key购买 nike

我有一个对象,我想定义它的精确中心。使用 OpenCV,我使用 Canny 检测边缘,然后执行 HoughLinesP 检测线:see this .

我使用 Hough 变换是因为对象不是完全矩形的,有时会检测到颠簸 here .

行在结构中定义。我还计算了中点、角度和长度:

struct hLine {
Point pStart, pEnd, pMidpoint;
float angle;
int length;
};

如您所见,沿边检测到多条线。

问题是:如何获得矩形每条边的最长线(本例中为 0、1、3、4)?

我尝试的方法是计算线方程y = kx + n,然后按角度、长度和n对线进行排序,只保留具有y = kx + n的线strong>n 由一些数字分隔(矩形的相对边)。我遇到了垂直线的问题(n 无法计算),而且当对象几乎垂直时 n 数字很大,所以线没有被删除。

下一步是计算线的交点,然后计算中心。想法基于本教程:opencv-code.com/tutorials/automatic-perspective-correction-for-quadrilateral-objects/

此外,如果有人有更好的解决方案来检测准确的中心点,请说出来:)

最佳答案

在使用 canny 检测边缘后,您可以使用形态闭合操作来连接边缘。然后找到轮廓并使用多边形近似平滑轮廓。对于您找到的每个四边形,您可以检查角是否大致为 90 度以验证它是一个矩形。根据您的示例图像,您检测到的最大矩形应该是您感兴趣的矩形。(您也可以找到每个轮廓的凸包,然后将多边形近似应用于凸包)。

关于c++ - 使用 HoughLinesP 检测矩形物体的准确中心点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18401532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com