归一化图像

在做样本训练的时候,常常会遇到归一化图像的情况,在训练之前需要将正负样本归一化为统一的尺寸大小,以便在训练的时候提高效率。以下是归一化的代码:

#include "cv.h"
#include "highgui.h"
#include <stdio.h>
#include <string.h>
#include <iostream>
using namespace std;

#define NUM 837
int main()
{	
	char filename[100];//输入文件名
	char image_name[13];//保存的图片名
	IplImage* pScr=NULL;
	IplImage *temp=cvCreateImage(cvSize(22,64),8,3);//临时存储归一化的图像
	IplImage *gray=cvCreateImage(cvSize(22,64),8,1);//归一化后的灰度图像
	for(int i=714;i<=NUM;i++)	
	{	
		sprintf(filename,"G:\\训练样本\\input\\%d.jpg",i);//将图片以数字命名:例如1.jpg 2.jpg等,放入D:/soldier_pos/文件夹下
//		sprintf(windowname,"window%d.bmp",i);		
		pScr=cvLoadImage(filename,1);	
		cvResize(pScr,temp,CV_INTER_LINEAR);
		cvCvtColor(temp,gray,CV_BGR2GRAY);
		
//		sprintf(image_name, "%s%d%s", "image",i, ".bmp");//保存的图片名
	
		sprintf(image_name, "G:\\训练样本\\output\\%d.bmp", i);//保存的图片名
		cvSaveImage( image_name, gray); //保存一帧图片

//		cvNamedWindow(windowname,CV_WINDOW_AUTOSIZE);		
//		cvShowImage(windowname,pScr);	
//		cvWaitKey(0);
	}	
	
	cout<<"convert completion!"<<endl;
	cvReleaseImage(&pScr);//释放图片
	cvReleaseImage(&temp);//释放图片
	cvReleaseImage(&gray);//释放图片
	cvDestroyAllWindows();//销毁窗口
	return 0;
}


你可能感兴趣的:(归一化图像)