在网上查了很多资料,但是效果不太理想,索性在别人的基础上自己在整理一下,终于可以了!很嗨皮,为了方面大家学习,我把自己的成果贴出来,让大家少走一点弯路吧。
//#include "stdafx.h"
#include <cv.h>
#include <highgui.h>
#include <math.h>
#include <string.h>
#include <stdio.h>
#define N 4 //定义输入图片的个数
int main(int argc, char* argv[]) //argc命令输入行的参数个数,argv数组里面存储的是各个参数的具体内容
{
IplImage*pScr = 0; //源图像指针
IplImage*dst = 0; //目标图像指针
CvSize dst_cvsize; //目标图像尺寸
char filename[100];
char windowname[100];
int i=1;
for(;i<=N;i++)
{
sprintf(filename,"F:\\OpenCV\\projects\\批量变换图像大小并保存\\lena8\\%d.jpg",i);
//你要改成自己的地址;输入图片的绝对地址用双斜线隔开,同时图片的名字必须用数字命名,且是.jpg格式的。
sprintf(windowname,"window%d.jpg",i);
pScr=cvLoadImage(filename,1);
dst_cvsize.width = 100;
dst_cvsize.height = 100;
dst = cvCreateImage(dst_cvsize,pScr->depth,pScr->nChannels); //构造目标图象
cvResize(pScr, dst, CV_INTER_LINEAR); //缩放源图像到目标图像
cvNamedWindow( "src", CV_WINDOW_AUTOSIZE ); //创建用于显示源图像的窗口
cvShowImage( "src", pScr ); //显示源图像
char cfilename[100];
sprintf(cfilename,"F:\\OpenCV\\projects\\批量变换图像大小并保存\\lena8\\store\\copy%d.jpg",i);
//输入需要保存的位置,必须用反双斜线隔开
cvSaveImage(cfilename,dst);
cvReleaseImage(&pScr);
}
cvWaitKey(0);
cvReleaseImage(&pScr); //释放源图像占用的内存
cvReleaseImage(&dst); //释放目标图像占用的内存
cvDestroyWindow( "src" ); //销毁窗口“src”
cvDestroyWindow( "dst" ); //销毁窗口“dst”
}
<span style="font-size:18px;color:#FF0000;"> 声明---本博由《迷途中的前进》作者本人原创,如需转载,收藏请注明作者和本博网址。</span>