0

Хорошо, я хочу сделать программу для обнаружения линии из потока камеры. Это для последовательного робота. Поэтому, если робот знает угол двух параллельных линий, он знает, в каком направлении он должен ехать.Hough transform line follower

Я выполняю функции последующие:

  • Сделать кадр серый
  • Гауссово размывание
  • Канни край
  • Хаф преобразования

Первое не в том, что при наличии нет линии, программа завершается. (также при наличии нескольких строк).

Я не знаю, как это решить.

Кроме того, я хочу получить угол линии (линий). И я хочу, чтобы получить расстояние от 2-х параллельных линий (и знать ведьму-линии параллельны)

Вот мой очень простой код, я содержу большинство примеров в Интернете:

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) 

ответ

0

может быть " try 'может решить это:

while True: 
    try: 
     'your code' 
    except: 
     'other code' 

Таким образом, ошибка не закончилась бы программой, но вы могли бы решить, что делать.

Смежные вопросы