Начало работы с OpenCV 2.4 и MinGW в Windows 7

Как мне установить OpenCV 2.4 и скомпилировать мой код с MinGW?

7 ответов

Решение

1. Установка OpenCV 2.4.3

Во-первых, получите OpenCV 2.4.3 с sourceforge.net. Это самораспаковывающийся файл, поэтому просто дважды щелкните файл, чтобы начать установку. Установите его в каталог, скажем C:\,

OpenCV самораспаковывающийся

Подождите, пока все файлы будут извлечены. Это создаст новый каталог C:\opencv который содержит заголовочные файлы OpenCV, библиотеки, примеры кода и т. д.

Теперь вам нужно добавить C:\opencv\build\x86\mingw\bin каталог вашей системы PATH. Этот каталог содержит библиотеки OpenCV DLL, необходимые для запуска вашего кода.

Откройте Панель управленияСистемаДополнительные параметры системыВкладка "Дополнительно"Переменные среды...

Вы увидите окно, как показано ниже:

Добавить каталог DLL OpenCV в системный путь

В разделе Системные переменные
выберите Path (1), нажмите Edit... (2), добавьте C:\opencv\build\x86\mingw\bin (3) затем нажмите Ok.

Это завершит установку OpenCV 2.4.3 на ваш компьютер.


2. Установка MinGW компилятора

Я настоятельно рекомендую вам использовать gcc (GNU Compiler Collection) для компиляции вашего кода. gcc - это набор компиляторов, широко доступный в системах Linux, а MinGW - собственный порт для Windows.

Загрузите установщик MinGW с Sourceforge.net и дважды щелкните, чтобы начать установку. Просто следуйте указаниям мастера и выберите каталог для установки, скажем C:\MinGW,

Выберите каталог в установке MinGW

Выберите "C Compiler" и "C++ Compiler" для установки.

Выберите компоненты для установки

Установщик загрузит некоторые пакеты из Интернета, поэтому вам придется подождать некоторое время. После завершения установки добавьте C:\MinGW\bin в системный путь, используя шаги, описанные выше.

Добавить каталог bin MinGW в системный путь

Чтобы проверить, успешно ли установлена ​​MinGW, откройте окно командной строки и введите: gcc, Если все в порядке, отобразится это сообщение:

gcc: fatal error: no input files
compilation terminated

На этом установка MinGW завершена, сейчас самое время написать "Hello, World!" программа.


3. Напишите пример кода

Откройте текстовый редактор, введите код ниже и сохраните файл в loadimg.cpp,

#include "opencv2/highgui/highgui.hpp"
#include <iostream>

using namespace cv;
using namespace std;

int main(int argc, char** argv)
{
  Mat im = imread(argc == 2 ? argv[1] : "lena.jpg", 1);
  if (im.empty())
  {
    cout << "Cannot open image!" << endl;
    return -1;
  }

  imshow("image", im);
  waitKey(0);

  return 0;
}

Положил lena.jpg или любое изображение, которое вам нравится, в том же каталоге, что и файл выше. Откройте окно командной строки и скомпилируйте приведенный выше код, набрав:

g++ -I"C:\opencv\build\include" -L"C:\opencv\build\x86\mingw\lib" loadimg.cpp -lopencv_core243 -lopencv_highgui243 -o loadimg

Если он успешно скомпилируется, он создаст исполняемый файл с именем loadimg.exe,

Тип:

loadimg

Выполнить программу. Результат:

Результат вашей первой программы OpenCV


4. Куда пойти отсюда?

Теперь, когда ваша среда OpenCV готова, что дальше?

  1. Перейти к каталогу образцов → C:\opencv\samples\cpp,
  2. Прочитайте и скомпилируйте некоторый код.
  3. Напишите свой собственный код.

Инструкции в ответе @bsdnoobz действительно полезны, но OpenCV не работает на моей системе.

По-видимому, мне нужно было скомпилировать библиотеку самостоятельно, чтобы заставить ее работать, а не рассчитывать на предварительно созданные двоичные файлы (что приводило к сбою моих программ, возможно, из-за несовместимости с моей системой).

Я заставил его работать и написал подробное руководство по компиляции и установке OpenCV и настройке Netbeans для работы с ним.

Для полноты он также приведен ниже.


Когда я впервые начал использовать OpenCV, я столкнулся с двумя основными трудностями:

  1. Получение моих программ НЕ вылетает сразу.
  2. Заставить Netbeans играть хорошо, и особенно заставить его работать.

Я прочитал много учебных пособий и статей с практическими рекомендациями, но ни одна не была действительно всесторонней и полной. В конце концов мне удалось настроить среду; и через некоторое время использования этой (замечательной) библиотеки я решил написать этот небольшой учебник, который, надеюсь, поможет другим.

Три части этого урока:

  1. Компиляция и установка OpenCV.
  2. Конфигурирование Netbeans.
  3. Пример программы.

Я использую следующие среды: Windows 7, OpenCV 2.4.0, Netbeans 7 и MinGW 3.20 (с компилятором gcc 4.6.2).

Предположения: в вашей системе уже установлены MinGW и Netbeans.

