Алгоритмы методы обработки изображений фильтрами. Реализация системы. Предварительная обработка изображения

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

Шум на видео может возникать по нескольким причинам :

1. Неидеальное оборудование для захвата видео.

2. Плохие условия съемки - например, ночная фото/видеосъемка, съемка в ненастную погоду.

3. Помехи при передаче по аналоговым каналам - наводки от источников электромагнитных полей, собственные шумы активных компонентов (усилителей) линии передачи. Примером может служить телевизионный сигнал.

4. Неточности фильтрации при выделении яркостного и цветоразностных сигналов из аналогового композитного сигнала и т. п.

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

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

Белый Гауссовский шум

Одним из самых распространенных шумов является адиттивный гауссовский шум, который характеризуется добавлением к каждому пикселю изображения значений с нормальным распределением и с нулевым средним значением. Термин «аддитивный» означает, что данный вид шума суммируется с полезным сигналом. Возникает при плохих условиях приема сигнала .

Цифровой шум

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

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

Комбинированный шум

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

Дефекты сканирования изображений

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

Алгоритмы удаления шума

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

Рассмотрим несколько наиболее известных алгоритмов подавления шума на изображениях.

Линейное усреднение пикселей

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

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

Данный метод можно применять также во временной области, усредняя каждый пиксель по соседним кадрам видеопотока (каждый пиксель будет усредняться по пикселям, расположенным в той же позиции в соседних кадрах).

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

Фильтр Гаусса

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

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

Матричный фильтр, посчитанный по указанной формуле, называется гауссианом; чем больше его размер, тем сильнее размытие (при фиксированном у). Поскольку данный фильтр сепарабелен, то его можно представить в виде:

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

Алгоритм 2Dcleaner

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

Медианная фильтрация

Линейные алгоритмы оказываются очень эффективными при подавлении помех гауссовского характера, когда соседние пиксели хоть и имеют некоторый случайный разброс значений, но все же остаются в пределах некоторого среднего значения, характерного для области, к которой они принадлежат. Однако порой приходится иметь дело с изображениями, искаженными другими видами помех. Примером такой помехи является импульсный шум, проявляющийся в наличии на изображении хаотично разбросанных точек случайной яркости. Усреднение в этом случае “размазывает” каждую такую точку на соседние пиксели, приводя к ухудшению качества изображения.

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

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

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

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

Повышение резкости изображения

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

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

Рисунок 5.1 - Иллюстрация понятия «резкость контура»

Резкость изображения зависит от величины перепада яркости между областями (W), образующими его контуры, и от резкости изменения этого перепада (H).

Прием нерезкого маскирования был впервые применен еще для обработки пленочных фотографий . Приспособленный к цифровой обработке изображений метод мало отличается от оригинального: из изображения вычитается так называемая “нерезкая маска” - его размытая и инвертированная копия. Итогом становится новое изображение, содержащее только светлые контуры оригинала. Темные контуры можно получить простым инвертированием результата.

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

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

Рисунок 5.2 - Результат применение нерезкого маскирования

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

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

Главным элементом свертки является маска свертки - это матрица (произвольного размера и отношения сторон). Часто такую маску называют фильтром, ядром, шаблоном или окном. Значения элементов матрицы принято называть коэффициентами.

Чаще всего в качестве ядра свертки используется квадратная матрица.

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

Получаемый эффект зависит от выбранного ядра свертки.

Ядро контрастоповышающего фильтра имеет значение, большее 1, в точке (0, 0), при общей сумме всех значений, равной 1. Например, контрастоповышающим фильтром является фильтры с ядрами, задаваемыми матрицами :

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

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

Компенсация разности освещения

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

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

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

Алгоритм Single Scale Retinex

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

В таких случаях требуется применять “умную” цветокоррекцию, которая была бы способна выравнивать освещение на изображении, обрабатывая светлые участки в меньшей степени нежели темные.

