这是我的代码:
#include<opencv\cv.h>
#include<opencv\highgui.h>
using namespace cv;
using namespace std;
int main()
{
Mat src;
//src.create(200,500,CV_8UC3);
src = imread( "a.bmp", 1 );
namedWindow( "Display window", WINDOW_AUTOSIZE );
if(!src.data)
cout<<"Could not open or find the image" << std::endl ;
else
imshow( "Display window", src);
waitKey(0);
return 0;
}
它总是在执行 if
部分
当我使用 src.create
而不是 imread()
它显示一个空图像。
原文由 Tanmay Verma 发布,翻译遵循 CC BY-SA 4.0 许可协议
要调试您的问题,您应该尝试确认图像路径是否正确。
正如评论中所建议的,尝试指定文件的完整绝对路径。如果您在 Windows 上,请记住使用转义斜线(例如 c:\a.bmp 需要为“c:\a.bmp”)
或者
如果您是从 Visual Studio 执行应用程序,那么您也可以将工作目录配置为位图的目录! ( OpenCV cvLoadImage() 不在 Visual Studio 调试器中加载图像? )
您也可以尝试使用 cvLoadImage 代替 imread。如果 cvLoadImage 可以打开文件,那么您可能混合了发布和调试库,从而导致您出现以下问题: