问题提出:
在使用OpenCV进行编程的过程中,我们经常会遇到需要大量的图片进行测试。如果通过每次都修改程序中的文件名,然后运行,那么就很繁琐,调试的效率也是很低的。通过批量读入图片,只要一次运行,就可以看到整个程序的运行效果,那么调试时间就会缩短原来的N分之一(N图片的个数)。
详细代码:
变量定义(在函数或主函数外):
//存储当前图片指针
IplImage* img0 = NULL;
//所有图片文件名的罗列
char* names[] = { "1.bmp","2.bmp","3.bmp","4.bmp","5.bmp","6.bmp","7.bmp","8.bmp","9.bmp","10.bmp","11.bmp",0}
功能实现: int i, c;
for( i = 0; names[i] != 0; i++ )
{
img0 = cvLoadImage( names[i], 1 );
if( !img0 )
{
cout<<"不能载入"<<names[i]<<"继续下一张图片"<<endl;
continue;
}
//***********************************
//这里添加图片处理的代码
//**********************************
c = cvWaitKey(0);
if( (char)c == 27 ) //27是ESC键
break;
}