gpt4 book ai didi

python - 关于使用OpenCV进行线路检测

转载 作者:行者123 更新时间:2023-12-02 16:07:44 24 4
gpt4 key购买 nike

我尝试在下图中标记道路:黄色中线和白色边缘线:
enter image description here
我使用Hough Transfrom的标准代码。我的代码如下:

import cv2
import numpy as np
img = cv2.imread('Road3.jpg')
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)


low_yellow=np.array([18, 94, 140])
up_yellow=np.array([48, 255, 255])
mask=cv2.inRange(hsv, low_yellow, up_yellow)
edges = cv2.Canny(mask,75,150)

lines = cv2.HoughLinesP(edges,1,np.pi/180,50,maxLineGap=250)
for line in lines:
x1,y1,x2,y2 = line[0]
cv2.line(img,(x1,y1),(x2,y2),(0,255,0),5)

cv2.imshow('image', img)
cv2.imshow("edges", edges)
k = cv2.waitKey(0)
cv2.destroyAllWindows()
但是有错误反馈:
enter image description here
换行后 hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)我的输出如下:
enter image description here
enter image description here
看来这只是图片的一部分,但我不知道问题出在哪里。
根据艾哈迈德(Ahmet)的回答,我可以按如下方式获得黑色的一幅图像,而彩色的一幅则是整个图像的一部分。
enter image description here

最佳答案

here所述,将RGB转换为HSV的正确方法是使用cv2.COLOR_BGR2HSV标志:

# Convert BGR to HSV
mask = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
更改行时,输出:
enter image description here
  • 如何获得结果?

  • 我使用了 imwrite并将图像保存到本地PC中。
    cv2.imwrite("out.png", edges)
    但是,如果要显示,首先需要调整大小以查看整个图像。
    cv2.imshow("edges", cv2.resize(edges, (640, 480)))
    cv2.waitKey(0)
    cv2.destroyAllWindows()

    关于python - 关于使用OpenCV进行线路检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63462731/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com