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

Сборка и установка Intel® Integrated Performance Primitives. Использование библиотеки в среде Microsoft® Visual Studio

Аннотация: В работе предлагается описание процедуры установки библиотеки Intel® IPP в составе пакета Intel® Parallel Studio XE 2013. Приводится последовательность действий, которые необходимо выполнить для настройки среды Microsoft Visual Studio при разработке приложений с использованием функций библиотеки. Далее рассматривается задача медианной фильтрации изображения. Предлагается решение на базе библиотек OpenCV и Intel® IPP. Вводится задача определения прямых линий на изображении, описывается схема решения с использованием преобразования Хафа. Предлагается программные реализации на базе библиотек OpenCV и Intel® IPP.
Ключевые слова: performance, IPP, Windows, visual, файл

Презентацию к лекции Вы можете скачать здесь.

Дополнительные материалы Вы можете скачать здесь.

Введение

Перегоняя кого либо, смотри: не пришлось бы от него убегать.

Станислав Лец

Intel® Integrated Performance Primitives (Intel® IPP) [5] – библиотека высокопроизводительных инструментов и программных функций обработки данных. Функции библиотеки можно разделить на четыре основные группы:

  1. Функции обработки звуковых сигналов:

    • дискретное преобразование Фурье;
    • функции фильтрации;
    • некоторые функции распознавания и кодирования речи;
    • функции сжатия данных и др.
  2. Функции обработки изображений и видео:

    • функции конвертирования изображений из одного цветового пространства в другое;
    • операции отсечения;
    • морфологические операции;
    • линейные преобразования;
    • статистические функции (гистограмма, центральные моменты, сумма, интегралы, математическое ожидание и среднеквадратичное отклонение набора пикселей);
    • геометрические преобразования изображений с использованием различных методов интерполяции;
    • вейвлет-преобразование;
    • реализации некоторых алгоритмов компьютерного зрения (детектор ребер Канни, преобразование Хафа, вычисление оптического потока и т.п.);
    • функции сжатия изображений;
    • функции кодирования видео и др.
  3. Функции работы с небольшими с векторами и матрицами небольших размеров:

    • операции над векторами (сложение, вычитание, умножение и т.п.);
    • операции с матрицами (транспонирование, вычисление определителя, умножение, определение следа матрицы и т.п.);
    • функции решения систем линейных алгебраических уравнений и др.
  4. Функции шифрования.

В настоящей работе предполагается продемонстрировать использование некоторых функций обработки изображений и реализаций алгоритмов компьютерного зрения библиотеки Intel® IPP на примере задач медианной фильтрации и определения прямых линий на изображении. Также в ходе работы будет подробно рассмотрен этап предварительной подготовки программной инфраструктуры с целью последующего использования библиотеки Intel® IPP на базе операционной системы Windows в среде Microsoft Visual Studio.

1. Методические указания

1.1. Цели и задачи работы

Цель данной работы – рассмотреть технические этапы подготовки инфраструктуры и продемонстрировать использование некоторых функций библиоте ки Intel® Integrated Performance Primi t ives на примере простых задач медианной фильтрации и поиска прямых линий на изображении.

Данная цель предполагает решение следующих задач:

  1. Установка библиотеки Intel® IPP в составе пакета Intel® Parallel Studio XE 2013 [4].
  2. Настройка среды Microsoft Visual Studio с целью использования библиотеки при разработке C/C++ приложений.
  3. Разработка приложения, которое осуществляет медианную фильтрацию изображения средствами библиотеки Intel® IPP. Для проверки корректности результата предполагается разработка функции, выполняющей медианную фильтрацию с использованием OpenCV [6].
  4. Разработка приложения для поиска прямых линий на изображении средствами библиотеки Intel® IPP, содержащей функции вычисления преобразования Хафа [1, 2]. Сравнение результатов с реализацией, разработанной на базе библиотеки OpenCV.

1.2. Структура работы

В работе предлагается описание процедуры установки библиотеки Intel® IPP в составе пакета Intel® Parallel Studio XE 2013. Приводится последовательность действий, которые необходимо выполнить для настройки среды Microsoft Visual Studio при разработке приложений с использованием функций библиотеки. Далее рассматривается задача медианной фильтрации изображения. Предлагается решение на базе библиотек OpenCV и Intel® IPP. Вводится задача определения прямых линий на изображении, описывается схема решения с использованием преобразования Хафа. Предлагается программные реализации на базе библиотек OpenCV и Intel® IPP.

1.3. Тестовая инфраструктура

Вычислительные эксперименты проводились с использованием следующей инфраструктуры (табл. 10.1).

Таблица 10.1. Тестовая инфраструктура
Операционная система Microsoft Windows 7
Среда разработки Microsoft Visual Studio 2010
Библиотеки Intel® Integrated Performance Primitives Intel® Integrated Performance Primitives 7.1
Библиотеки OpenCV Версия 2.4.3

1.4. Рекомендации по проведению занятий

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

  1. Напомнить назначение основных модулей библиотеки Intel® IPP.
  2. Напомнить общую схему именования функций библиотеки Intel® IPP.
  3. Продемонстрировать процедуру установки библиотеки в составе пакета Intel® Parallel Studio XE 2013.
  4. Показать последовательность действий, необходимых для создания и настройки консольного C/C++ проекта в среде Microsoft Visual Studio с целью последующего использования функций библиотеки Intel® IPP.
  5. Рассмотреть задачу медианной фильтрации.
  6. Разработать приложение, которое выполняет медианную фильтрацию исходного изображения сначала средствами библиотеки OpenCV, а затем Intel® IPP, и сравнивает полученные результаты.
  7. Рассмотреть задачу выделения прямых линий на изображении.
  8. Объяснить схему решения задачи выделения прямых линий с использованием преобразования Хафа.
  9. Разработать программные реализации рассмотренной схемы с использованием средств библиотеки OpenCV и Intel® IPP. Проанализировать результаты, полученные с помощью реализации на базе OpenCV и Intel® IPP.
Александра Максимова
Александра Максимова

При прохождении теста 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).

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

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