0

cvHaarDetectObjectsがどのように機能するかを学習しようとしています...それがどのように機能するかを視覚化できませんでした...積分画像がどのように計算され、顔を見つけるか...

顔の領域に長方形を配置します...この領域をどのように見つけますか?

if (faces)
{
    for(int i = 0; i < faces->total; ++i)
    {
        CvPoint point1, point2;
        CvRect* rectangle = (CvRect*)cvGetSeqElem(faces, i);
        point1.x = rectangle->x;
        point2.x = (rectangle->x + rectangle->width);
        point1.y = rectangle->y;
        point2.y = (rectangle->y + rectangle->height);
        cvRectangle(frame, point1, point2, CV_RGB(255,0,0));...
4

2 に答える 2

2

このwikiページを読む http://en.wikipedia.org/wiki/Viola%E2%80%93Jones_object_detection_framework

Viola Jonesメソッドと呼ばれる有名なアルゴリズムがあります: http ://research.microsoft.com/en-us/um/people/viola/Pubs/Detect/violaJones_CVPR2001.pdf

これがどのように機能するかを理解するのに役立つことを願っています。

于 2013-03-22T18:46:04.360 に答える
0

四角形は、OpenCV ライブラリで 2 つの角を持つことによって作成されます。SO

point1.x = rectangle->x;
point2.x = (rectangle->x + rectangle->width);
point1.y = rectangle->y;
point2.y = (rectangle->y + rectangle->height);

から

CvRect* rectangle = (CvRect*)cvGetSeqElem(faces, i);

が顔を検出している場所を取得し、これらの x 座標と y 座標を使用し、それらを使用して必要な 2 つのパイントを作成し (上記のコード)、ポイントを引数として長方形を描画します。

cvRectangle(frame, point1, point2, CV_RGB(255,0,0));
于 2013-03-17T08:22:08.357 に答える