OpenCV 使用的是Ansi字符集std::string 8bit string
Windows中的CString是Unicode字符集,wide string
MFC项目中,可以选择使用不同的字符集
如果使用多字符集字符集,则可以如下调用
CString fileName;
CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT);
if(dlg.DoModal() == IDOK)
{
fileName= dlg.GetPathName();
const char* fpath = CStringA(fileName);
m_BGRimg=imread(fpath);
}
如果使用Unicode字符集
需要
#include <atlconv.h>
然后
CString fileName;
CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT);
if(dlg.DoModal() == IDOK)
{
fileName= dlg.GetPathName();
USES_CONVERSION;
string fileNameBK(W2A(fileName));
m_srcBGRImg=imread(fileNameBK);
}