загрузить изображение с помощью OpenCV Mat Stack Overflow

Я хочу загрузить изображение с помощью Mat в openCV

Мой код:

Mat I = imread("C:/images/apple.jpg", 0);
namedWindow( "Display window", CV_WINDOW_AUTOSIZE );// Create a window for display.
imshow( "Display window", I );

Я получаю следующую ошибку в окне сообщения:

Unhandled exception at 0x70270149 in matching.exe: 0xC0000005: Access violation
reading location 0xcccccccc.

Обратите внимание, что я в том числе:

#include <cv.h>
#include <cxcore.h>
#include <highgui.h>
#include <iostream>
#include <math.h>

Пожалуйста помоги. Спасибо.

3

Решение

Я разговаривали об этом так много раз до этого, я думаю, бессмысленно делать это снова, но код защиты: если вызов метода / функции может потерпеть неудачу, убедитесь, что вы знаете, когда это произойдет:

Mat I = imread("C:\\images\\apple.jpg", 0);
if (I.empty())
{
std::cout << "!!! Failed imread(): image not found" << std::endl;
// don't let the execution continue, else imshow() will crash.
}

namedWindow( "Display window", CV_WINDOW_AUTOSIZE );// Create a window for display.
imshow( "Display window", I );
waitKey(0);

Обратите внимание, что путь Windows использует обратную косую черту \ вместо стандартного / используется в * nix системах. Вы должны экранировать обратную косую черту при передаче имени файла: C:\\images\\apple.jpg

призвание waitKey() обязательно, если вы используете imshow(),

РЕДАКТИРОВАТЬ:

Если это cv::imread() это исключение единственное решение, которое я знаю для работы, это загрузка исходных текстов OpenCV и его сборка на машине, так как переустановка OpenCV не решает проблему.

4

Другие решения

Я не знаю, почему у вас нет проблем с включением, потому что обычно это .hpp файл, так что вы должны сделать

#include <opencv2/highgui/highgui.hpp>
#include <opencv2\core\eigen.hpp>

Но ваш код кажется хорошим, но добавьте cv::waitKey(0); после вашего имшоу.

1

Вы проверили, что я существует после imread? Возможно, чтение файла не удалось

После прочтения файла сделайте if ( I.empty() ) проверить, не удалось ли

1

Используете ли вы Visual Studio 2010 для запуска кода OpenCV? Если это так, попробуйте скомпилировать в режиме выпуска.

0
По вопросам рекламы [email protected]