在使用CFileDialog选择文件时,返回结果为CString,此时如果需要使用cv::imread打开图像
则需要将字符串转换为cv::String,代码如下
CString filename;//保存路径
CFileDialog opendlg(TRUE, _T("*"), _T("*.*"), OFN_OVERWRITEPROMPT, _T("所有文件(*.*;)|*.*||"), NULL); if (opendlg.DoModal() != IDOK) { return; } filename = opendlg.GetPathName(); Mat im0 = imread(filename.GetBuffer());
上述代码中的核心代码为 filename.GetBuffer() 。