gpt4 book ai didi

c++ - OpenCV如何表示具有2个两个值的线?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:17:39 26 4
gpt4 key购买 nike

在 OpenCV 的 imgproc 模块中,有一个名为 HoughLines 的函数,它接受一个二值图像,一些其他参数,并返回一个 Vec2f 是成对的浮点值。

这些值应该代表在二进制图像中找到的线条,但我很难理解如何。

每对的第一个值,OpenCV documentation状态,是到原点的距离。原点到什么距离?线?如果有,是哪一行?

他们说,Vec2f 的第二个值是“以弧度表示的线旋转角度”。相对于什么轴的旋转角度?

理想情况下,我想将这种直线表示形式转换为我可以使用的东西,例如优秀的旧笛卡尔坐标 y = mx + c。如果没有,我至少希望能够找到位于由 Vec2f 表示的直线上的每个点。

关于如何实现上述两个目标的任何想法?或者,Vec2f[0]Vec2f[1]准确地是什么意思?

最佳答案

解释在您指向的文档的链接中给出 here .该线以参数方式定义,即以 x cos(a) + y sin(a) = r 的形式定义。与笛卡尔形式相反,它允许表达垂直线。因此,如果你没有垂直线(即 sin(a) 永远不会为空),你的情况下的笛卡尔形式是:

y = -  ( cos (Vec2f[1]) / sin (Vec2f[1] ) x - Vec2f[0] 

关于c++ - OpenCV如何表示具有2个两个值的线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31151534/

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