欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-05-29 09:40:26
...

问题

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

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

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

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()