人脸识别3.1.1

根据人脸分类器检测人脸

一、代码
#include <iostream>
#include <opencv2/opencv.hpp>
#define N_BINS 16           //Number of bins
#define N_DIVS 3            //Number of cells = N_DIVS*N_DIVS
#define N_PHOG N_DIVS*N_DIVS*N_BINS
#define BIN_RANGE (2*CV_PI)/N_BINS

using namespace std;
using namespace cv;

const string SF="D:\\code\\c\\opencv\\opencv_face_catch\\sample";               //处理的人脸集
const string OF="D:\\code\\c\\opencv\\opencv_face_catch\\output";               //处理得到的分类器集
const string TF="D:\\code\\c\\opencv\\opencv_face_catch\\sample\\main.txt";     //对于人脸集的文件管理文件
const string CF="E:\\Application\\opencv\\OpenCV-MinGW-Build-OpenCV-4.1.1-x64\\etc\\haarcascades\\haarcascade_frontalface_alt.xml";
char char_filename[1024];

Mat hog(const Mat &Img);
string change_int_to_char(int a);
void change_string_to_char(string s);
int main()
{
   
    CascadeClassifier faceCascader;
    string filename;
    VideoCapture capture;
    Mat img,feature,img_gray,new_img,show_img,gray;
    int f1,f2,svm_t=0;
    cv::Ptr<cv::ml::SVM> svm[10];
    char file[20],fname[10][20];
    int id,SFN,mid;
    Rect roi;
    vector<Rect> face;

    FILE *fp;
    change_string_to_char(TF);
    fp=fopen(char_filename,"rb");
    while(fscanf(fp,"%d %s %d",&id,file,&SFN)!=EOF)
    {
   
        if(id==0)
            continue;
        filename=OF+"\\"+file+"_"+change_int_to_char(id)+".xml";
        svm[id-1]=cv::ml::StatModel::load<cv::ml::SVM>(filename);
        if(svm[id
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值