基于opencv和python的hough变换曲线检测

基于opencv和python的hough变换曲线检测,python,opencv,formula,Python,Opencv,Formula,我想用OpenCV 3.1、Python 3.4和Hough transformer检测直线和曲线。我发现了很多网站,但我不明白我如何编程公式。我有以下代码: lines = cv2.HoughLines(edges,1,np.pi/180,200) for rho, theta in lines[0]: a = np.cos(theta) b = np.sin(theta) x0 = a*rho y0 = b*rho

我想用OpenCV 3.1、Python 3.4和Hough transformer检测直线和曲线。我发现了很多网站,但我不明白我如何编程公式。我有以下代码:

lines = cv2.HoughLines(edges,1,np.pi/180,200)
     for rho, theta in lines[0]:
        a = np.cos(theta)
        b = np.sin(theta)
        x0 = a*rho
        y0 = b*rho
        x1 = int(x0 + 1000*(-b))
        y1 = int(y0 + 1000*(a))
        x2 = int(x0 - 1000*(-b))
        y2 = int(y0 - 1000*(a))
        cv2.line(img,(x1,y1),(x2,y2),(0,0,255),2)
对于圆检测,如果发现:

x = a + r * cos0
y  = b + r * sin0
如果我只将x0和y0更改为

        x0 = a+rho*cos0
        y0 = b+rho*sin0
?


提前感谢。

要检测直线,请使用HoughLines和HoughLines。要检测圆,请使用houghleels。要检测任意形状的对象,请使用广义变换。要了解hough变换如何用于直线,请参阅此视频中的“红色圆圈通用化”也类似于“圆圈检测”。谢谢,但我可以将“通用化”变换与OpenCV 3.1和Python一起使用吗?我找不到关于广义Hogh变换的信息。我认为opencv for python中没有广义Hough变换的实现,但只有python中有广义Hogh变换的实现