Этим требованиям удовлетворяет алгоритм Single Scale Retinex, основанный на принципах устройства рецепторов сетчатки глаза. Основная цель алгоритма - разделить изображение на компоненты, отвечающие отдельно за освещенность и детали. Так как проблемы в изображении связаны с освещением сцены, то, получив компоненту, отвечающую за освещение, становится возможным преобразовать её отдельно от изображения, тем самым значительно повысив его качество.

Любое изображение можно представить, как произведение высокочастотного сигнала (отражение - R) и низкочастотного сигнала (освещенность - I) .

S(x,y) = I(x,y) * R(x,y)(5.6)


Рисунок 5.3 - Представление изображения в алгоритме Retinex.

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

где G -- Гауссовский фильтр

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

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

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

Гамма-коррекция

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

Информация о яркости в аналоговом виде в телевидении, а также в цифровом виде в большинстве распространённых графических форматов, хранится в нелинейной шкале. Яркость пиксела на экране монитора можно считать пропорциональной

где I -- яркость пиксела на экране дисплея (или яркости составляющих цвета, красной, зелёной и синей по отдельности),

V -- численное значение цвета от 0 до 1, а

г -- показатель гамма-коррекции .

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

По умолчанию параметр г равен 1, что соответствует линейной характеристике передачи уровней и отсутствию гамма - коррекции.

Выделение контуров изображения

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

Рисунок 5.4 - Изменение вида степенной функции в зависимости от параметра г

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

Для упрощения поиска контуров на изображении можно предварительно провести его бинаризацию.

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

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

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

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

Для вычисления приближенных значений производных в каждой точке изображения фильтр Собеля использует свертку с матрицей размером 3Ч3.

Коэффициенты матрицы Собеля :

Итоговая величина градиента вычисляется путем аппроксимируции по формуле:

|G| = |Gx| + |Gy|

Детектор границ Кенни

Хотя работа Кенни была проведена на заре компьютерного зрения (1986), детектор границ Кенни до сих пор является одним из лучших детекторов. Метод Кенни является многоэтапным алгоритмом, и включает в себя следующие шаги :

1. Очистка изображения от шума и лишних деталей.

2. Очистка изображения от шума и лишних деталей.

3. Поиск градиентов изображения, к примеру, оператором Собеля.

4. Подавление не-максимумов. Только локальные максимумы отмечаются как границы.

5. Двойная пороговая фильтрация. Потенциальные границы определяются порогами.

6. Трассировка контуров (Связать края в контуры)

Так как малейший шум на изображении может нарушить целостность его контуров, перед началом поиска рекомендуется провести фильтрацию изображения любым шумоподавляющим методом. В силу высокой скорости работы и простоты реализации, наиболее часто используется фильтр Гаусса. Границы на изображении могут находиться в различных направлениях, поэтому алгоритм Кенни использует четыре фильтра для выявления горизонтальных, вертикальных и диагональных границ. Воспользовавшись оператором обнаружения границ (например, оператором Собеля) получается значение для первой производной в горизонтальном направлении (Gу) и вертикальном направлении (Gx). Из этого градиента можно получить угол направления границы:

Угол направления границы округляется до одной из четырех углов, представляющих вертикаль, горизонталь и две диагонали (например, 0, 45, 90 и 135 градусов). Границами объявляются только те пиксели, в которых достигается локальный максимум градиента в направлении вектора градиента. Значение направления должно быть кратно 45°. После подавления не-максимумов, края становятся более точными и тонкими.

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

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

Сегментация

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

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

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

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

§ однородность регионов (однородность цвета или текстуры);

§ непохожесть соседних регионов;

§ гладкость границы региона;

§ маленькое количество мелких «дырок» внутри регионов ;

Пороговая сегментация

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

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

При этом преобразование каждой точки исходного изображения в выходное выполняется по правилу:

где x0 - единственный параметр обработки, называемый порогом. Уровни выходной яркости y0 и y1, могут быть произвольными, они лишь выполняют функции меток, при помощи которых осуществляется разметка получаемой карты - отнесение ее точек к классам К1 или К2 соответственно. Если образуемый препарат подготавливается для визуального восприятия, то часто их значения соответствуют уровням черного и белого. Если существует более двух классов, то при пороговой обработке должно быть задано семейство порогов, отделяющих яркости различных классов друг от друга.

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

Сегментация основанная на разбиении графа

Методы теории графов - одно из наиболее активно развивающихся направлений в сегментации изображений.

Общая идея методов этой группы следующая. Изображение представляется в виде взвешенного графа, с вершинами в точках изображения. Вес ребра графа отражает сходство точек в некотором смысле (расстояние между точками по некоторой метрике). Разбиение изображения моделируется разрезами графа .

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

Для поиска разреза минимальной стоимости применяются различные методы: жадные алгоритмы (на каждом шаге выбирается такое ребро, чтобы суммарная стоимость разреза была минимальной), методы динамического программирования (гарантируется, что, выбирая на каждом шаге оптимальное ребро, получим в итоге оптимальный путь), алгоритм Дейкстры, и т.п.

Интерполяция

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

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

Интерполяция методом ближайшего соседа

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

Билинейная интерполяция

Данный вид интерполяции производится по каждой координате двумерной сетки. Изображение при этом рассматривается как поверхность, цвет - третье измерение. Если изображение цветное, то интерполяция проводится отдельно для трех цветов. Для каждой неизвестной точки нового изображения билинейная интерполяция рассматривает квадрат из четырех окружающих её известных пикселей . В качестве интерполированного значения используется взвешенное усреднение этих четырёх пикселей. В результате изображения выглядят значительно более гладко, чем результат работы метода ближайшего соседа.

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

Бикубическая интерполяция идёт на один шаг дальше билинейной, рассматривая массив из 4x4 окружающих пикселей -- всего 16. Поскольку они находятся на разных расстояниях от неизвестного пикселя, ближайшие пиксели получают при расчёте больший вес. Бикубическая интерполяция производит значительно более резкие изображения, чем предыдущие два метода, и возможно, является оптимальной по соотношению времени обработки и качества на выходе. По этой причине она стала стандартной для многих программ редактирования изображений (включая Adobe Photoshop), драйверов принтеров и встроенной интерполяции камер .

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

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

5.2 Обоснование выбора алгоритмов, используемых в подсистеме

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

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

В итоге для реализации фильтров обработки видео-потока на вычислительном кластере были выбраны следующие алгоритмы:

1. Для удаление “аддитивного белого” шума был выбран алгоритм Гаусса. Как наиболее расространенный метод шумоподавления он очень хорошо оптимизирован и соответственно обладает высокой скорость работы

2. Для удаление “аддитивного белого” шума был выбран алгоритм Гаусса. Как наиболее распространенный метод шумоподавления он очень хорошо оптимизирован и соответственно обладает высокой скорость работы

3. Для удаления “импульсного” шума была выбрана медианная фильтрация. Данный метод так же хорошо оптимизирован, кроме того он был разработан специально для устранения импульсного шума и шума вида «соль и перец»

4. Для повышения резкости изображения была выбрана свертка, так как она работает гораздо быстрее нерезкого маскирования, вместе с тем давая приемлемые результаты.

5. Библиотека OpenCV не содержит алгоритмов цветокоррекции - поэтому решено было реализовать наиболее распространенный и хорошо документированный алгоритм Single Scale Retinex. Данный метод обладает очень высокой эффективностью, но требует оптимизации для ускорения скорости работы.

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

7. Алгоритм пирамидальной сегментации, представленный в библиотеке OpenCV работает крайне медленно, поэтому решено было использовать рассмотренный ранее алгоритм сегментации на графах.

8. интерполяция - выбран метод бикубической интерполяции как самый разумный компромисс между скоростью работы и качеством результата.

