Опубликован: 20.08.2013 | Уровень: для всех | Доступ: платный | ВУЗ: Новосибирский Государственный Университет
Самостоятельная работа 1:

Сборка и установка библиотеки OpenCV. Использование библиотеки в среде Microsoft Visual Studio

< Лекция 5 || Самостоятельная работа 1: 12345678910 || Самостоятельная работа 2 >

2. Сборка и установка библиотеки OpenCV под Windows

2.1. Основные способы установки

Выделяется два основных способа установки библиотеки OpenCV под Windows: посредством установочного файла и из исходных кодов. Первый является достаточно простым, интуитивно понятным и не требует значительных усилий. По существу предполагает распаковку архива, содержащего заголовочные файлы, исходные коды и бинарные файлы. Второй способ более предпочтителен, если интересно разобраться в том, как устроена библиотека в целом, чтобы перенять опыт распределенной разработки. При установке библиотеки из исходных кодов используется широко известная открытая утилита CMake [4]. Далее рассмотрим оба способа установки библиотеки и остановимся на некоторых особенностях каждого из них.

2.2. Установка OpenCV с использованием установочного файла

Чтобы установить библиотеку OpenCV посредством установочного файла, необходимо выполнить следующую последовательность действий:

  1. Загрузить инсталлятор с официальной страницы проекта [2].
  2. Запустить установочный файл. В результате появится окно, показанное на рис. 6.1.
    Окно инсталлятора

    Рис. 6.1. Окно инсталлятора
  3. Выбрать путь для извлечения файлов библиотеки и нажать кнопку "Extract", чтобы инициировать процесс извлечения (рис. 6.2). По окончании распаковки указанная на предыдущем шаге директория будет содержать необходимые заголовочные файлы (директория build/include/opencv2) и бинарные файлы библиотеки (build), а также исходные коды библиотеки (modules), набор примеров использования библиотечных функций (samples) и ряд других вложенных директорий, которые будут рассмотрены в работе по мере необходимости.

    Окно инсталлятора

    Рис. 6.2. Окно инсталлятора

    Остановимся более подробно на составе директории build. Она содержит несколько вложенных директорий, в частности, x86 и x64, в которых находятся сборки библиотеки для соответствующих архитектур. В каждой директории (build/x86 и build/x64) имеются бинарные файлы, собранные под Microsoft Visual Studio 2008 (вложенная директория vc9), 2010 (vc10). Файлы с расширением .dll расположены в папке bin. Файлы с расширением .lib находятся в директории с одноименным названием. Заметим, что бинарные файлы, имеющие приставку 'd' в конце названия, соответствуют Debug-сборке, остальные – сборке в режиме Release. Наряду с этим названия lib-файлов содержат набор цифр, которые определяют версию сборки библиотеки.

2.3. Сборка библиотеки OpenCV из исходных кодов

2.3.1. Утилита CMake

Утилита CMake [4] – это кроссплатформенная открытая система сборки. CMake применяется с целью управления процессом компиляции посредством использования конфигурационных файлов, не зависимых от компилятора. Утилита позволяет генерировать make-файлы и рабочие пространства среды, компилятор которой будет использован для сборки проекта, например, решение и набор проектов для Microsoft Visual Studio.

Схема работы утилиты CMake достаточно простая:

  1. Разработчик описывает в специальном файле CMakeLists.txt параметры сборки (расположение исходных кодов, внешних библиотеки и т.д.).
  2. CMake обрабатывает указанный файл и выдает файл с инструкциями сборки для конкретной платформы (например, make-файл GNU make или файл проекта Visual Studio). Далее, используя файл инструкций можно собирать проект.

Суть использования CMake состоит в том, что описание параметров сборки абстрагировано от платформы и особенностей расположения библиотек конкретных систем. Утилита имеет модульную архитектуру, за счет чего достигается кроссплатформенность. Условно архитектуру можно представить в виде нескольких блоков:

  1. Модуль управления процессом сборки.
  2. Модуль с реализациями базовых команд (поиск библиотеки в системе, добавление библиотеки в сборку и др.).
  3. Модуль разбора файла, содержащего параметры сборки исходных кодов. Включает в себя классы, которые предназначены для хранения списка подключаемых библиотек и заголовочных файлов, также другие опции.
  4. Модуль генерации платформо-зависимых файлов сборки исходных кодов, которые впоследствии могут быть использованы для компиляции и линковки исходных кодов системы.

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

