Опубликован: 02.09.2013 | Доступ: свободный | Студентов: 430 / 54 | Длительность: 19:27:00

Самостоятельная работа 6: Сравнение производительности некоторых алгоритмов в библиотеках OpenCV и IPP

2. Разработка приложения для сравнения производительности операций над изображениями, реализованных на базе OpenCV и Intel IPP

2.1. Требования к общей организации приложения

Прежде чем перейти к созданию проекта в среде разработки Microsoft Visual Studio 2010 и написанию кода, обсудим некоторые общие моменты.

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

Итак, в качестве алгоритмов для сравнения мы используем медианную фильтрацию, относящуюся к алгоритмам размытия, два морфологических преобразования: эрозию и дилатацию, – а также один из статистических алгоритмов: гистограмму.

2.2. Создание проекта

Создадим новое Решение (Solution), в которое включим Проект (Project) данной лабораторной работы. Последовательно выполните следующие шаги:

  1. Запустите приложение Microsoft Visual Studio 2010.
  2. В меню File выполните команду New>Project….
  3. Как показано на рис. 1, в диалоговом окне New Project в типах проекта выберите Win32, в шаблонах Win32 Console Application, в поле Name введите название проекта OpenCVvsIPP, в поле Location укажите путь к папке с лабораторными работами, снимите флажок Create directory for Solution. Нажмите OK.
    Создание решения для лабораторной работы

    Рис. 13.1. Создание решения для лабораторной работы
  4. В диалоговом окне Win32 Application Wizard нажмите Next (или выберите Application Settings в дереве слева) и установите флаг Empty Project. Нажмите Finish.
  5. В окне Solution Explorer в папке Source Files выполните команду контекстного меню Add>New Item…. В дереве категорий слева выберите Code, в шаблонах справа – C++ File (.cpp), в поле Name введите имя файла main. Нажмите Add. В результате выполненной последовательности действий в окне редактора кода Visual Studio будет открыт пустой файл main.cpp.

2.3. Настройка свойств проекта

Настроить проект для использования библиотеки IPP из состава пакета Intel Parallel Studio XE 2013 очень просто. Понадобится следующая последовательность действий.

  1. Выполните команду контекстного меню Properties, чтобы получить доступ к настройкам проекта.
  2. Откройте вкладку Configuration Properties-Intel Performance Libraries.
  3. В выпадающем списке напротив свойства Use IPP выберите способ линковки библиотеки Intel® IPP (рис. 13.2).
Перечень способов линковки библиотеки IPP

Рис. 13.2. Перечень способов линковки библиотеки IPP

Для использования функций библиотеки OpenCV потребуется немного больше действий.

  1. Сначала установим путь до заголовочных файлов библиотеки OpenCV. Выполните команду контекстного меню Properties, чтобы получить доступ к настройкам проекта. Откройте вкладку Configuration Properties-C/C++-General (рис. 13.3). Сверху в окне свойств в выпадающем списке Configuration выберите значение All Configurations, чтобы установить свойство для всех режимов компиляции (Debug и Release). В поле Additional Include Directories укажите пути до заголовочных файлов библиотеки OpenCV (например, c:\OpenCV\build\include). Нажмите кнопку Apply, чтобы применить указанное свойство.
    Установка путей до заголовочных файлов OpenCV

    увеличить изображение
    Рис. 13.3. Установка путей до заголовочных файлов OpenCV
  2. Далее установим путь до подключаемых библиотек (lib-файлов). Откройте вкладку Configuration Properties-Linker-General (рис. 13.4). Сверху в окне свойств в выпадающем списке Configuration выберите значение All Configurations. В поле Additional Library Directories укажите путь до lib-файлов (например, c:\OpenCV\build\x86\vc10\lib\).
    Установка путей до подключаемых библиотек OpenCV

    Рис. 13.4. Установка путей до подключаемых библиотек OpenCV
  3. Последним действием укажем список подключаемых библиотек. Откройте вкладку Configuration Properties?Linker?Input (рис. 13.5). Сначала в окне свойств в выпадающем списке Configuration выберите значение Debug и установите в поле Additional Dependencies список lib-файлов

    opencv_core242d.lib, opencv_imgproc242d.lib, opencv_highgui242d.lib, opencv_legacy242d.lib, opencv_video242d.lib, opencv_ml242d.lib, opencv_objdetect242d.lib.

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

    Установка списка подключаемых библиотек OpenCV

    Рис. 13.5. Установка списка подключаемых библиотек OpenCV
Андрей Терёхин
Андрей Терёхин

Нахожу в тесте вопросы, которые в принципе не освещаются в лекции. Нужно гуглить на других ресурсах, чтобы решить тест, или же он всё же должен испытывать знания, полученные в ходе лекции?

Демянчик Иван
Демянчик Иван

В главе 14 мы видим понятие фильтра, но не могу разобраться, чем он является в теории и практике.

" Искомый объект можно описать с помощью фильтра F= \lbrace f_{x',y'},x' \in \lbrace0, ...,w_f \rbrace , y' \in \lbrace 0,...,h_f \rbrace \rbrace "