OpenVC 2.4.5, eclipse CDT Juno, ошибка MinGW 0xc0000005

В Windows 7 64 бит, процессор AMD, я установил OpenVC 2.4.5, с eclipse CDT Juno и MinGW, все до последнего обновления. Ранее eclipse CDT и MinGW скомпилировали более 100 исходных файлов без проблем. Они даже скомпилируют этот небольшой исходный файл OpenCV,

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/opencv.hpp>
#include <iostream>

using namespace std;

int main()
{
    IplImage* img1 = cvLoadImage("lenna.png");
    cvShowImage("MyWindow1", img1);

    cv::Mat img2;
    img2 = cv::imread("lenna.png", CV_LOAD_IMAGE_COLOR);

    cv::namedWindow("MyWindow2", CV_WINDOW_AUTOSIZE);
    cv::imshow("MyWindow2", img2);

    cvWaitKey(0);
    return 0;
}

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

"Приложение не смогло начать правильно (0xc0000005). Нажмите" ОК ". для закрытия приложения."

Что может быть неправильным и каково решение этой проблемы?

  • OpenCV (PreCompiled) распаковывается на "C:\OpenCV245PC\(README, index.rst и CMakeLists.txt есть со всеми подпапками)
  • Система Windows PATH установлена ​​на C:\OpenCV245PC\build\x86\mingw\bin
  • Компилятор Eclipse GCC С++, Include paths (-I) установлен в "C:\OpenCV245PC\build\include"
  • Eclipse MinGW С++ Linker, путь поиска библиотеки (-L) установлен в значение: "C:\OpenCV245PC\build\x86\mingw\lib"
  • Eclipse MinGW С++ Linker, Libraries (-l) установлены на:

opencv_calib3d245 opencv_contrib245 opencv_core245 opencv_features2d245 opencv_flann245 opencv_gpu245 opencv_highgui245 opencv_imgproc245 opencv_legacy245 opencv_ml245 opencv_nonfree245 opencv_objdetect245 opencv_photo245 opencv_stitching245 opencv_video245 opencv_videostab245

Ответы

Ответ 1

После многих испытаний и ошибок я решил следовать этому учебнику и скомпилировать свои собственные двоичные файлы, поскольку кажется, что слишком много людей жалуются, что прекомпилированные двоичные файлы НЕ работают для их. Eclipse CDT Juno уже установлен.

Моя процедура была следующей:

  • Загрузите и установите MinGW и добавьте в систему PATH с C:/MinGW/бен
  • Загрузите cmake из http://www.cmake.org и установите его
  • Загрузить OpenCV2.4.5 Версия для Windows
  • Установить/распаковать Opencv на C:\OpenCV245PC\(README, index.rst и CMakeLists.txt есть со всеми подпапками)
  • Запустите инструмент CMake GUI, затем
  • Выберите C:\OpenCV245PC\в качестве источника
  • Выберите пункт назначения, C:\OpenCV245MinGW\x86, где нужно создать двоичные файлы.
  • Нажмите кнопку "Настроить", в качестве генератора выберите MinGW Makefiles. В окне есть красные блики, выберите нужные параметры.
  • Нажмите кнопку Configure снова. Теперь выполняется настройка.
  • Нажмите кнопку "Создать".
  • Выход из программы при выполнении создания.
  • Выйдите из программы Cmake.
  • Запустите режим командной строки (cmd.exe) и перейдите к пункту назначения  каталог C:\OpenCV245MinGW\x86
  • Введите "mingw32-make". Вы увидите прогресс в строительстве  двоичные файлы. Если команда не найдена, вы должны убедиться, что  система PATH добавляется c:/mingw/bin. Сборка продолжается  в соответствии с выбранными вариантами завершения.
  • В системе Windows PATH (Мой компьютер) Щелкните правой кнопкой мыши >  Свойствa > Дополнительно > Переменные среды > Путь) добавьте  каталог места назначения, C:\OpenCV245MinGW\x86\bin
  • RESTART COMPUTER
  • Перейдите в Eclipse CDT IDE, создайте программу на С++, используя образец кода OpenCV (вы можете использовать код сверху этого раздела).
  • Перейдите в Project > Properties > C/С++ Build > Settings > GCC С++ Compiler > Включает и добавляет исходная папка OpenCV "C:\OpenCV245PC\build\include"
  • Перейдите в Project > Properties > C/С++ Build > Settings > MinGW С++ Linker > Библиотеки и добавьте в Библиотеки (-l) ONE BY ONE (это может варьироваться от проекта к проекту, вы можете добавить их все, если вам нравится или некоторые из них только те, которые вам нужны для вашего проекта): opencv_calib3d245 opencv_contrib245 opencv_core245 opencv_features2d245 opencv_flann245 opencv_gpu245 opencv_highgui245 opencv_imgproc245 opencv_legacy245 opencv_ml245 opencv_nonfree245 opencv_objdetect245 opencv_photo245 opencv_stitching245 opencv_video245 opencv_videostab245
  • Добавьте встроенную папку библиотеки OpenCV, "C:\OpenCV245MinGW\x86\lib" в путь поиска библиотеки (-L).

Вы можете использовать этот код для проверки своей установки:

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/opencv.hpp>
#include <iostream>

using namespace std;
using namespace cv;

int main()
{

Mat img = imread("c:/lenna.png", CV_LOAD_IMAGE_COLOR);

namedWindow("MyWindow", CV_WINDOW_AUTOSIZE);
imshow("MyWindow", img);

waitKey(0);
return 0;
}

Не забудьте поставить изображение на C:/(или где бы вы ни находились, просто убедитесь, что затмение имеет доступ к чтению.

Ответ 2

Можете ли вы попробовать этот код,

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/opencv.hpp>
#include <iostream>

using namespace std;
using namespace cv;

int main()
{

Mat img = imread("lenna.png", CV_LOAD_IMAGE_COLOR);

namedWindow("MyWindow", CV_WINDOW_AUTOSIZE);
imshow("MyWindow", img);

waitKey(0);
return 0;
}

похоже, что вы не создаете окно для img1 и не назначаете imread для img2.