使用OpenCV处理图像时经常会遇到读取文件夹中连续图片的情况,解决这种问题的办法是使用sprintf函数。
for(int i=1;i<=num;i++)
{
sprintf(filename,"D:/test/%d.jpg",i);// 将图片以数字命名:例如1.jpg ,2.jpg等,放入D:/test/文件夹下
sprintf(windowname,"window%d.jpg",i);
image=cvLoadImage(filename,1);//导入图片
cvNamedWindow(windowname,1);
cvShowImage(windowname,image);//显示图片
//cvWaitKey(0);
}
另外,如果图片命名方式是这种:D:/test/00001.jpg,D:/test/00002.jpg。。。。。。,则需要小调整一下:
for(int i=1;i<=num;i++)
{
sprintf(filename,"D:/test/%05d.jpg",i);// 00001.jpg ,00002.jpg等,放入D:/test/文件夹下
sprintf(windowname,"window%05d.jpg",i);
image=cvLoadImage(filename,1);//导入图片
cvNamedWindow(windowname,1);
cvShowImage(windowname,image);//显示图片
//cvWaitKey(0);
}
其中%md,为C语言中输出控制,m为常数,表示输出为m位。