关于作者主页给出的代码,无法读取连续图像文件,这里做出修改,运行通过。
问题出现在readImageSequenceFiles函数中,由于wchar*与char* 之间的转换问题引起,查阅很多网页,终于修改成功。
void readImageSequenceFiles(char* imgFilePath,vector <string> &imgNames)
{
imgNames.clear();
char tmpDirSpec[MAX_PATH+1];
sprintf (tmpDirSpec, "%s/*", imgFilePath);
WIN32_FIND_DATA f;
TCHAR wchar[100];
MultiByteToWideChar( CP_ACP, 0, tmpDirSpec, strlen(tmpDirSpec)+1, wchar, sizeof(tmpDirSpec)/sizeof(wchar[0]) );
HANDLE h = FindFirstFile(wchar , &f);
char tmpstr[20]={0};
if(h != INVALID_HANDLE_VALUE)
{
FindNextFile(h, &f); //read ..
FindNextFile(h, &f); //read .
do
{
WideCharToMultiByte(0, 0, f.cFileName, wcslen(f.cFileName), tmpstr, 20, NULL, NULL);
imgNames.push_back(tmpstr);
} while(FindNextFile(h, &f));
}
FindClose(h);
}