0

좋아, 카메라 스트림에서 라인을 감지하는 프로그램을 만들고 싶다. 이것은 알 라인 팔로워 로봇을위한 것입니다. 따라서 로봇이 두 개의 평행 한 선의 각도를 알고 있다면 그는 어느 방향으로 가야하는지 알고있었습니다.Hough transform line follower

  • 만들기 프레임 회색
  • 가우시안 블러
  • 캐니 에지
  • 호우가

전혀있을 때 가장 먼저하는 일이 없다는 것을 변환 :

나는 추적 기능을 수행 회선을 종료하면 프로그램이 종료됩니다. (또한 몇 줄 밖에없는 경우).

어떻게 해결해야할지 모르겠다.

또한 선의 각도를 얻고 싶습니다. '어쩌면

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

: 그리고 내가 인터넷에서 대부분의 예제를 포함하고, (마녀 2 선이 평행하고 알고) 여기

내 매우 간단한 코드가 2 평행선의 거리를 얻으려면 시도해보십시오 :

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

이렇게하면 오류가 프로그램을 종료하지 않지만 사용자가 수행 할 작업을 결정할 수 있습니다.