Установка и конфигурирование используемых программных средств.

На используемом вычислительном кластере была установлена система GNU Linux (Ubuntu)

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

Установка CMake

Сборка проекта осуществляется с помощью CMake (требуется версия 2.6 или выше). Установить ее можно командой:

apt-get install cmake

Так же могут понадобиться следующие библиотеки:

build-essential libjpeg62-dev libtiff4-dev libjasper-dev libopenexr-dev libtbb-dev libeigen2-dev libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev

Установка ffmpeg

Чтобы opencv мог корректно обрабатывать видео-файлы, необходимо установить библиотеку ffmpeg. Это делается следующими командами:

1) Скачивание исходных кодов библиотеки

wget http://ffmpeg.org/releases/ffmpeg-0.7-rc1.tar.gz

2) Распаковка архива с исходными кодами

tar -xvzf ffmpeg-0.7-rc1.tar.gz

3) Конфигурация библиотеки

configure --enable-gpl --enable-version3 --enable-nonfree --enable-postproc

Enable-libfaac --enable-libopencore-amrnb --enable-libopencore-amrwb

Enable-libtheora --enable-libvorbis --enable-libxvid --enable-x11grab

Enable-swscale --enable-shared

4) Сборка и установка библиотеки

установка GTK

Для отображения окон OpenCV требуется установленная библиотека GTK+ 2.x или выше, в том числе заголовочные файлы (libgtk2.0-dev)

apt-get install libgtk2.0-dev

Установка Opencv

После установки всех сопутствующих библиотек установка opencv2.2 выполняется следующими командами:

1) Скачивание исходных кодов библиотеки OpenCV

http://downloads.sourceforge.net/project/opencvlibrary/opencv-unix/2.2/OpenCV-2.2.0.tar.bz2

2) Распаковывание архива с исходными кодами

tar -xvf OpenCV-2.2.0.tar.bz2

3) генерация Makefile с помощью CMake.

4) сборка и установка библиотеки OpenCV

5) Так же может понадобиться прописать путь к библиотекам

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

Установка и компиляция разработанного пакета программ

Необходимо скопировать исходные коды программ с диска, прилагаемого к данной пояснительной записке. В ту же папку необходимо скопировать и пакетный файл build_all.sh, а затем запустить его. Если в системе установлен компилятор gcc, сборка произойдет автоматически.

1

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

обработка изображения

нечеткая логика

интеллектуальная система

распознавание объектов

1. Веснин Е.Н., Вето А.В., Царев В.А. К вопросу о разработке и применении адаптивных оптоэлектронных систем технического зрения// Автоматизация в промышленности, 2009.- № 11.- С. 48-52.

2. Гришин В.А. Системы технического зрения в решении задач управления беспилотными летательными аппаратами // Датчики и системы, №2, 2009.- C. 46-52.

3. Клевалин В.А., Поливанов А.Ю. Цифровые методы распознавания в системах технического зрения промышленных роботов// Мехатроника, автоматизация, управление, 2008, № 5.- С. 56-56.

4. Михайлов С.В., Романов В.В., Заикин Д.А. Система технического зрения для диагностики процесса резания материалов// Вестник компьютерных и информационных технологий, 2007, № 3.- С. 12-19.

5. Семин М.С. Обзор решения прикладных задач с помощью систем технического зрения// http://www.videoscan.ru/page/718#13.

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

Сущность гибридного алгоритма обработки изображений в СТЗ мобильного робототехнических комплексов (МРК) заключается в приведении исходного изображения сцены к виду, позволяющему решить задачу распознавания ее объектов.

Алгоритм предварительной обработки изображения с помощью нечеткой системы в СТЗ

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

Рис. 1. Алгоритм предварительной нечеткой обработки изображения

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

Для преобразования изображения в оттенки серого для каждой точки изображения выделяются интенсивности красной, зеленой и синей составляющей цвета, а затем осуществляется преобразование цвета по следующей формуле:

