OpenCV 2 Computer Vision Application Programming Cookbook / Изучаем OpenCV: Играем с изображениями

← →
Английский оригинал Перевод на русский

Сожалеем, но текст оригинала доступен только зарегистрированным пользователям.

Играем с изображениями

oneassasin 03.07.13 в 12:49

0

- Установить OpenCV библиотеку
- Создать OpenCV проект совместно с Micosoft Visual C++
- Создать OpenCV проект совместно с Qt
- Загрузить, отобразить, и сохранить изображение
- Создать GUI приложение, используя Qt

oneassasin 03.07.13 в 12:50

0

Введение

oneassasin 03.07.13 в 12:51

0

Эта часть обучит базовым элементам в OpenCV и покажет, как решать самые простые задачи: чтение, отображение и сохранение изображений. Перед тем как начинать работать с OpenCV, Вам нужно установить эту библиотеку. Это простой процесс, который объясняется в первом части этой главы.

oneassasin 03.07.13 в 12:51

0

Так же нужна хорошая середа разработки (IDE) для запуска Ваших OpenCV приложений. Мы предлагаем две альтернативы. Первый вариант это использовать Microsoft Visual Studio. Вторым же вариантом является использование инструмента с открытым исходным кодом для разработки С++ проектов, который называется Qt. Здесь будет описано, что нужно будет сделать для того, что бы начать программировать с помощью OpenCV только для двух платформ, но Вы можете использовать любую другую С++ IDE. На самом деле, в этом учебнике, задачи поставлены таким образом, что решение не зависит от определенной операционной системы или среды разработки, так что Вы можете использовать любую IDE. Однако знайте, что Вам нужно использовать скомпилированные версии библиотеки OpenCV подходящей Вашей операционной системе и компилятору. Если Вы видите странное поведение, или если Ваше приложение крошится без видимых причин, это возможно следствие несовместимости.

oneassasin 03.07.13 в 12:51

0

Установка библиотеки OpenCV

oneassasin 03.07.13 в 12:51

0

OpenCV - это библиотека с открытым исходным кодом для разработки приложений, использующих компьютерное зрение. Библиотека может использоваться в научных и коммерческих приложениях под лицензией BSD, которая позволяет свободное использование, распространение и редактирование его. Эта инструкция покажет Вам, как установить библиотеку на Ваш компьютер.

oneassasin 03.07.13 в 12:51

0

Давайте приступим

oneassasin 03.07.13 в 12:52

0

Когда вы перейдете на официальный сайт OpenCV по адресу http://opencv.willowgarage.com/wiki/, Вы сможете найти последнюю версию библиотеки, онлайн документацию, и много полезных ресурсов о OpenCV.

oneassasin 03.07.13 в 12:52

0

Как это сделать…

oneassasin 03.07.13 в 12:52

0

С главной страницы сайта OpenCV, перейдите на страницу скачивания библиотеки и выберите платформу, которая вам нужна (Linux/Unix/Mac или Windows). Здесь Вы сможете скачать пакет OpenCV. Как только вы разархивируете библиотеку в папку с названием версии библиотеки (например, OpenCV2.2), Вы сможете увидеть большое количество папок, среди которых будет папка DOC, в которой будет документация OpenCV. Еще можно найти папку include, которая включает в себя все файлы, которые нужно подключить к проекту, и папку modules, что хранит в себе исходные коды. Так же содержит папку samples, которая содержит много небольших примеров, помогающие разобраться с библиотекой.

oneassasin 03.07.13 в 12:52

0

Если вы являетесь пользователем Windows и используете Visual Studio, Вы так же имеете возможность скачать установочный пакет, соответствующий вашей IDE и вашей операционной системе. Запуск этой установочной программы не только установит исходную библиотеку, но и скопирует все скомпилированные файлы, необходимые для создания Ваших приложений. В этом случае Вы готовы к тому, что бы начать использовать OpenCV. Если же нет, то Вам необходимо сделать несколько простых шагов.

oneassasin 03.07.13 в 12:52

0

Для того, что бы использовать OpenCV в другой среде разработки, Вам необходимо скомпилировать библиотеку используя компилятор С++. Для компиляции OpenCV не обходимо использовать инструмент CMake, который можно найти по адресу http://www.cmake.org/. CMake – это инструмент с открытым исходным кодом, разработанный для управления процессами компиляции программных систем, используя платформо-независимые конфигурационные файлы. Вам нужно скачать и установить CMake. Вы можете запустить ее из командной строки, но более простым решением будет использование GUI версию CMake. В этом случае все, что Вам нужно будет сделать, это указать папку с OpenCV. Затем нажать кнопку Configure и выбрать ваш компилятор (здесь мы выбрали Visual Studio 2010), затем нажать кнопку Configure опять, как показано на скриншоте ниже:

