2017-01-20 5 views
0

カメラのビデオフィードにcv2.matchShapes()関数を使用する方法を知りたいと思います。私はフレームが変わるたびに連続した値を取得したい。 これを行うpythonスクリプトを作成するにはどうすればよいですか?OpenCv Python(PythonでのShapeの一致機能)

答えて

0

残念ながら、私は今カメラがなく、テストできません。 しかし、私はあなたがこの目的のために発電機を使用して、このような何かを行うことができ、正しくあなたを理解することができた場合:私はあなたが欲しい正確ではありません提案する場合

video_capture = cv2.VideoCapture(0) 
known_shapes = [ ... ] # list of your known shapes could be in format: [[shape_name, shape_vector_data], ...] 

def live_comparator(): 
    while True: 
     # get the current frame and initialize the occupied/unoccupied text 
     ret, frame = video_capture.read() 

     # if the frame could not be received, then we have reached the end of the video 
     if not ret: 
      break 

     # convert it to grayscale 
     # and blur it if you need of-course 
     frame= cv2.cvtColor(frame, cv2.CV_CONTOURS_MATCH_I1) 
     frame= cv2.GaussianBlur(frame, (21, 21), 0) 

     for known_shape_name, known_shape_vector in known_shapes: 
      retval = cv2.MatchShapes(frame, known_shape_vector , method=CV_CONTOURS_MATCH_I1, parameter=0) 

      yield (known_shape_name, retval) 

for known_shape_name, retval in live_comparator(): 
    # do what you want with matched data 

私の謝罪は、私は100%のためにあなたの質問を理解することはできません。もしあなたが欲しいのでなければ、無視してください。

+0

手話のジェスチャーと既存のデータを比較したいと考えています。 begenningで言及したknown_shapes配列を作成するにはどうすればよいですか? –