【问题标题】:C++ opencv face detectionC++ opencv 人脸检测
【发布时间】:2014-01-31 02:48:29
【问题描述】:

我正在编写一个应该使用 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); 
}

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

【问题讨论】:

  • 你也可以上传opencvVisualization.h吗..?您的程序似乎无法识别那里的类/函数。
  • 你在链接 opencv_objdetect 吗?
  • scap3y - 已上传。
  • 另外,请移至 c++ api,不再积极支持旧的 c 。
  • berak - 是的。 opencv_objdetect220d.lib 在 Linker-->input-->additional dependencies 中链接(我应该链接其他地方吗?)

标签: c++ visual-studio-2010 opencv face-recognition


【解决方案1】:

问题解决了。

我删除了不必要的 CascadeClassifiers, 并使用

将内存分配给 Storage
storage = cvCreateMemStorage(0);

这足以根据需要运行人脸检测算法

【讨论】:

    猜你喜欢
    • 2017-12-24
    • 2012-02-04
    • 2013-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-15
    • 2016-05-05
    • 2012-03-29
    相关资源
    最近更新 更多