パイソンCV2ビデオ検出:開閉

述べたように、フレーム検出カメラ機能に応じて開閉簡単に達成することができます。

 

最初のアイデアは、次のとおりです。

コンピュータのカメラを呼び出す1. CV2は、額縁を読み込みます。

2.ハルとして画面 - 入力インタフェース顔分類器を、結果に応じて分類器は、分類領域の結果を返さ。

目の分類器の入力 - 3.結果はハルとして、画像の領域をトリミング。

4.出力顔分類器上の画像は、眼クラシファイアすなわち閉眼状態を検出できない場合確認し、ヒントを与えています。

 

動作時には実質的に透明。

 

コードを入れてください:

- * -コーディング:UTF-8 - - * 
から __future__  インポートunicode_literals
 インポートCV AS CV2を
 インポート時間


ハルカスケード分類器 
FD = cv.CascadeClassifier(R&LT " Users \ユーザー\ wenzhe.tian \デスクトップ\閉じ:C眼の\ haarcascade_frontalface_alt.xml識別' 
ED = cv.CascadeClassifier(R&LT ' Cが:ユーザー\ \ wenzhe.tianデスクトップ\眼認識\のhaarcascade_eye_tree_eyeglasses.xml閉鎖\ ' のNd = cv.CascadeClassifier(' ../../データ/ハール/ nose.xml「) 
VC = cv.VideoCapture(0) 

一方TRUE:
    フレーム = vc.read()[1 ] = fd.detectMultiScale(フレーム、1.3、5 のための L、T、W、H 顔:
        、B = INT(W / 2)、INT(H / 2 
        cv.ellipse(フレーム、(L +、 T + B)、(a、b)は、0、0、360、(255、0、255)、2  =枠[T:T + H、LのL + W] 
     = ed.detectMultiScale(顔、 1.3、5 のための L、T、W、H 目:
        、B = INT()W / 2、INT(H / 2 
        cv.ellipse(顔、(L +、T + B)、(A 、B)、0,0、360、(0、255、0)、2 
    
    鼻= nd.detectMultiScale(顔、1.3、5) 
    L、T、W、鼻における時間:
    #1 、A、B = INT(W / 2)、INT(H / 2)
    #1 cv.ellipse(面、(LA、TB)、(b)は、0、
    0、360、(255、0、0)、2)
    #1 、A = '近い目!!' 
    
    もし lenは(目)=!0:
        cv.destroyWindow(' 近い目!! ' #1 cv.moveWindow( 'オープンの目'、300300) 
        cv.imshow(' 開眼!! ' 、フレーム)

    
        cv.destroyWindow (' 開眼!! ' #1 time.sleep(1)
        #1 cv.moveWindow( '近くの目'、300300)
        cv.imshow(' 近い目!! ' 、フレーム)
    
    
    であれば cv.waitKey(1)== ORD('  ' ):
         ブレーク 
vc.release()
cv.destroyAllWindows()

 

おすすめ

転載: www.cnblogs.com/techs-wenzhe/p/11378163.html