Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 霍夫变换直线跟随器_Python_Opencv_Feature Detection_Edge Detection_Hough Transform - Fatal编程技术网

Python 霍夫变换直线跟随器

Python 霍夫变换直线跟随器,python,opencv,feature-detection,edge-detection,hough-transform,Python,Opencv,Feature Detection,Edge Detection,Hough Transform,好的,我想制作一个程序来检测摄像机流中的一条线。这是为铝线跟随机器人。因此,如果机器人知道两条平行线的角度,他就知道他必须以哪种方式骑行 我执行以下功能: 使框架变灰 高斯模糊 精明的边缘 霍夫变换 首先,当没有行时,程序终止。(只有几行时也是如此) 我不知道怎么解决这个问题 另外,我想得到直线的角度。我想得到两条平行线的距离(知道这两条线是平行的) 这是我非常简单的代码,我包含了互联网上的大多数示例: import numpy as np import cv2 cap = cv2.Vid

好的,我想制作一个程序来检测摄像机流中的一条线。这是为铝线跟随机器人。因此,如果机器人知道两条平行线的角度,他就知道他必须以哪种方式骑行

我执行以下功能:

  • 使框架变灰
  • 高斯模糊
  • 精明的边缘
  • 霍夫变换
首先,当没有行时,程序终止。(只有几行时也是如此)

我不知道怎么解决这个问题

另外,我想得到直线的角度。我想得到两条平行线的距离(知道这两条线是平行的)

这是我非常简单的代码,我包含了互联网上的大多数示例:

import numpy as np
import cv2

cap = cv2.VideoCapture(0)
ret = cap.set(3,640)
ret = cap.set(4,480)

while True:
ret, frame = cap.read()
gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
gauss = cv2.GaussianBlur(gray,(3,3),0)
edges = cv2.Canny(gray,0,150,apertureSize = 3)
lines = cv2.HoughLines(edges,1,np.pi/180,50)

for rho,theta in lines[0]:
    a = np.cos(theta)
    b = np.sin(theta)
    x0 = a*rho
    y0 = b*rho
    x1 = int(x0 + 1000*(-b))
    y1 = int(y0 + 1000*(a))
    x2 = int(x0 - 1000*(-b))
    y2 = int(y0 - 1000*(a))
    cv2.line(frame,(x1,y1),(x2,y2),(0,0,255),2)

cv2.imshow('frame',edges)
cv2.imshow('frame',frame)

也许“尝试”可以解决这个问题:

while True:
    try:
      'your code'
    except:
      'other code'
这样,错误不会结束程序,但您可以决定要做什么