opencv-直线检测(书中代码错误修改)python

问题

原书中的代码,输出的结果一直都是原图。

经过观察发现,其实是只描了一个点而已。(也就是返回的第一个点)

修改成下面的代码之后,就是可以描出直线检测的效果

import cv2
import numpy as np

img = cv2.imread("2.jpg")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray, 50, 120)
minLineLength = 20
maxLineGap = 5
lines = cv2.HoughLinesP(edges, 1, np.pi / 180, 100, minLineLength, maxLineGap)

for points in lines:
    x1, y1, x2, y2 = points[0]
    cv2.line(img, (x1, y1), (x2, y2), (0, 255, 0), 2)

cv2.imshow("edges", edges)
cv2.imshow("lines", img)
cv2.waitKey()
cv2.destroyAllWindows()

猜你喜欢

转载自blog.csdn.net/a19990412/article/details/81179247