Недавно я начал использовать Visual Studio 2015 для работы с OpenCV (руководствуясь учебным руководством), но я не могу заставить это работать. Таким образом, проблема заключается в том, что если я укажу расположение файла относительно (просто используйте «imageName.extens» в качестве аргумента) и запустите программу из VS, image.empty()
всегда true
, Я пробовал * .jpg, * .bmp, * .png — все то же самое.
Когда я точно указываю местоположение, сохраняя его в строке, оно показывает окно, а затем вылетает. То же самое происходит, когда я запускаю приложение через 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;
}
Задача ещё не решена.
Других решений пока нет …