關於作者主頁給出的代碼,無法讀取連續圖像文件,這裏做出修改,運行通過。
問題出現在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);
}