OpenCV 霍夫直线检测

OpenCV 霍夫直线检测


HoughLinesP函数参数解析:

image:经过Canny边缘检测后的输出图像
rho:极坐标的半径r以像素值为单位的分辨率,一般使用1像素
theta:极坐标的极角θ \thetaθ以弧度为单位的分辨率,一般使用1度
threshold:检测一条直线所需最少的曲线交点
lines:存储检测到的直线,包含直线的起点和终点坐标
minLineLength:组成一条直线的最少点的数量,点数量不足的直线将被抛弃(线的最短长度,比这个短的都被忽略)
maxLineGap:在一条直线上的点的最大距离(两条直线之间的最大间隔,小于此值,认为是一条直线)

def draw_line(img,lines):
    # 绘制直线
    for line_points in lines:
        cv2.line(img,(line_points[0][0],line_points[0][1]),(line_points[0][2],line_points[0][3]),
                 (0,255,0),2,8,0)
    cv2.imshow("line_img", img)
    cv2.waitKey(0)
# #Hough直线检测
lines = cv2.HoughLinesP(canny_img,1,np.pi/180,70,minLineLength=30,maxLineGap=10)
#基于边缘检测的图像来检测直线
draw_line(img,lines)

OpenCV 霍夫直线检测_第1张图片

你可能感兴趣的:(openCV,opencv,计算机视觉,人工智能)