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

Базовые операции обработки изображений

Аннотация: В работе предлагается описание базовых операций обработки изображений. Приводятся прототипы функций библиотеки OpenCV, содержащих реализацию рассматриваемых функций с описанием назначения входных параметров. Предлагаются примеры программ, демонстрирующие использование каждой функции. Проводится анализ результатов запуска этих программ на некоторых тестовых изображениях. Разрабатывается структура консольного графического редактора, который обеспечивает возможность применения рассматриваемых операций обработки изображений. Рассматривается структура графического редактора посредством использования Qt-компонент библиотеки OpenCV

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

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

Введение

Великолепный снимок – это вещь в себе, а не компромисс на пути к печатной странице.

Ирвинг Пенн

Компьютерное зрение – одна из самых молодых областей, которая использует результаты многих смежных научных направлений таких, как машинное обучение, проективная геометрия, теория вероятности и т.п. Основной круг задач компьютерного зрения лежит в сфере качественного и количественного анализа изображений и потоков видеоданных (поиск и классификация объектов, сопровождение объектов на видео и др.). Большинство методов решения указанных задач тем или образом использует различные подходы для выполнения предобработки изображений или кадров видеопотока с целью дальнейшего повышения качества работы алгоритмов.

В настоящей работе рассматривается ряд методов предобработки, демонстрируется использование соответствующих операций на базе средств открытой библиотеки компьютерного зрения OpenCV [5].

Предобработка подразумевает преобразование исходного изображения в некоторое новое изображение. Безусловно, наиболее популярным способом обработки является фильтрация [6], которая в большинстве приложений используется для удаления шумов. Результат фильтрации – изображение того же размера, что и исходное, но содержащее значения интенсивностей пикселей, обновленные в соответствии с некоторым правилом. Линейные фильтры – простейшие представители данного класса методов предобработки. Линейная фильтрация сводится к пересчету значений интенсивности каждого пикселя изображения посредством вычисления взвешенной свертки интенсивностей пикселей, принадлежащих некоторой его окрестности. Размытие или сглаживание – еще один подход к предобработке. Сглаживание подобно линейной фильтрации, в простейшем случае предполагает свертку с равными весовыми коэффициентами, в более сложных приложениях – свертку с дискретными значениями функции распределения Гаусса или выбор медианы среди набора интенсивностей в окрестности.

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

Выделение краев (или ребер) объектов на изображениях – принципиально другая задача, возникающая в процессе предобработки т.к. на выходе формируется не просто преобразованное изображение, а карта границ объектов. Типичные методы выделения ребер базируются на применении к исходному изображению оператора Собеля (оператор первых производных по направлениям) или дискретного оператора Лапласа (оператор вторых производных). На данный момент наиболее известным детектором ребер является детектор Канни [4, 8, 9]. В работе предлагается описание схемы работы данного детектора.

Слабый контраст – распространенный дефект изображений и кадров видео. Существует три основных метода повышения контраста изображения: линейная растяжка гистограммы (линейное контрастирование), нормализация гистограммы, выравнивание (линеаризация или эквализация, equalization) гистограммы. Далее в работе предлагается краткое описание перечисленных методов, впоследствии основное внимание уделяется выравниванию гистограммы как наиболее эффективному подходу к решению задачи повышения контраста.

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

  • Анализ медицинских изображений, например, рентгеновских снимков, полученных с помощью магнитно-резонансной томографии.
  • Классификация изображений по контексту и организации последующего поиска в базах данных изображений по текстовым запросам.
  • Задачи видеоаналитики, в частности, распознавание людей в охранных системах видеонаблюдения или системах помощи водителю, автомобильных номеров в системах наблюдения за дорожным движением.
  • Качественный анализ сцен и распознавание конкретных классов объектов роботами, оснащенными видеокамерами.
  • Задачи повышения качества и контраста снимков, полученных со спутниковых видеокамер, для последующего их анализа.

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

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

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

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

  1. Изучить принцип работы базовых операций обработки изображений:
    • линейная фильтрация;
    • сглаживание с различными ядрами;
    • морфологические преобразования;
    • применение оператора Собеля;
    • применение оператора Лапласа;
    • определение ребер посредством детектора Канни;
    • вычисление гистограммы;
    • выравнивание гистограммы.
  2. Рассмотреть прототипы функций, реализующих перечисленные операции в библиотеке OpenCV.
  3. Разработать простые примеры использования указанного набора функций.
  4. Разработать консольный графический редактор, поддерживающий все представленные операции работы с изображениями. Предполагается организация простейшего диалога с пользователем.
  5. Разработать графический редактор с интерфейсом на базе библиотеки OpenCV, которая предоставляет возможность создания различных компонент средствами Qt.

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

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

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

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

Таблица 7.1. Тестовая инфраструктура
Операционная система Microsoft Windows 7
Среда разработки Microsoft Visual Studio 2010
Библиотека TBB Intel® Threading Building Blocks 3.0 for Windows, Update 3 (в составе Intel® ParallelStudio XE 2011 SP1)
Библиотеки OpenCV Версия 2.4.2

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

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

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

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

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

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