当我们验证算法的时候,往往要处理一个文件夹下大量的图片,名字是变化的,所以如何读取它们是一件很重要的事情。
下面给出我在实际工作中的方法(图片命名为frame_xxxxxx):
//read image from YUV file
int i;
char *addChar;
char yuvImageName[255];
unsigned char input_img[WIDTH*HIGHT*2];
for(i=1;i<2000;i++ )
{
if(i<10)
addChar = "00000";
else if(i<100)
addChar = "0000";
else if(i<1000)
addChar = "000";
else if(i<10000)
addChar = "00";
else
addChar = "0";
/* sprintf(yuvImageName,"D:/Video_Images/jjzx/frame_%s%d",addChar,i);*/
sprintf(yuvImageName,"D:/Video_Images/zaxx/frame_%s%d",addChar,i);
FILE* yuvfile = fopen(yuvImageName,"rb");
if(yuvfile == NULL)
printf("cannot open file\n");
fread(input_img,sizeof(unsigned char),HIGHT*WIDTH*2,yuvfile);
fclose(yuvfile);