Когда я запускаю предоставленный код, imshow () открывает окно, но это просто пустое серое окно. Код выполняется успешно (не вызывает проверку! Image.data.) Функция imwrite () успешно записывает изображение в файл, поэтому я не думаю, что это проблема с чтением изображения.
Я также попытался сначала открыть именованное окно, а затем вызвать imshow для этого окна, но это также не помогло.
Кажется, есть несколько других людей, имеющих эту проблему на этом сайте. Я просмотрел ответы и попробовал решения, но ничего не помогло. Также я не смог найти никого использующего opencv 4.0 с c ++.
#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <iostream>
#include <string>
using namespace std;
using namespace cv;
int main() {
Mat image;
image = imread("./887.jpg");
if (!image.data)
{
cout << "Could not open or find the image" << std::endl;
return -1;
}
imwrite("test.jpg", image);
waitKey(1);
imshow("Display window", image); // Show our image inside it.
waitKey(0);
return 0;
}
Я ожидаю, что изображение будет отображаться в окне с заголовком «Окно дисплея», оно отображается, но это просто пустое серое поле.