鉴于用caffe做实验的时候,里面牵扯到一个问题是必须将训练集和测试集都转成256*256的图像,而官网给出的代码又不会用,所以我用opencv转了。其实opencv只转一幅图会很简单,关键在于“批量”二字,因此本博客应运而生了。
本博客详细讲解了如何使用opencv批量处理图像,使某一个文件夹内全部图像都resize成256*256的。如果理解了本次博客内容,则不光可以对图像进行resize操作,还可以用来对图像做其它批处理操作。
1 先用opencv转一幅图像试试
这一部分怎么来的太简单了就不多说了,直接翻一下opencv中的cvResize函数声明,需要什么参数就填什么。
#include "cv.h"
#include "highgui.h"
#include "math.h"
#include <iostream>
using namespace std;
void main()
{
IplImage *src;
IplImage *dst;
src=cvLoadImage("C:\\Users\\LJJ\\Desktop\\测试图\\caffe实验\\resize\\0101.jpg", 0);//载入源图像
dst=cvCreateImage(cvSize(256,256),src->depth,src->nChannels);//分配一个256*256的目标图像,resize后的结果将放在这里
if(src==0)
{
printf("打开图片失败!");
exit(0);
}
cvNamedWindow("src",CV_WINDOW_AUTOSIZE);//分配一个用以承载图片的窗口
cvNamedWindow("dst",CV_WINDOW_AUTOSIZE);//分配一个用以承载图片的窗口
cvShowImage("src",src);//显示src
cvShowImage("dst