OpenCV如何表示具有两个两个值的直线
How does OpenCV represent a line with 2 two values?
在OpenCV的imgproc
模块中,有一个名为HoughLines
的函数,它获取二进制图像和一些其他参数,并返回Vec2f
的矢量,这些矢量是浮点值对。
这些值应该表示二进制图像中的线条,但我很难理解如何表示。
OpenCV文档指出,每对的第一个值是距离原点的距离。从原点到什么的距离?线路?如果是,线路的哪一部分?
他们说,Vec2f
的第二个值是"以弧度为单位的直线旋转角度"。相对于什么轴的旋转角度?
理想情况下,我想将这种线的表示转换为我可以使用的东西,比如好的、旧的笛卡尔y = mx + c
。如果不是,我至少希望能够找到位于Vec2f
表示的线上的每个点。
关于我如何实现以上两个目标,有什么想法吗?或者,Vec2f[0]
和Vec2f[1]
值精确地是什么意思?
您在此处指向的文档链接中给出了解释。该线是以参数化的方式定义的,即在形式x cos(a) + y sin(a) = r
下。与笛卡尔形式相反,它允许表达垂直线。因此,如果你没有垂直线(即sin(a)从不为空),那么你的情况下的笛卡尔形式是:
y = - ( cos (Vec2f[1]) / sin (Vec2f[1] ) x - Vec2f[0]
相关文章:
- 如何在C++中从两个单独的for循环中添加两个数组
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 当在同一名称空间中有两个具有相同签名的函数时,会发生什么
- 如何返回一个类的两个对象相加的结果
- 如何在C++中将一个无符号的 int 转换为两个无符号的短裤?
- 如何将两个不同矢量的同一位置的两个元素组合在一起
- 两个字符串在 c++ 中不相等
- 在两个类中共享相同的函数调用,并在不需要时避免空实例化
- 两个文件使用彼此的功能-如何解决
- 为什么Mat类的两个对象可以在不重载运算符+的情况下添加
- 嵌套在循环中的两个循环的 big-O 表示法
- 将数字表示为两个三角形数字的总和
- C++显示两个区间之间的数字的程序检查一个数字是否可以表示为两个素数的总和
- 获取所有方式以两个整数的产品表示数字
- 乘以两个表示为链接列表的大数字
- 如何将两个类之间的严重依赖关系表示为子类化的契约
- 分割故障添加了两个表示字符串的大数字
- 作为抽象,C++是否支持表示两个以上值之一的"bits"?
- 如何确定两个Win32 API句柄表示相同的对象
- OpenCV如何表示具有两个两个值的直线