где - новое значение цвета, - интенсивность красной составляющей цвета, - интенсивность зеленой составляющей цвета, а - интенсивность синей составляющей цвета. Выход каждого алгоритма оттенки серого между 0 и 1. Для преобразования изображений в использующие только оттеки серого существует некоторые методов. В методе определения светлоты используется среднее значение между двумя наиболее и наименее значимыми цветами: . В методе среднего используется среднее значение всех трёх цветов: . В методе определения яркости используется взвешенное среднее значение всех трех цветов, учитывающее человеческое восприятие. Так, поскольку человеческий глаз наиболее восприимчив к зеленому цвету, его вес считается наиболее важным: . Метод определения яркости используется программное обеспечение для обработки изображений. Он реализован функцию « rgb2gray» в среде MATLAB и это часто используется для компьютерного зрения . В процессе предварительной нечеткой обработки имеет процесс преобразования изображений из цветного (RGB) в оттенки серого с помощью метода определения яркости. Далее изображение преобразуется из оттенки серого в черно-белый (рис. 2).

Рис. 2. процесс преобразования изображений из цветного в оттенки серого

Бинаризация изображения при предварительной обработке

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

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

Пороговая обработка преобразовывает цветовое или серое изображение в черно-белое изображение. Пороговые преобразования занимают центральное место в прикладных задачах сегментации изображений благодаря интуитивно понятным свойствам и простоте реализации. Для каждого пикселя в изображении, его уровень интенсивности исследован, если его значение - выше некоторого порогового уровня, это соответствует белому цвету. Если это - ниже порога набора, это установлено в черный. Пороговый уровень будет между 0 и 255.

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

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

В качестве метода для решения поставленной задачи воспользуемся методом Бернсена . Метод базируется на идее сопоставления уровня яркости преобразуемого пикселя со значениями локальных средних, вычисляемых в его окружении. Пиксели изображения обрабатываются поочередно путем сравнения их интенсивности со средними значениями яркости в окнах с центрами в точках (рис.3).

Рис. 3. Преобразование пикселя изображения

Алгоритм нечеткой обработки для выделения границ и сегментации изображений

После преобразования изображения в черно-белый, получается градиентное изображение с помощью оператора Собеля и поступается на входы нечеткого обработки изображения (НОИ) (рис. 4).

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

Изображение - размер с серыми уровнями и может быть определено как массив нечеткое одноточечное множество (нечеткие множества можно поддерживать только с одной точкой), указывающее значение принадлежности каждого пикселя в отношении по заранее свойства изображения (например - яркость, гладкость и т.д.).

(1)

где и - принадлежности пикселя в обозначении нечетких множеств. Определение значений принадлежности зависит от конкретных требований особенного применения и от соответствующей базы знаний.

Выход системы для входной системы задается следующую формулу:

(2)

Рис. 4. Алгоритм нечеткой обработки изображений для выделения границ

Применение нейронных сетей для распознавания образов

Многослойным персептроном называют искусственную нейронную сеть, состоящую из нескольких входных узлов, образующих входной слой, одного или нескольких вычислительных слоев нейронов и одного выходного слоя (рис. 6). В таких сетях сигнал, подающийся на входной слой, передается последовательно в прямом направлении от слоя к слою. Данный тип ИНС успешно применяется для решения разнообразных задач, в частности для задачи распознавания образов .

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

Одним из наиболее распространенных алгоритмов обучения многослойных нейронных сетей является алгоритм обратного распространения ошибки. В этом алгоритме вычисляется вектор градиента поверхности ошибок. Затем продвигаемся на некоторую величину в направлении вектора (он будет указывать нам направление наискорейшего спуска), где значение ошибки будет уже меньше. Такое последовательное продвижение постепенно приведет к минимилизации ошибки. Здесь возникает трудность с определением величины, на которую следует продвигаться. Если величина шага будет относительно большой, это приведет к наискорейшему спуску, однако есть вероятность «перепрыгнуть»

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