Компиляция и установка OpenCV

При загрузке OpenCV архив фактически уже содержит предварительно собранные двоичные файлы (скомпилированные библиотеки и библиотеки DLL) в папке "build". Сначала я попытался использовать эти двоичные файлы, предполагая, что кто-то уже выполнил для меня задачу компиляции. Это не сработало.

В конце концов я решил, что мне нужно собрать всю библиотеку в моей собственной системе, чтобы она работала правильно.

К счастью, благодаря CMake процесс компиляции довольно прост. CMake (расшифровывается как Cross-platform Make) - это инструмент, который генерирует make-файлы, специфичные для вашего компилятора и платформы. Мы будем использовать CMake для того, чтобы настроить наши параметры сборки и компиляции, сгенерировать "make-файл", а затем скомпилировать библиотеку.

Шаги:

  1. Скачайте CMake и установите его (в мастере установки выберите добавление CMake в системный PATH).
  2. Загрузите "релизную" версию OpenCV.
  3. Распакуйте архив в каталог по вашему выбору. Я буду использовать c:/opencv/,
  4. Запустите CMake GUI.
    1. Найдите исходный каталог c:/opencv/,
    2. Выберите, где создавать двоичные файлы. Я выбрал c:/opencv/release,
      Конфигурация CMake - 1
    3. Нажмите "Настроить". На открывшемся экране выберите генератор в соответствии с вашим компилятором. В нашем случае это "MakeGiles MinGW".
      Конфигурация CMake - 2
    4. Подождите, пока все загрузится, после этого вы увидите этот экран:
      Конфигурация CMake - 3
    5. Измените настройки, если хотите, или оставьте значения по умолчанию. Когда вы закончите, нажмите "Настроить" снова. Вы должны увидеть "Конфигурация выполнена" в окне журнала, и красный фон должен исчезнуть из всех ячеек.
      Конфигурация CMake - 4
    6. На этом этапе CMake готов сгенерировать make-файл, с помощью которого мы скомпилируем OpenCV с нашим компилятором. Нажмите "Создать" и подождите, пока будет сгенерирован make-файл. Когда процесс завершится, вы должны увидеть "Генерация завершена". С этого момента нам больше не нужен CMake.
  5. Откройте оболочку MinGW (Следующие шаги также можно выполнить из командной строки Windows).
    1. Войдите в каталог c:/opencv/release/,
    2. Тип mingw32-make и нажмите ввод. Это должно начать процесс компиляции.
      MinGW Make
      MinGW Make - Компиляция
    3. Когда компиляция завершена, двоичные файлы OpenCV готовы к использованию.
    4. Для удобства добавим каталог C:/opencv/release/bin в систему PATH. Это позволит нашим программам найти необходимые DLL для запуска.

Конфигурирование Netbeans

NetBeans следует указать, где найти заголовочные файлы и скомпилированные библиотеки (которые были созданы в предыдущем разделе).

Заголовочные файлы необходимы по двум причинам: для компиляции и для завершения кода. Скомпилированные библиотеки необходимы для стадии компоновки.

Примечание. Чтобы отладка работала, должны быть доступны библиотеки OpenCV DLL, поэтому мы добавили каталог, содержащий их, в системную переменную PATH (предыдущий раздел, шаг 5.4).

Во-первых, вы должны убедиться, что Netbeans правильно настроен для работы с MinGW. Пожалуйста, посмотрите скриншот ниже и убедитесь, что ваши настройки верны (с учетом изменений путей в соответствии с вашей собственной установкой). Также обратите внимание, что make Команда должна быть от msys, а не от Cygwin.

Конфигурация NetBeans MinGW

Далее, для каждого нового проекта, который вы создаете в Netbeans, вы должны определить путь включения (каталог, содержащий файлы заголовков), путь к библиотекам и конкретные библиотеки, которые вы собираетесь использовать. Щелкните правой кнопкой мыши имя проекта на панели "проекты" и выберите "Свойства". Добавьте путь включения (измените путь в соответствии с вашей установкой):

Проект Netbeans включает путь

Добавьте путь к библиотекам:

Путь к библиотекам Netbeans

Добавьте конкретные библиотеки, которые вы собираетесь использовать. Эти библиотеки будут динамически связаны с вашей программой на этапе компоновки. Обычно вам понадобится core библиотека плюс любые другие библиотеки в соответствии с конкретными потребностями вашей программы.

NetBeans включает библиотеки

Вот и все, теперь вы готовы использовать OpenCV!

Резюме

Вот общие шаги, которые необходимо выполнить, чтобы установить OpenCV и использовать его с Netbeans:

  1. Скомпилируйте OpenCV с вашим компилятором.
  2. Добавьте каталог, который содержит библиотеки DLL, к вашей системной переменной PATH (в нашем случае: c:/opencv/release/bin).
  3. Добавьте каталог, содержащий файлы заголовков, к пути включения вашего проекта (в нашем случае: c:/opencv/build/include).
  4. Добавьте каталог, содержащий скомпилированные библиотеки, в путь к библиотекам вашего проекта (в нашем случае: c:/opencv/release/lib).
  5. Добавьте конкретные библиотеки, которые вам нужно связать с вашим проектом (например: libopencv_core240.dll.a).

