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

Лекция 1: Основные цветовые модели, представление изображения, базовые операции над изображениями

Лекция 1: 1234 || Лекция 2 >

Обработка и анализ полутоновых изображений

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

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

Линейная фильтрация является, пожалуй, самым часто применяемым методом обработки изображения из-за простоты реализации и скорости работы. Линейная фильтрация осуществляется с помощью дискретной свeртки изображения с заданным фильтром (ядро свeртки). Эту операцию можно представить формулой:

I'(X,Y) = \sum_{i=-k}^K\sum_{j=-k}^K{F(i,j)I(X-i,Y-j)}

где I – исходное изображение, I' – выходное изображение, F – заданный фильтр, представленный изображением размером 2k+1 на 2k+1.

Рассмотрим различные фильтры:

1. Фильтр

0 0 0
0 1 0
0 0 0

не изменяет изображения.

2. Фильтр


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

равномерно сглаживает изображение.

3. Фильтр

0.003 0.013 0.022 0.013 0.003
0.013 0.059 0.097 0.059 0.013
0.022 0.097 0.159 0.097 0.022
0.013 0.059 0.097 0.059 0.013
0.003 0.013 0.022 0.013 0.003

осуществляет фильтрацию по Гауссу.

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

Фильтр


    \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}

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

Рассмотрим еще один пример фильтра, на этот раз нелинейного, который повышает четкость изображения, например, в случае неправильно выбранного фокуса при съемке. Фильтрация осуществляется следующим образом:

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

I1[i,j] = I[i,j] – (I * Gaussian)[i,j], I[i,j] – пиксель исходного изображения, * - операция свертки, (I * Gaussian)[i,j] – пиксель отфильтрованного изображения.

Шаг 2: Модуль изображения, полученного на шаге 1, сравнивается с некоторым порогом (параметр алгоритма) и, если он меньше порога (пиксель находится в однородной области), то изображение не изменяется, а если больше порога (это соответствует области изменения яркости), то изменение яркости усиливается путем добавления к значению яркости I1[i,j]*k, где k>0параметр алгоритма (чем он больше, тем контрастнее становятся границы объектов).

Result[i,j] = I[i,j] if | I1[i,j] | < = T,
Result[i,j] = I[i,j] + k * I1[i,j] if | I1[i,j] | > T

Другой пример нелинейного фильтра – это медианная фильтрация. Медианой набора чисел является число из набора, не меньшее половины чисел набора и не большее другой половины чисел набора. Для каждого пиксела изображения рассматривается его окрестность и вычисляется медиана яркостей пикселов из этой окрестности, значение которой и сохраняется в выходном изображении. Размер окна фильтрации зада?тся пользователем (обычно это окна 3x3 или 5x5).

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

Линейные фильтры можно также применять для выделения границ объектов. Рассмотрим фильтр Собеля:


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

Видим, что он даст максимальное значение, когда справа от текущего пиксела лежит светлый объект, а слева темный (в идеале черный с нулевой яркостью). То есть фильтр по сути является разностной схемой для вычисления производной функции интенсивности по x. При этом соседние строчки принимаются во внимание для того, чтобы уменьшить влияние шума при вычислении производной.

Фильтр Собеля размером 3x3 для вычисления производной по y имеет вид:


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

Для вычисления Лапласиана используется следующий фильтр:

0 1 0
1 -4 1
0 1 0

Зная градиенты функции интенсивности и лапласиан, мы можем найти границы объектов, определяя их как точки с высокой нормой градиента (интенсивность резко изменяется на границе объекта) и нулевой второй производной (лапласиан = 0).


Рис. 1.7.

Пример нахождения границ объектов


Рис. 1.8.
Лекция 1: 1234 || Лекция 2 >
Андрей Терёхин
Андрей Терёхин

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

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

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

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