Введем следующие обозначения. Матрицу весовых коэффициентов от входов к скрытому слою обозначим , а матрицу весов, соединяющих скрытый и выходной слой - . Для индексов примем следующие обозначения: входы будем нумеровать только индексом , элементы скрытого слоя - индексом , а выходы - индексом . Число входов сети равно , число нейронов в скрытом слое - , число нейронов в выходном слое - . Пусть сеть обучается на выборке , . Тогда алгоритм обучения многослойного персептрона будет выглядеть следующим образом :

Шаг 1. Инициализация сети. Весовым коэффициентам присваиваются малые случайные значения, например, из диапазона (-0.3, 0.3); задаются - параметр точности обучения, - параметр скорости обучения (как правило, и может еще уменьшаться в процессе обучения), - максимально допустимое число итераций.

Шаг 2. Вычисление текущего выходного сигнала. На вход сети подается один из образов обучающей выборки, и определяются значения выходов всех нейронов нейросети.

Шаг 3. Настройка синоптических весов. Рассчитать изменение весов для выходного слоя нейронной сети по формулам:

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

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

На шаге 2 векторы из обучающей последовательности лучше предъявлять на вход в случайном порядке.

Количество входов и выходов сети, как правило, диктуется условиями задачи, а размер скрытого слоя находят экспериментально. Обычно число нейронов в нем составляет 30-50% от числа входов. Слишком большое количество нейронов скрытого слоя приводит к тому, что сеть теряет способность к обобщению (она просто досконально запоминает элементы обучающей выборки и не реагирует на схожие образцы, что неприемлемо для задач распознавания). Если число нейронов в скрытом слое слишком мало, сеть оказывается просто не в состоянии обучиться.

Заключение

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

Рецензенты:

Гагарина Л.Г., д.т.н., профессор, заведующий кафедрой «Информатика и программное обеспечение вычислительных систем» Национального исследовательского университета «МИЭТ», г. Москва.

Портнов Е.М., д.т.н., профессор кафедры «Информатика и программное обеспечение вычислительных систем», начальник научно-исследовательской лаборатории «Управляющие информационные системы» Национального исследовательского университета «МИЭТ», г. Москва.

Библиографическая ссылка

Аунг Ч.Х., Тант З.П., Федоров А.Р., Федоров П.А. РАЗРАБОТКА АЛГОРИТМОВ ОБРАБОТКИ ИЗОБРАЖЕНИЙ ИНТЕЛЛЕКТУАЛЬНЫМИ МОБИЛЬНЫМИ РОБОТАМИ НА ОСНОВЕ НЕЧЕТКОЙ ЛОГИКИ И НЕЙРОННЫХ СЕТЕЙ // Современные проблемы науки и образования. – 2014. – № 6.;
URL: http://science-education.ru/ru/article/view?id=15579 (дата обращения: 01.02.2020). Предлагаем вашему вниманию журналы, издающиеся в издательстве «Академия Естествознания»

Лабораторная работа № 1

Алгоритмы обработки изображений

Операция свертки

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

где M2xN2 - размер матрицы ядра свертки. Размер матрицы F равен (M1+M2-1)x(N1+N2-1), где M1xN1 - размер исходной матрицы F " . Матрица F получается из исходной путем добавления элементов на краях матрицы по некоторому правилу с тем, чтобы привести ее к необходимому размеру. Обычно исходная матрица на краях дополняется нулями на половину ширины матрицы H влево и вправо и соответственно на половину высоты вверх и настолько же вниз. Тогда размер полученной матрицы R будет таким же, как и у матрицы F " .

Свертку можно вычислять непосредственно "пробеганием" одной матрицы по другой, как уже было показано выше. На рис. 1 показана схема вычисления свертки (размер матрицы маски взят равным 3х3). Оператор свертки можно рассматривать как матрицу коэффициентов (масок), которые поэлементно умножаются с выделенным фрагментом изображения с последующим суммированием для получения нового значения элемента отфильтрованного изображения. Эта матрица может быть произвольного размера, необязательно квадратная.