Пример - "Hello World" с OpenCV

Вот небольшой пример программы, которая рисует текст "Hello World:)" в окне GUI. Вы можете использовать его, чтобы проверить, что ваша установка работает правильно. После компиляции и запуска программы вы должны увидеть следующее окно:

OpenCV Hello World

#include "opencv2/opencv.hpp"
#include "opencv2/highgui/highgui.hpp"

using namespace cv;

int main(int argc, char** argv) {
    //create a gui window:
    namedWindow("Output",1);

    //initialize a 120X350 matrix of black pixels:
    Mat output = Mat::zeros( 120, 350, CV_8UC3 );

    //write text on the matrix:
    putText(output,
            "Hello World :)",
            cvPoint(15,70),
            FONT_HERSHEY_PLAIN,
            3,
            cvScalar(0,255,0),
            4);

    //display the image:
    imshow("Output", output);

    //wait for the user to press any key:
    waitKey(0);

    return 0;
}

Это не работает для меня. Я провел несколько дней, следя за каждым учебником, который нашел в сети, и, наконец, я собрал свои собственные двоичные файлы. Здесь описано все: OpenVC 2.4.5, Eclipse CDT Juno, ошибка MinGW 0xc0000005

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

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

  1. Загрузите и установите MinGW и добавьте в систему PATH с помощью c:/mingw/bin
  2. Загрузите cmake с http://www.cmake.org/ и установите его
  3. Скачать версию OpenCV2.4.5 для Windows
  4. Установите / разархивируйте Opencv в C:\OpenCV245PC\ (README,index.rst и CMakeLists.txt есть со всеми подпапками)
  5. Запустите инструмент CMake GUI, затем
  6. Выберите C: \ OpenCV245PC \ в качестве источника
  7. Выберите место назначения, C:\OpenCV245MinGW\x86, где собрать двоичные файлы
  8. Нажмите кнопку Configure, выберите MinGW Makefiles в качестве генератора. В окне есть несколько красных бликов, выберите нужные параметры.
  9. Нажмите кнопку Configure еще раз. Настройка сейчас завершена.
  10. Нажмите кнопку "Создать".
  11. Выйдите из программы, когда генерация будет завершена.
  12. Выйдите из программы Cmake.
  13. Запустите режим командной строки (cmd.exe) и перейдите в каталог назначения C: \ OpenCV245MinGW \ x86
  14. Типа "mingw32-make". Вы увидите прогресс построения двоичных файлов. Если команда не найдена, необходимо убедиться, что системный PATH добавлен с помощью c:/mingw/bin. Сборка продолжается в соответствии с выбранными вариантами до завершения.
  15. В системе Windows PATH ("Мой компьютер"> щелкните правой кнопкой мыши> "Свойства"> "Дополнительно"> "Переменные среды"> "Путь") добавьте каталог bin целевого каталога C:\OpenCV245MinGW\x86\bin
  16. ПЕРЕЗАПУСТИТЬ КОМПЬЮТЕР
  17. Перейдите в Eclipse CDT IDE, создайте программу на C++, используя пример кода OpenCV (вы можете использовать код в верхней части этой темы).
  18. Перейдите в Проект> Свойства> Сборка C/C++> Настройки> Компилятор GCC C++> Включает и добавьте исходную папку OpenCV "C:\OpenCV245PC\build\include"
  19. Перейдите в Проект> Свойства> Сборка C/C++> Настройки> MinGW C++ Linker > Библиотеки и добавьте в библиотеки (-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
  20. Добавьте встроенную папку библиотеки 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:/ (или где бы вы ни находились, просто убедитесь, что затмение уже прочитано.

Если вы установили opencv 2.4.2, вам нужно изменить -lopencv_core240 в -lopencv_core242

Я сделал ту же ошибку.

На Windows 64bit это работает:

  1. Загрузить opencv-3.0 (бета), MinGW (инструмент командной строки);
  2. Добавьте соответствующую папку bin в PATH var;
  3. Создать папку "release" (может быть любым именем) в;
  4. В созданную папку откройте терминал подсказки и выполните приведенные ниже команды;
  5. Скопируйте и вставьте эту команду

    cmake -G "MinGW Makefiles" -D CMAKE_CXX_COMPILER=mingw32-g++.exe -D WITH_IPP=OFF MAKE_MAKE_PROGRAM=mingw32-make.exe ..\

  6. Выполнить эту команду mingw32-make

  7. Выполнить эту команду mingw32-make install

СДЕЛАННЫЙ

Я использовал инструкции в этом шаг за шагом, и это сработало.

http://nenadbulatovic.blogspot.co.il/2013/07/configuring-opencv-245-eclipse-cdt-juno.html

Как отмечает @Nenad Bulatovic, нужно быть осторожным при добавлении библиотек (19-й шаг). не следует добавлять пробелы при добавлении каждой библиотеки построчно. в противном случае Mingw выходит из строя.

Другие вопросы по тегам