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