oneassasin 03.07.13 в 12:52

0

Теперь вы готовы для создания make файлов и файлов рабочего, нажав на кнопку Generate. Эти файлы позволяют вам скомпилировать библиотеку. Это последний шаг в процессе установки.

oneassasin 03.07.13 в 12:53

0

Компиляция библиотеки сделает ее готовой для использования в вашей среде разработки. Если вы выбрали IDE Visual Studio, то все что вам нужно это открыть файл решения, который CMake создал для вас. Затем выполните команду «Построить решение» («Build Solution»). В средах разработки под Unix, вы можете использовать сгенерированные make файлы для запуска вашего компилятора.

oneassasin 03.07.13 в 14:03

0

Если все прошло хорошо, то теперь у вас есть скомпилированные и готовые к использованию библиотеки OpenCV в соответствующей папке. Эта папка будет содержать, помимо уже упоминаемых нами папок, каталог BIN включающий скомпилированную библиотеку. Вы можете переместить библиотеку в удобное для вас место (например, «c:\OpenCV2.2»). Сейчас вам нужно добавить вашу папку BIN в системные «Переменные среды» («Панель управления» -> «Система» -> «Дополнительные параметры системы» -> «Переменные среды»).

oneassasin 03.07.13 в 14:10

0

Как это работает...

oneassasin 03.07.13 в 13:11

0

Используемая версия библиотеки OpenCV 2.2 разделено на модули. Жти модули находятся в папке lib. Это:

oneassasin 03.07.13 в 14:11

0

- Модуль opencv_core, включающий основные функции библиотеки, в частности основные структуры данных и арифметические функции.

oneassasin 03.07.13 в 14:12

0

- Модуль opencv_imgproc, включающий основные функции обработки изображений.

oneassasin 03.07.13 в 14:13

0

- Модуль opencv_highgui, который включает функции чтения и записи изображений и видео, а так же функции, что реализуют интерфейс пользователя.

oneassasin 03.07.13 в 14:14

0

- Модуль opencv_features2d, включающий функции детекторов точек и дескрипторы.

oneassasin 03.07.13 в 14:20

0

- Модуль opencv_calib3d, включающий функции калибровки камеры, два вида оценки геометрии, и функции для работы с стерео изображениями.

oneassasin 03.07.13 в 14:21

0

- Модуль opencv_video, включающий функции оценки движения, отслеживания, и функции и классы для исключения переднего фона.

oneassasin 03.07.13 в 14:22

0

- Модуль opencv_objdetect, включающий функции определения людей и лиц.

oneassasin 03.07.13 в 14:23

0

Библиотека так же включает отдельные модули, что содержат функции машинного обучения (opencv_ml), вычислительные геометрические алгоритмы (opencv_flann), содействующий код (opencv_contrib), устаревший код (opencv_legacy), и код, использующий GPU для ускорения расчетов (opencv_gpu).

oneassasin 03.07.13 в 14:27

0

Все модули имеют header файл, предписанный ему (находится в папке include). Обычный OpenCV C++ код обычно начинается с подключения необходимых модулей. Например:

oneassasin 03.07.13 в 14:30

0

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

oneassasin 03.07.13 в 12:54

0

Если вы видите, что код начинается с

oneassasin 03.07.13 в 14:30

0

#include "cv.h"

oneassasin 03.07.13 в 12:54

0

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

oneassasin 03.07.13 в 14:31

0

Более...

oneassasin 03.07.13 в 13:12

0

Так же вы можете получить последние коды OpenCV с сервера SVN, что находится по адресу:

oneassasin 03.07.13 в 14:31

0

https://code.ros.org/svn/opencv/trunk/opencv/

oneassasin 03.07.13 в 12:54

0

Вы увидите, что есть большое количество примеров, что помогут изучить как использовать библиотеку и покажет вам советы разработки.

oneassasin 03.07.13 в 14:41

0

Создание OpenCV проекта в MS Visual C++

oneassasin 03.07.13 в 14:42

0

Используя MS Visual C++, вы можете создать OpenCV приложение под Windows. Вы можете создать простое консольное приложение или более сложное с прекрасным пользовательским интерфейсом (GUI). Так как это самое простое решение, мы создадим простое консольное прложение здесь. Мы будет использовать Visual Studio 2010, однако, все действия применимы к другим версиям Visual Studio - меню и опции очень похожи с с другими версиями.

