实现人脸检测。opencv提供了Haar分类器,其在data文件下还提供了训练的数据,所以实现这个不是很难。
我继承OpenCVaction,实现了人脸检测的算法。
#ifndef OPENCVFACEDETECTACTION_H
#define OPENCVFACEDETECTACTION_H
#include "opencvaction.h"
class OpenCVfaceDetectAction : public OpenCVaction
{
Q_OBJECT
public:
OpenCVfaceDetectAction(QObject *parent = 0);
~OpenCVfaceDetectAction();
void action(IplImage *imgin, IplImage *&imgout);
signals:
void a();
private:
CvHaarClassifierCascade* m_cascade;
CvMemStorage* m_storage;
double m_scale;
};
#endif // OPENCVFACEDETECTACTION_H
#include "opencvfacedetectaction.h"
#include <QDebug>
const char* cascade_name = "data/haarcascade_frontalface_alt.xml";
OpenCVfaceDetectAction::OpenCVfaceDetectAction(QObject *parent): OpenCVaction(parent),
m_cascade(NULL),
m_storage(NULL),
m_scale(1.3)
{
m_cascade = (CvHaarClassifierCascade*)cvLoad(