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)