2017-01-27 37 views
2

目の動きを検出する方法。私は熱いビデオの中で閉じた目の領域を検出することができます。次に最もホットスポットを見つけて、その点の周りに円を描きます。試行錯誤で、目のコーナーの座標を概算してから、 [2]ビデオから。次のタスクは、その動きを検出することです。python opencvを使用して熱ビデオで目の動きを検出

import numpy as np 
import cv2 
import scipy 
from matplotlib import pyplot as plt 
from PIL import Image 
from collections import Counter 
blur_radius = 1.0 
threshold = 50 


video = cv2.VideoCapture('12.avi') 
while True: 
     ret, frame = video.read() 
     frame = frame[:,1:600] 
     gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) 
     gray = cv2.GaussianBlur(gray, (15,15), 0) 
     (minVal, maxVal, minLoc, maxLoc) = cv2.minMaxLoc(gray) 
     image = frame 
     (x,y) = maxLoc 
     cv2.circle(image, maxLoc, 15, (255, 0, 0), 2) 
     cv2.rectangle(image,(maxLoc),(390,190),(0,255,0),2) 
     roi = frame [y:190,x:390] 
     try: 
       roi = cv2.resize(roi, None, fx=4, fy=4, interpolation=cv2.INTER_AREA) 
       cv2.imshow("Eye",roi) 
       cv2.imshow("Eyecorner", image) 
     except: 
       print'' 

     if cv2.waitKey(1) & 0xFF == ord('q'): 
       break 

video.release() 
cv2.destroyAllWindows() 

1 [1] 2 [2]

[1]:https://i.stack.imgur.com/jayfp.jpg =単一フレームで検出された目

[2]:https://i.stack.imgur.com/MgEe7.jpg熱映像からトリミングされた目領域を=

+0

おそらく開かれた目と閉じた目の* eigenimages *を使用し、それらの間で跳ねるかどうかを調べるでしょうか? –

+0

実際、眼瞼は常に閉じているので、眼球が閉じた蓋の内側を動いているかどうかを確認するために、睡眠状態の眼球運動を計算しなければなりません。 – karthik

+1

よく私は寝ているときに目の動きについてそれほど知らない。あなたはそれを画面上で見ますか?どうやって?それはあなたが答えなければならない最初の質問であるべきです:「どうすればそれを自分でできますか? –

答えて

0

すでに目と角の座標を含むホットスポットがあるので、ホットスポットの中心と中心点の間の距離を単純に測定することはできません各フレームの2つのコーナーの間で変化率を調べます。あなたは正確な測定値は言及していませんが、100%正確で頭があまり動かない(視点は変わらない)ならば、それはうまくいくはずです。それ以外の場合は、参照フレームを決定する別の方法が必要です。

+0

顔には少し傾いたときにホットスポットが変化します同じピクセル値を有するコーナー、目領域の周りの矩形がシフトする。あなたが提案した方法は私に顔の動きを与えますが、目は動きません。顔の変化率を計算します。 – karthik

関連する問題