0

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

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

我对它没有更多的想法,我已经为此奋斗了好几天,我真的很感激一些帮助。我什至从 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;
}
4

0 回答 0