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)

版权声明:本文为guoqingru0311原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。