C++版OpenCVとWebカメラを用いて、顔を追跡するカメラを作る方法を紹介します。
2015年08月04日23:30
スポンサーリンク
カメラで顔追跡
OpenCVにはカスケード分類器を扱うクラス(cv::CascadeClassifier)が用意されています。
今回はこれを利用して顔追跡するカメラを作成しました。
参考文献
参考になったサイトを以下にまとめました。
処理手順
プログラムの処理の流れを大まかに整理すると以下の通りです。
1
カメラ画像、HSV画像、マスク画像格納用の変数を宣言する。
2
カメラのキャプチャをする。
3
カメラをオープンする。(オープンに失敗したら終了)
4
haarカスケード型の顔分類器(haarcascade_frontalface_alt.xml)をロードする。
5
カメラからフレーム(画像)を取得する(rectangle)
6
フレーム(画像)をグレースケール変換変換する。(グレースケール画像で顔探索することで処理を高速化)
7
入力画像、縮小スケール、最低矩形数を指定して分類器で顔探索をおこなう。
8
顔検出した部分を赤い矩形で囲む。
9
結果を表示する。
10
任意のキーが押されたらプログラムを終了する。
※haarcascade_frontalface_alt.xmlはOpenCVをインストールした際に付属しています。
(opencv〇〇→data→haarcascadesフォルダの中にあります)
実行結果
赤枠が顔部分です。

MENU
Twitter