Рис. 1. Реализация операции свертки.

Задание

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

    Размер и вид матрицы-маски задаются пользователем.

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

    • для сглаживания и подавления шумов в изображении используют матрицу-маску размером 3х3 следующего вида:

    для подчеркивания контуров используются матрицы-маски следующего вида:

1/9*

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

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

5. Реализовать алгоритм тиснения. Тиснение делается аналогично алгоритмам усреднения или подчеркивания контуров. Каждый пиксел в изображении обрабатывается ядром (матрицей-маской) тиснения размером 3х3. Например, в качестве ядра тиснения можно взять следующую матрицу-маску:

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

В тисненом варианте изображения контуры кажутся выдавленными над поверхностью. Направление подсветки изображения можно изменять, меняя позиции 1 и -1 в ядре. Если, например, поменять местами значения 1 и -1, то реверсируется направление подсветки.

6. Акварелизация изображения. Акварельный фильтр преобразует изображение, и после обработки оно выглядит так, как будто написано акварелью:

    первый шаг в применении акварельного фильтра - сглаживание цветов в изображении. Одним из способов сглаживания является применение медианнного усреднения цвета в каждой точке. Значение цвета каждого пиксела и его 24 соседей (размер матрицы-маски равен 5х5) выстраиваются в вариационный ряд по убыванию или возрастанию. Медианное (тринадцатое) значение цвета в вариационном ряде присваивается центральному пикселу.

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

Представление изображений

Существуют два основных вида представлений изображений – векторное и растровое.

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

Растровое изображение представляет собой одну или несколько матриц, описывающих пространственное распределение характеристик изображения на некоторой декартовой координатной сетке. В этом случае изображение строится из множества точек и имеет структуру растра. Основным элементом растрового представления изображения является пиксел (сокращение от словосочетания «picture elements» - элементы изображения), имеющий координаты в растровой системе координат и некоторые атрибуты (цвет, яркость, прозрачность и т.п.). Число пикселей по координатам X и Y (по горизонтали и вертикали) задает разрешение (размерность) представления изображения. Цвет пиксела задается глубиной – количеством битов, необходимым для задания любого цвета.

Растровые изображения, в зависимости от методов задания цвета пиксела и свойств исходного изображения подразделяются на:

Бинарные

Полутоновые

Палитровые

Полноцветные

В бинарном представлении цвет пиксела может быть либо белым, либо черным и кодируется одним битом. Изображение представляет собой матрицу. Каждый элемент I (i , j ) этой матрицы имеет значение либо 0 либо 1, где i - номер строки, а - номерj столбца элемента, соответствующего заданному пикселю (рис. 1).

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

– задает его яркостьI (i , j ) (рис. 2).

Палитровые изображения описываются двумя матрицами (рис. 3). Одна хранит значения индексов, которые задают обращение к строке матрицы палитр. Матрица палитр это цветовая карта. Она содержит 3 группы столбцов – соответствующих красному «R», зеленому «G» и синему «B» цветам. Они и задают цвет соответствующего пиксела.

Палитра это матрица размерностью Nc 3 , где Nc - количество цветов.

Алгоритмы предварительной обработки изображений

Полноцветные изображения – строятся в формате RGB и представляют собой три матрицы R (i , j ), G (i , j ), B (i , j ) . Соответствующие элементы каждой матрицы содержат значения интенсивностей красного, зеленого и синего цветов для пиксела задаваемого индексами матриц. Таким образом полноцветное изображение не имеет цветовой карты и цвет каждого пиксела представляется тремя числами, взятыми из соответствующих матриц (рис. 4).

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

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