По существу CMake позволяет разработчикам программных систем решать несколько основных проблем:

  • Разрешение зависимостей между отдельными частями проекта.
  • Синтаксическая сложность разработки make-файлов, т.к. CMake снимает с разработчика необходимость написания make-файлов.
  • Обеспечение переносимости системы на другие платформы, что достигается за счет платформенной независимости файла параметров сборки.
2.3.2. Установка CMake

Для установки утилиты CMake необходимо выполнить следующие действия:

  1. Загрузить установочный файл с официальной страницы проекта [4].
  2. Запустить инсталлятор. При запуске появится окно, показанное на рис. 6.3.
    Окно инсталлятора

    Рис. 6.3. Окно инсталлятора
  3. Нажать кнопку "Next", чтобы перейти на следующий этап процедуры инсталляции. В результате можно видеть окно, показанное на рис. 6.4, которое содержит лицензионное соглашение.
    Окно инсталлятора

    Рис. 6.4. Окно инсталлятора
  4. Нажать кнопку "I agree", чтобы согласиться с условиями лицензионного соглашения. Далее появится окно, показанное на рис. 6.5, в котором предлагается прописать путь до исполняемого файла утилиты CMake в переменную окружения PATH и создать ярлык на рабочем столе для быстрого запуска указанной утилиты.
    Окно инсталлятора

    Рис. 6.5. Окно инсталлятора
  5. Выбрать необходимые опции и нажать кнопку "Next", в результате чего пользователю будет показано окно, приведенное на рис. 6.6.
    Окно инсталлятора

    Рис. 6.6. Окно инсталлятора
  6. Выбрать директорию для установки утилиты и нажать кнопку "Next". Далее появится окно (рис. 6.7), в котором предлагается указать название директории, которая будет содержать ярлыки утилиты в меню "Пуск".
    Окно инсталлятора

    Рис. 6.7. Окно инсталлятора
  7. Указать название директории и нажать кнопку "Install". Данное действие инициирует процесс установки, в результате которого появится окно завершения процесса (рис. 6.8).
    Окно инсталлятора

    Рис. 6.8. Окно инсталлятора
  8. Нажать кнопку "Finish" для завершения установки утилиты.
< Лекция 5 || Самостоятельная работа 1: 12345678910 || Самостоятельная работа 2 >
Александра Максимова
Александра Максимова

При прохождении теста 1 в нем оказались вопросы, который во-первых в 1 лекции не рассматривались, во-вторых, оказалось, что вопрос был рассмаотрен в самостоятельно работе №2. Это значит, что их нужно выполнить перед прохождением теста? или это ошибка?
 

Алена Борисова
Алена Борисова

В лекции по обработке полутоновых изображений (http://www.intuit.ru/studies/courses/10621/1105/lecture/17979?page=2) увидела следующий фильтр:


    \begin{array}{|c|c|c|}
    \hline \\
    0 & 0 & 0 \\
    \hline \\
    0 & 2 & 0 \\
    \hline \\
    0 & 0 & 0 \\
    \hline 
    \end{array} - \frac{1}{9} \begin{array}{|c|c|c|}
    \hline \\
    0 & 0 & 0 \\
    \hline \\
    0 & 1 & 0 \\
    \hline \\
    0 & 0 & 0 \\
    \hline 
    \end{array}

В описании говорится, что он "делает изображение более чётким, потому что, как видно из конструкции фильтра, в однородных частях изображение не изменяется, а в местах изменения яркости это изменение усиливается".

Что вижу я в конструкции фильтра (скорее всего ошибочно): F(x, y) = 2 * I(x, y) - 1/9 I(x, y) = 17/9 * I(x, y), где F(x, y) - яркость отфильтрованного пикселя, а I(x, y) - яркость исходного пикселя с координатами (x, y). Что означает обычное повышение яркости изображения, при этом без учета соседних пикселей (так как их множители равны 0).

Объясните, пожалуйста, как данный фильтр может повышать четкость изображения?

Сергей Кротов
Сергей Кротов
Россия
Дмитрий Донсков
Дмитрий Донсков
Россия, Москва, Московский Авиационный Институт