关于作者主页给出的代码,无法读取连续图像文件,这里做出修改,运行通过。
问题出现在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); }