我最近开始使用 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;
}