0

好吧,我想製作一個程序來檢測相機流中的一條線。這是用於線路跟隨者機器人。所以如果機器人知道兩條平行線的角度,他知道他必須騎自行車。霍夫變換線追隨者

我執行後續功能:

  • 製作幀灰色
  • 高斯模糊
  • Canny邊緣
  • 霍夫變換

的第一件事是,即當沒有行,程序終止。 (也只有幾行時)。

我不知道該如何解決。

此外,我想獲得線的角度。我想要得到的2條平行線的距離(和知道魔女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

也許「嘗試'可以解決這個問題:

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

這樣一個錯誤不會結束程序,但你可以決定怎麼做。