2011年07月10日

目の検出

目の検出プログラムです。openCVは目を学習済みのため、学習データを参照するのみで目の検出処理が作成できます。とても便利です。

#include "stdafx.h"
#include "opencv2/opencv.hpp"

using namespace cv;

int _tmain(int argc, _TCHAR* argv[])
{
//入力画像
Mat Img = imread("face.jpg", 1);

//グレースケール画像(目検出の処理はグレースケール画像で行う))
Mat GrayImg;

//入力画像をグレースケール画像に変換
cvtColor(Img, GrayImg, CV_BGR2GRAY);

//目の学習データ(openCVはすでに目のデータを用意している))
std::string nested_cascadeName = "C:\\OpenCV2.2\\data\\haarcascades\\haarcascade_eye.xml";
CascadeClassifier nested_cascade;
if(!nested_cascade.load(nested_cascadeName))
return -1;

std::vector nestedObjects;
///目の検出
// 画像,出力矩形,縮小スケール,最低矩形数,(フラグ),最小矩形
nested_cascade.detectMultiScale(GrayImg, nestedObjects,
1.1, 3,
CV_HAAR_SCALE_IMAGE,
cv::Size(10,10));

// 目の位置の表示
for(std::vector::const_iterator nr = nestedObjects.begin(); nr != nestedObjects.end(); ++nr) {
rectangle(Img, Point(nr->x,nr->y), cv::Point(nr->x + nr->width, nr->y + nr->height), cv::Scalar(255,0,0), 3, 4);
}
imshow( "result", Img );

waitKey(0);

return 0;
}

目の検出結果
eyes_detect.jpg

お勧め本:
詳解 画像処理プログラミング C言語で実装する画像処理アルゴリズムのすべて [単行本] / 昌達 慶仁 (著); ソフトバンククリエイティブ (刊)詳解 画像処理プログラミング C言語で実装する画像処理アルゴリズムのすべて [単行本] / 昌達 慶仁 (著); ソフトバンククリエイティブ (刊)詳解 OpenCV ―コンピュータビジョンライブラリを使った画像処理・認識 [単行本(ソフトカバー)] / Gary Bradski, Adrian Kaehler (著); 松田 晃一 (翻訳); オライリージャパン (刊)OpenCV プログラミングブック [単行本(ソフトカバー)] / 奈良先端科学技術大学院大学 OpenCVプログラミングブック制作チーム (著); 毎日コミュニケーションズ (刊)コンピュータビジョン最先端ガイド1[CVIMチュートリアルシリーズ] [単行本] / 倉爪 亮, 石川 博, 加藤 丈和, 佐藤 淳, 三田 雄志 (著); 八木 康史, 斎藤 英雄 (編集); アドコム・メディア (刊)コンピュータビジョン最先端ガイド2 [CVIMチュートリアルシリーズ] [単行本] / 藤吉 弘亘, 山下 隆義, 岡田 和典, 前田 英作, ノジク ヴァンソン, 石川 尋代, ドゥ ソルビエ フランソワ (著); 八木 康史, 斎藤 英雄 (編集); アドコム・メディア (刊)
posted by ok at 20:13| Comment(0) | opencv | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。