求教opencv人脸识别中Haar特征值的计算

 我来答
博飞港澳台联考
高粉答主

2015-01-29 · 说的都是干货,快来关注
知道大有可为答主
回答量:1.9万
采纳率:93%
帮助的人:1亿
展开全部
#include <stdio.h>
#include <string.h>
#include "cv.h"
#include "cvaux.h"
#include "highgui.h"

using namespace cv;

//globle variables
int nTrainFaces = 0; // number of trainning images
int nEigens = 0; // number of eigenvalues
IplImage** faceImgArr = 0; // array of face images
CvMat* personNumTruthMat = 0; // array of person numbers
IplImage* pAvgTrainImg = 0; // the average image
IplImage** eigenVectArr = 0; // eigenvectors
CvMat* eigenValMat = 0; // eigenvalues
CvMat* projectedTrainFaceMat = 0; // projected training faces

//// Function prototypes
void learn();
void recognize();
void doPCA();
void storeTrainingData();
int loadTrainingData(CvMat** pTrainPersonNumMat);
int findNearestNeighbor(float* projectedTestFace);
int loadFaceImgArray(char* filename);
void printUsage();

int main( int argc, char** argv )
{
if((argc != 2) && (argc != 3)){
printUsage();
return -1;
}

if( !strcmp(argv[1], "train" )){
learn();
} else if( !strcmp(argv[1], "test") ){
recognize();
} else {
printf("Unknown command: %s\n", argv[1]);
}
return 0;
}

void printUsage(){
printf("Usage: eigenface <command>\n",
" Valid commands are\n"
" train\n"
" test\n"
);
}

void learn(){
int i;

// load training data
nTrainFaces = loadFaceImgArray("train.txt");
if( nTrainFaces < 2){
fprintf(
stderr,
"Need 2 or more training faces\n"
"Input file contains only %d\n",
nTrainFaces
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式