Opencv Hough线给出负的rhos
我正在尝试使用Opencv Hough线给出负的rhos,opencv,Opencv,我正在尝试使用HoughLines()生成一些Hough线,但有些线具有负值rho值,如: array([-58,3.07177949]],dtype=float32)) array([-56,3.05432606]],dtype=float32)) 既然rho=sqrt(x^2+y^2),为什么rho可以是负数?原点是图像的中心吗?rho不是sqrt(x^2+y^2)。它是直线与原点的偏移量,一侧为正值,另一侧为负值。从中,该行的一般表达式为: rho=x*cos(theta)+y*sin(t
HoughLines()
生成一些Hough线,但有些线具有负值rho
值,如:
array([-58,3.07177949]],dtype=float32))
array([-56,3.05432606]],dtype=float32))
既然
rho=sqrt(x^2+y^2)
,为什么rho
可以是负数?原点是图像的中心吗?rho
不是sqrt(x^2+y^2)
。它是直线与原点的偏移量,一侧为正值,另一侧为负值。从中,该行的一般表达式为:
rho=x*cos(theta)+y*sin(theta)
为了进一步扩展,theta
位于[0,pi)
中,因此rho
可以为负值,这与[pi,2*pi)
。如果您自己实现Hough变换,您可以选择是否使用该参数化,或者,您可以在[0,2*pi)
中使用角度,并且只能使用正rho
值。但是OpenCV在中使用θ
[0,pi)
如图所示:max_theta…必须介于min_theta
和CV_pi
之间。原点是图像的中心吗?@JohnM。您现在可能已经找到了,但原点(0,0)在OpenCV图像中,是图像的左上角。正X轴向右,正Y轴向下。这与数学世界的直觉相反(正Y轴通常向上),但对于计算机图形来说是正常的。