gpt4 book ai didi

c++ - 为什么 imread() 总是返回空数据?

转载 作者:太空狗 更新时间:2023-10-29 23:30:19 24 4
gpt4 key购买 nike

这是我的代码:

    #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() 时,它显示一个空图像。

最佳答案

要调试您的问题,您应该尝试确认图像路径是否正确。

按照评论中的建议,尝试指定文件的完整绝对路径。如果您在 Windows 上,请记住使用转义斜杠(例如 c:\a.bmp 需要为“c:\a.bmp”)

如果您从 Visual Studio 执行应用程序,那么您也可以将工作目录配置为位图的目录! ( OpenCV cvLoadImage() does not load images in visual studio debugger? )

您也可以尝试使用 cvLoadImage而不是imread。如果 cvLoadImage 可以打开该文件,那么您可能混合使用了发布和调试库,从而导致出现问题:

关于c++ - 为什么 imread() 总是返回空数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25965358/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com