openCV 3.1 imread.empty() - 如果相对路径总是空的,如果不是

时间:2016-10-02 20:36:07

标签: c++ visual-studio opencv imread

我最近开始使用Visual Studio 2015来使用OpenCV(由教程指导),但我无法使用它。所以问题是,如果我相对指定文件的位置(只使用“imageName.extens”作为参数)并从VS运行程序,image.empty()始终是true。我试过* .jpg,* .bmp,* .png - 仍然是一样的。

当我通过将其保留在String中来精确指定位置时,它会显示一个窗口然后崩溃。当我通过cmd运行应用程序时也是如此。 我已经读过人们在混合调试和重新编写库时遇到image.empty()这个问题,但事实并非如此 - 我已经在appriopriate属性表中指定了用于调试和发布的库。

我对它没有更多的想法,我已经与它斗争了好几天,我真的很感激一些帮助。我甚至从2.4升级到3.1,认为这可能是一个问题。它不是。非常感谢你,很多。

以下是代码:

#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <iostream>
#include <string>

using namespace cv;
using namespace std;

int main(int argc, char** argv)
{
if (argc != 2)
{
    cout << " Usage: display_image ImageToLoadAndDisplay" << endl;
    return -1;
}
else if (argc > 1) {
    cout << argv[1] << endl;
}

Mat image;
image = imread(argv[1], CV_LOAD_IMAGE_COLOR); // Read the file  IMREAD_COLOR

if (image.empty()) // Check for invalid input
{
    cout << "Could not open or find the image" << std::endl;
    return -1;
}

namedWindow("Display window", WINDOW_NORMAL); // Create a window for display.
imshow("Display window", image); // Show our image inside it.

//waitKey(0); // Wait for a keystroke in the window - doesnt work
getchar();
getchar();
return 0;
}

0 个答案:

没有答案