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

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

Ответы на вопрос(7)

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

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

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

  1. Download and install MinGW and add to the system PATH with c:/mingw/bin
  2. Download cmake from http://www.cmake.org and install it
  3. Download OpenCV2.4.5 Windows version
  4. Install/unzip Opencv to C:\OpenCV245PC\ (README,index.rst and CMakeLists.txt are there with all subfolders)
  5. Run CMake GUI tool, then
  6. Choose C:\OpenCV245PC\ as source
  7. Choose the destination, C:\OpenCV245MinGW\x86 where to build the binaries
  8. Press Configure button, choose MinGW Makefiles as the generator. There are some red highlights in the window, choose options as you need.
  9. Press the Configure button again. Configuring is now done.
  10. Press the Generate button.
  11. Exit the program when the generating is done.
  12. Exit the Cmake program.
  13. Run the command line mode (cmd.exe) and go to the destination directory C:\OpenCV245MinGW\x86
  14. Type "mingw32-make". You will see a progress of building binaries. If the command is not found, you must make sure that the system PATH is added with c:/mingw/bin. The build continues according the chosen options to a completion.
  15. In Windows system PATH (My Computer > Right button click > Properties > Advanced > Environment Variables > Path) add the destination's bin directory, C:\OpenCV245MinGW\x86\bin
  16. RESTART COMPUTER
  17. Go to the Eclipse CDT IDE, create a C++ program using the sample OpenCV code (You can use code from top of this topic).
  18. Go to Project > Properties > C/C++ Build > Settings > GCC C++ Compiler > Includes, and add the source OpenCV folder "C:\OpenCV245PC\build\include"
  19. Go to Project > Properties > C/C++ Build > Settings > MinGW C++ Linker > Libraries, and add to the Libraries (-l) ONE BY ONE (this could vary from project to project, you can add all of them if you like or some of them just the ones that you need for your project): 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. Add the built OpenCV library folder, "C:\OpenCV245MinGW\x86\lib" to Library search path (-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: / (или где бы вы ни находились, просто убедитесь, что затмение прочитало доступ.

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

  1. Download opencv-3.0 (beta), MinGW (command line tool);
  2. Add above respective bin folder to PATH var;
  3. Create an folder "release" (could be any name) into ;
  4. Into created folder, open prompt terminal and exec the below commands;
  5. Copy and Past this command

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

  6. Execute this command mingw32-make

  7. Execute this command mingw32-make install

DONE

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

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

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

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


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

  1. Getting my programs NOT to crash immediately.
  2. Making Netbeans play nice, and especially getting timehe debugger to work.

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

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

  1. Compiling and installing OpenCV.
  2. Configuring Netbeans.
  3. An example program.

The environment I use is: Windows 7, OpenCV 2.4.0, Netbeans 7 and MinGW 3.20 (with compiler gcc 4.6.2).

Assumptions: You already have MinGW and Netbeans installed on your system.

Compiling and installing OpenCV

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

Eventually I figured I have to compile the entire library on my own system in order for it to work properly.

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

Шаги:

  1. Download CMake and install it (in the installation wizard choose to add CMake to the system PATH).
  2. Download the 'release' version of OpenCV.
  3. Extract the archive to a directory of your choice. I will be using c:/opencv/.
  4. Launch CMake GUI.
    1. Browse for the source directory c:/opencv/.
    2. Choose where to build the binaries. I chose c:/opencv/release.
      CMake Configuration - 1
    3. Click 'Configure'. In the screen that opens choose the generator according to your compiler. In our case it's 'MinGW Makefiles'.
      CMake Configuration - 2
    4. Wait for everything to load, afterwards you will see this screen:
      CMake Configuration - 3
    5. Change the settings if you want, or leave the defaults. When you're done, press 'Configure' again. You should see 'Configuration done' at the log window, and the red background should disappear from all the cells.
      CMake Configuration - 4
    6. At this point CMake is ready to generate the makefile with which we will compile OpenCV with our compiler. Click 'Generate' and wait for the makefile to be generated. When the process is finished you should see 'Generating done'. From this point we will no longer need CMake.
  5. Open MinGW shell (The following steps can also be done from Windows' command prompt).
    1. Enter the directory c:/opencv/release/.
    2. Type mingw32-make and press enter. This should start the compilation process.
      MinGW Make
      MinGW Make - Compilation
    3. When the compilation is done OpenCV's binaries are ready to be used.
    4. For convenience, we should add the directory C:/opencv/release/bin to the system PATH. This will make sure our programs can find the needed DLL's to run.

Configuring Netbeans

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

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

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

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

Netbeans MinGW Configuration

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

Netbeans Project Include Path

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

Netbeans Libraries Path

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

Netbeans Include Libraries

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

Summary

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

  1. Compile OpenCV with your compiler.
  2. Add the directory which contains the DLL's to your system PATH (in our case: c:/opencv/release/bin).
  3. Add the directory which contains the header files to your project's include path (in our case: c:/opencv/build/include).
  4. Add the directory which contains the compiled libraries to you project's libraries path (in our case: c:/opencv/release/lib).
  5. Add the specific libraries you need to be linked with your project (for example: libopencv_core240.dll.a).

Example - "Hello World" with 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;
}

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

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

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

Решение Вопроса

1. Installing OpenCV 2.4.3

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

OpenCV self-extracting

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

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

открытоControl Panel & # X2192;System & # X2192;Advanced system settings & # X2192;Advanced Tab & # X2192;Environment variables...

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

Add OpenCV DLL directory to system path

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

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


2. Installing MinGW compiler suite

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

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

Select directory in MinGW installation

Выберите & quot; C Compiler & quot; и "Компилятор 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. Write a sample code

Откройте текстовый редактор, введите код ниже и сохраните файл в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. Where to go from here?

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

  1. Go to the samples dir → C:\opencv\samples\cpp.
  2. Read and compile some code.
  3. Write your own code.

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

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

Ваш ответ на вопрос