웹캠 이미지를 스트리밍하는 간단한 스크립트가 있는데 liveimage에서 줄을 감지하는 canny-filter 및 hough 변환과 같은 일부 작업을 수행하려고합니다.Python : 사용자 입력을 OpenCV 라이브 웹캠 이미지와 병행하여 입력하는 입력란을 입력하십시오.
import cv2
import math
# Init
cap = cv2.VideoCapture(0)
while(True):
# Capture frame-by-frame
ret, frame = cap.read()
# Our operations on the frame come here
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# Display the resulting frame
cv2.imshow('frame1',frame)
cv2.imshow('frame2',gray)
cv2.moveWindow('frame1', 200, 10)
cv2.moveWindow('frame2', 200+660, 10)
# (3.)
edges = cv2.Canny(frame, 40, 100)
cv2.imshow('lines',edges)
cv2.moveWindow('lines', 200, 10+530)
# hough
lines = cv2.HoughLinesP(edges, 1, math.pi/2, 20, None, 100, 10)
edgeimg = gray
if not lines is None:
for line in lines[0]:
pt1 = (line[0],line[1])
pt2 = (line[2],line[3])
cv2.line(edgeimg, pt1, pt2, (255,0,0), 3)
cv2.imshow('hough',edgeimg)
cv2.moveWindow('hough', 200+660, 10+530)
# cv2.imshow('img',img)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()
문제는 내가 조정할 영리한 필터와 무릎 기능의 매개 변수를 미세 필요가 있고, 따라서 나는 몇 가지 입력 상자를 만들기 위해 좋아하는 liveimage-창에 병렬로 실행 거라고 여기서 내가 할 수있는 그 값을 입력하십시오.
저는 코딩 오버 헤드를 줄이고 tkinter를 선택할 수있는 가장 간단한 해결책을 생각했습니다. 하지만 난 tkinter 상자를 병렬로 실행하는 데 어려움을 겪고있다. (단지이 솔루션을 여기에서 발견했다 : How do you run your own code alongside Tkinter's event loop?) 라이브 이미지를 매우 느리게 만든다. 게시물 # 1의 코드를 사용하면 내 liveimage를 넣을 수있다. task
기능.
내 코드에서 canny/houghlines의 매개 변수로 사용되는 숫자를 사용자가 입력 할 수있는 입력 상자를 표시하는 간단한 해결책을 제안 할 수 있습니까?
덕분에
opencv와 함께 제공되는 슬라이더를 사용할 수 있습니까? 그들은 매우 제한적입니다. –
Ah. 저는 cv2에서 사용할 수 있는지 궁금합니다. docs에서 볼 수 없기 때문입니다. http://docs.opencv.org/modules/highgui/doc/ user_interface.html # createtrackbar 사용할 수없는 이유는 무엇입니까? import cv2.cv as cv'와 같은 오래된 opencv 버전을 가져 와서'cv.CreateTrackbar (..)'명령을 통해 사용하는 방법입니까 ?? – tim
오, 그래, 고마워, 매력처럼 작동! 훌륭한. opencv의 명령 중 일부가 * old *'cv'를 통해서만 액세스 할 수 있고 아직 cv2로 포팅되지 않은 이유는 무엇입니까? 나는 그것에 대해 궁금해하고있다 .. – tim