imread()无法正常工作

Tan*_*rma 2 c c++ opencv visual-studio

这是我的代码:

    #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;
         }
Run Code Online (Sandbox Code Playgroud)

我在使用时总是执行该if部件而不是显示空图像.
src.createimread()

Fuz*_*uzz 8

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

正如评论中所建议的那样,尝试指定文件的完整绝对路径.如果你在Windows上,请记住使用转义斜杠(例如c:\ a.bmp需要是"c:\ a.bmp")

要么

如果从Visual Studio执行应用程序,则可以将工作目录配置为位图的工作目录!(OpenCV cvLoadImage()不会在visual studio调试器中加载图像?)

您也可以尝试使用cvLoadImage代替imread的.如果cvLoadImage可以打开该文件,那么您可能会混合使用发行版和调试库,从而导致出现问题: