haartraing 准备(将图像统一修改尺寸)

haartraing 准备(将图像统一修改尺寸)可准备样本。

// change_img_size.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"//这句头文件一定要放在最上面,否则很容易报错


#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"


#include <iostream>
#include <stdio.h>


using namespace cv;
using namespace std;


#define DST_IMG_WIDTH 214        //需要调整图片后的尺寸宽度
#define SRC_IMG_HEIGH 214        //需要调整图片后的尺寸高度


int main(int argc, char* argv[])
{
    Mat src_img;
    int i,j;
    string src_img_name="x/",dst_img_name="y/";//源文件和目的文件的文件夹名字
    char chari[5],charj[5];//因为人脸数据不是很多,所以下标5足够用

for(i=1;i<=2;i++)
{
   //itoa(j,charj,10);
        itoa(i,chari,10);//将变量转换成字符型,此处的chari是字符数组首地址,但是如果定义为char *chari="";则会出现错误,why?
/*src_img_name+=1;*/



src_img_name+=chari;//原图命名格式为,比如第5个人的第6张图,5_s6.bmp
        src_img_name+=".tif";


        src_img=imread(src_img_name,0);
        Mat dst_img_rsize(DST_IMG_WIDTH,SRC_IMG_HEIGH,src_img.type());
        resize(src_img,dst_img_rsize,dst_img_rsize.size(),0,0,INTER_LINEAR);
        


dst_img_name+=chari;//转换后图的命名格式为:例上,5_s6n.bmp
        dst_img_name+=".tif";


        imwrite(dst_img_name,dst_img_rsize);
        src_img_name="x/",dst_img_name="y/";//每次循环后要重新清0字符数组内的内容,目的文件夹一定要事先建立,否则无效果


        }  


    return 0;
}

你可能感兴趣的:(haartraing 准备(将图像统一修改尺寸))