簡體   English   中英

C ++ OpenCV人臉檢測

[英]C++ opencv face detection

我正在編寫一個小腳本,該腳本應該使用C ++來檢測人臉,我是在Visual Studio 2010上開發的。

附帶了相關的方法,並且出現了以下我不理解的異常:

"opencvVisualization.obj : error LNK2019: unresolved external symbol "public: virtual __thiscall cv::CascadeClassifier::~CascadeClassifier(void)" (??1CascadeClassifier@cv@@UAE@XZ) referenced in function "void __cdecl `dynamic atexit destructor for 'cascade_eye''(void)" (??__Fcascade_eye@@YAXXZ)" 

任何幫助將非常感激。

#include "opencvVisualization.h"
#include "main.h"
#include <cstdio>
#include <highgui.h>
#include <cv.h>
#include <iostream>

using namespace cv;
using namespace std; 

CvRect *r;

const string haarcascade_face = "C:\\haarcascades\\haarcascade_frontalface_alt.xml";
const string haarcascade_eye = "C:\\haarcascades\\haarcascade_eye.xml";

CvHaarClassifierCascade* cascade;
CvMemStorage* storage;
CascadeClassifier cascade_face, cascade_eye;
char c;

void detectAndDisplay( IplImage* img);

void prepareCascade();

boolean isFaceImage (IplImage * image);

void prepareCascade() {
cascade = (CvHaarClassifierCascade*)cvLoad("C:\\haarcascades\\haarcascade_frontalface_alt.xml");
CvCapture *capture = 0;
cascade_face.load(haarcascade_face);
cascade_eye.load(haarcascade_eye);
}

boolean isFaceImage (IplImage * image) {
     CvSeq* faces = cvHaarDetectObjects(image, cascade, storage, 1.1, 3, CV_HAAR_DO_CANNY_PRUNING, cvSize (100, 100));
     int i;

    for(i = 0; i<(faces ? faces->total:0); i++)
    {

         r=(CvRect*)cvGetSeqElem(faces,i);
         cvRectangle(image,
                     cvPoint(r->x, r->y),
                     cvPoint(r->x + r->width, r->y + r->height),
                     CV_RGB(255,0,0), 1, 8, 0);
                     }
    return (i>0); 
}

/* **************************************************************************************** */

問題解決了。

我刪除了不必要的CascadeClassifiers,並使用

storage = cvCreateMemStorage(0);

這足以根據需要運行面部檢測算法

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM