Функция OpenCV4 Imshow открывает пустое серое поле - PullRequest
2 голосов
/ 30 мая 2019

Когда я запускаю предоставленный код, 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;
}

Я ожидаю, что изображение будет отображаться в окне с заголовком «Окно дисплея», оно отображается, но это просто пустое серое поле.

Ответы [ 2 ]

0 голосов
/ 30 мая 2019

Хорошо, извините за это.Изображение, которое я пытался отобразить, очень большое, и единственной видимой частью был угол изображения, который был серым.Как только я уменьшил изображение, оно выглядело просто отлично.Извините за трату времени всех.

0 голосов
/ 30 мая 2019

Укажите абсолютный путь к изображению и проверьте, работает ли он правильно.

Если вы запускаете приложение из Visual Studio, вам нужно указать текущий рабочий каталог, который будет таким же, как местоположение изображения.

Вы также можете проверить с помощью ifstream, существует ли файл с

inputStream.open("887.jpg");
if (inputStream.fail()) {
    // bad file path
}

, просто чтобы убедиться, что текущий рабочий каталог установлен правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...