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

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

Ответы

Ответ 1

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

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

OpenCV self-extracting

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

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

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

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

Add OpenCV DLL directory to system path

В разделе "Системные переменные",
выберите Путь (1), нажмите Изменить... (2), добавьте C:\opencv\build\x86\mingw\bin (3), затем нажмите Хорошо.

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


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

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

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

Select directory in MinGW installation

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

Select components to be installed

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

Add MinGW bin directory to system path

Чтобы проверить успешность установки 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

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

The result of your first OpenCV program


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

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

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

Ответ 2

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

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

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

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


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

  • Как немедленно отключить мои программы.
  • Создание Netbeans играет хорошо, и особенно получение отладчика времени для работы.

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

В этом уроке представлены три части:

  • Компиляция и установка OpenCV.
  • Настройка NetBeans.
  • Пример программы.

Используемая среда: 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) - это инструмент, который генерирует специальные файлы к вашему компилятору и платформе. Мы будем использовать CMake для того, чтобы создания и компиляции, создания "makefile", а затем скомпилировать библиотека.

Шаги:

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

Настройка Netbeans

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

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

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

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

Netbeans MinGW Configuration

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

Netbeans Project Include Path

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

Netbeans Libraries Path

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

Netbeans Include Libraries

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

Резюме

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

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

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

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

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;
}
#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;
}

Ответ 3

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

После многих испытаний и ошибок я решил следовать этот учебник и скомпилировать мои собственные двоичные файлы, поскольку кажется, что слишком много людей жалуются, что предварительно скомпилированные двоичные файлы НЕ работают для них. 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:/(или где бы вы ни находились, просто убедитесь, что затмение имеет доступ к чтению.

Ответ 4

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

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

Ответ 5

В Windows 64bits он работает:

  • Загрузите opencv-3.0 (beta), MinGW (инструмент командной строки);
  • Добавьте выше соответствующую папку bin в PATH var;
  • Создайте папку "release" (может быть любое имя) в;
  • В созданную папку, откройте приглашение терминала и выполните следующие команды:
  • Скопировать и пропустить эту команду

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

  • Выполните эту команду mingw32-make

  • Выполните эту команду mingw32-make install

DONE

Ответ 7

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