oneassasin 03.07.13 в 14:52

0

Когда вы запустите Visual Studio в первый раз, вы можете настроить ее так, что бы С++ был вашей стандартной средой. Этот путь, когда вы запускаете IDE, это будет режим Visual C++.

oneassasin 03.07.13 в 14:55

0

Мы предпологаем, что OpenCV уже установлена у вас в папку C:\OpenCV2.2, как описано в инструкции перед этой частью.

oneassasin 03.07.13 в 14:58

0

Давайте приступим

oneassasin 03.07.13 в 12:55

0

При работе с Visual Studio необходимо понимать разницу между решением ("solution") и проектом ("project"). В принципе, решение состоит из нескольких проектов (каждый проект является самостоятельным программным модулем, например, программой или библиотекой). Таким образом проекты вашего решения могут обмениваться файлами и библиотеками. Обычно, вы создаете одну главную папку для вашего решения и проект в одной папке. Это то, что вы будете делать для простых решений. Когда вы станете более знакомы с VS C++, и начнете разрабатывать более сложные приложения, вы начнете делать много проектные решения.

oneassasin 03.07.13 в 15:07

0

Так же, для компилирования и выполнения ваших Visual C++ проектов, у вас есть две конфигурации: Debug и Release. Режим отладки (Debug) помогает вам создавать и отлаживать ваши приложения. Это более защищенное решение, например, показывающие вам в вашей приложении утечки памяти, или проверку правильности выполнения функций во время работы программы. Тем не менее, в режиме отладки файлы больше занимают места, и дольше создаются. Вот почему, когда ваше приложение готово его необходимо компилировать в режиме релиза (Release). Этот файл можно будет распространять пользователям вашего приложения. Обратите внимание, что может случиться, если у вас код работает отлично в режиме отладки, но есть проблемы в режиме релиза. Вам нужно будет выполнить больше тестов с целью выявления потенциальных источников ошибок.

oneassasin 03.07.13 в 15:15

0

Большинство современных IDE поддерживают конфигурации отладки и релиза, так что Visual C++ этим не уникальна.

oneassasin 03.07.13 в 15:17

0

Как это сделать…

oneassasin 03.07.13 в 12:56

0

Теперь вы готовы для создания вашего первого проекта. Это делается используя пункт меню File|New Project|Project... Здесь вы можете создать различные проекты. Давайте начнем с самого простого варианты, выбрав Win32 Console Application, как показано на следующей скриншоте:

oneassasin 03.07.13 в 15:19

0

Вам необходимо указать где необходимо создать проект, и под каким названием. Так же есть настройка, что позволяет выбирать - создавать папку для решения или нет. Если выбрать эту настройку, то будет создана папка с названием, которое вы задали, в папке с решением. Если это не будет сделано, то файл решения (разрешение .sln) все равно будет создано, но все файлы будут находиться в одной папке в неупорядоченном виде. Нажмите на ОК и Next, что бы перейти в следующему окну Application Settings. Как видно на следующем скриншоте, предлагается несколько вариантов создания. Мы же создадим пустой проект.

oneassasin 16.07.13 в 16:15

0

Заметим, что мы также не отметили опцию заголовков до компиляции, которая является особ MS Visual
Studio--специфической особенностью, делающей процесс компиляции более быстрым. Так как мы хотим оставаться внутри стандарта ANSI C++, то мы не будем использовать эту опцию. Если мы нажмём на кнопку "завершить", тогда наш проект создастся. Пока он ещё пустой, но мы скоро добавим к нему главный файл main.

wuffur 08.10.13 в 18:02

0

Но сначала, для компилирования и создания ваших OpenCV приложений необходимо "показать" Visual Studio где находится библиотека OpenCV и подключаемые файлы. Лучшим вариантом будет создание Property Sheet (шаблон), что бы было удобнее в будущем создавать проекты.

oneassasin 16.07.13 в 16:20

0

В Visual C++ 2010 шаблон - это XML файл, который описывает ваши настройки проекта. Теперь необходимо создать новый правым кликом по Debug | Win32 ветке вашего проекта и выбрать Add New Project Property Sheet (как показано на скриншоте ниже):

oneassasin 16.07.13 в 16:22

0

Новый шаблон бует добавлен после нажатия на Add. Теперь необходимо редактировать его. Простой двойной клик по имени шаблона и выберите VS++ Directories, как показано ниже:

oneassasin 16.07.13 в 16:24

0
Минутку...

Следующая страница →