opencv批量读图像序列

转自http://www.cnblogs.com/wsc36305/archive/2012/10/19/2731651.html

opencv实现批量读图像序列,以函数的形式实现如下:

view plain copy to clipboard print ?
  1. void readImageSequenceFiles(char* imgFilePath,vector <string> &imgNames)//用vector <string>做存贮文件名的容器  
  2. {     
  3.     imgNames.clear();  
  4.     int i=0;  
  5.     char tmpDirSpec[MAX_PATH+1];  
  6.     char tmpDirPath[40];  
  7.     sprintf (tmpDirSpec, "%s/*", imgFilePath);//*任意文件名 正则表达式  
  8.   
  9.     WIN32_FIND_DATA f;  
  10.     HANDLE h = FindFirstFile(tmpDirSpec , &f);  
  11.     if(h != INVALID_HANDLE_VALUE)  
  12.     {  
  13.         FindNextFile(h, &f);    //read ..  
  14.         FindNextFile(h, &f);    //read .  
  15.         do  
  16.         {     
  17.             sprintf(tmpDirPath, "%s", imgFilePath);  
  18.               
  19.             imgNames.push_back(f.cFileName);  
  20.             imgNames[i].insert(0,tmpDirPath);  
  21.             i++;  
  22.         } while(FindNextFile(h, &f));  
  23.   
  24.     }  
  25.     FindClose(h);     
  26. }  

主函数里这个调用就可:

view plain copy to clipboard print ?
  1. char* filefolder="D:/image/chessboards/";  
  2. std::vector <string>  imgname;  
  3.   
  4. readImageSequenceFiles(filefolder,imgname);  

你可能感兴趣的:(opencv批量读图像序列)