2013-11-22

Дружим Eclipse и OpenCV для C++

Окружение: ОС - Fedora 19 x86_64, Eclipse Platform Version: 4.3.1 Build id: 5fc19

Итак, для меня стало проблемой, как научить Eclipse понимать библиотеку OpenCV. Так что-бы работал IntelleSence.

Дело было так. С горем по полам я собирал проект, он компелировался но у меня постоянно были ошибки, типа [http://stackoverflow.com/questions/10803685/eclipse-cdt-symbol-cout-could-not-be-resolved]. Сразу оговорюсь, что не нужно делать сейчас то, что представлено в этой сслыке (попробуйте это, если вам не поможет мой метод).

Итак, к делу. Для начала рекомендую ознакомиться с [http://docs.opencv.org/doc/tutorials/introduction/linux_eclipse/linux_eclipse.html]. Но опять таки только для чтения. Это поможет вам ориентироваться в том, что я буду писать ниже.

Я предполагаю, что у читателя операционная система Линукс, и пути могут немного отличаться от тех, что буду давать я. Но опытный пользователь, я думаю, разберестя куда нужно бдует перйти.

Также я предполагаю, что у читателя уже установлены библиотеки OpenCV (лично я устанавливал через yumex).

Первое. Если вы еще не запустили Делаем новый проект: File -> New -> C++ Project.
Poject name: "firstopencv". Хотя вы можете выбрать другое. Но в рамках статьи рекомендую остановиться на этом.
Project type: Executable -> Empty Project;
Toolchain: Linux GCC. Жмем Finish.

Второе. На вкладке Project Explorer выбераем дирректорию firstopencv. Жмем правой кнопкой New -> Folder, называем ее "src".
На дирректории "src" правой нопкой мишы New -> Source File (C++);
File name: firstopencv.cpp

Третье. Ставим курсок на только что созданный файл. Идем Project -> Properties.
C\C++ Build -> Tools Settings -> GCC C++ Compiler
-> Command line pattern в конец строки добавляем следующу строку `pkg-config --cflags --libs opencv` . Обращаю ваше внимание на используемые ковычки. Они должны быить именно такими (находятся на русской букве Ё).
GCC C++ Linker Command line pattern добавляем следующу строку `pkg-config --cflags --libs opencv`

Четвертое. Учим Eclipse анализировать исходные коды. В том же Project Properties идем в Preprocessor Includes -> Providers. Убераем галку с CDT GCC Built-in Compiler Settings и устанавливаем на CDT GCC Built-in Compiler Settings MinGW.
Забыл сказать C\C++ Development Tools у вас уже должны быть установлены ;)
Жмем ОК.

Пятое. Проверка.
Для наглядности, я использовал этот текст программы

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

#include <iostream>

int main(int argc, char** argv)
{
    cv::Mat image;
    image = cv::imread(argv[1], 1);

    if(argc != 2 || !image.data)
    {
        std::cout << "No image data \n";
        return -1;
    }

    cv::namedWindow("Display Image", CV_WINDOW_AUTOSIZE);
    cv::imshow("Display Image", image);

    cv::waitKey(0);

    return 0;
}

После компиляции, запустив приложение с путем к файлу с изображением в качестве первого параметра вы увидите изображение на экране.