Для полноцветных изображений одним из параметров является максимальное количество цветов, которое может быть представлено в этом формате. Наиболее часто используются изображения, имеющие 16, 256, 65536 (High Color) и 10.7 миллиона (True Color) цветов.

Алгоритмы предварительной обработки изображений

0 0 0 0 1 1 1 0 0

120 122 125 128 115 117 118

1 0 0 0 1 1 1 1 0

119 121 124 125 128 130 133

1 1 0 0 1 1 0 0 1

122 122 124 123 127 126 128

120 121 123 125 127 125 126

1 1 1 0 1 1 0 0 0

118 110 109 108 108 109 110

0 0 1 0 0 1 0 0 1

Алгоритмы предварительной обработки изображений

Матрица индексов

31 15 03 09

Матрица палитры

Алгоритмы предварительной обработки изображений

Полноцветное изображение может быть представлено не только в формате RGB, но и с помощью других цветовых систем.

В системе HSB цвет представляется следующими цветовыми характеристиками: Hue – цветовой тон;

Saturation – насыщенность; Brightness – яркость.

Считается, что эта цветовая система соответствует особенностям человеческого восприятия цвета.

В системе LAB цвет рассматривается как совокупность яркости (lightness) и двух независимых значений цветности, которые и определяют истинный цвет пиксела. Цветность A – цветовая составляющая выбирается в диапазоне от пурпурного до зеленого. Цветность B - вторая цветовая составляющая выбирается из диапазона от желтого до голубого.

Существуют и другие системы представления цвета. Естественно, что все они связаны и по одному представлению может быть получено другое. Многообразие цветовых систем обусловлено, решаемыми с их помощью задачами. Например цветокоррекцию удобнее выполнят в системе LAB, воспроизводить изображение на экране монитора в системе RGB, печатать лучше,

Алгоритмы предварительной обработки изображений

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

Классификация алгоритмов предварительной обработки

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

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

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

Алгоритмы выполняющие геометрические операции с изображение называются алгоритмами геометрической обработки . К ним относятся:

Алгоритмы предварительной обработки изображений

Кадрирование изображение – выделение из исходного изображения некоторой части прямоугольной формы;

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

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

Алгоритмы выполняющие преобразования из одной цветовой системы в другую называются алгоритмами цветопреобразования . К ним относятся также алгоритмы преобразования цветных изображений в полутоновые и алгоритмы бинаризации, переводящие исходное изображение в бинарное.

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

Алгоритмы предварительной обработки изображений

Алгоритмы пространственной фильтрации

Пространственная фильтрация изображения в математическом виде представляет собой дискретную свертку дискретного изображения с некоторой импульсной характеристикой пространственного фильтра

If (i, j)

Im(i m , j n )h (m , n ), где:

m N11 n N21

Im, If матрицы исходного и отфильтрованного изображений, h матрица импульсной характеристики фильтра,

N 11 , N 21 нижняя и верхняя границы столбцов импульсной характеристики, N 12 , N 22 левая и правая границы рядов импульсной характеристики.

Матрица импульсной характеристики может быть получена при расчете пространственного фильтра исходя из заданных параметров. Методам расчета пространственных фильтров посвящено большое количество литературы посвященной цифровой фильтрации, например . Для практических расчетов можно использовать стандартные математические пакеты, например в состав системы “MATLAB” входит система расчета фильтров “Image Filter Design”.

Отметим, что фильтрацию можно проводить и в частотной области. В этом

Алгоритмы предварительной обработки изображений

случае порядок фильтрации следующий:

Перевести изображение из пространственной области в частотную, используя двумерное дискретное преобразование Фурье

Осуществить поэлементное умножение частотной матрицы изображения на частотную матрицу фильтра

Полученный результат преобразовать в пространственную область, используя обратное двумерное дискретное преобразование Фурье.

Im(x , y )

Im(f x , f y )

If (f x , f y ) Im(f x , f y ) H (f x , f y )

If (fx , f y )

If (x, y).

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

Loading...Loading...