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

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

CC BY
1329
781
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ПЗС–МАТРИЦА / ГИСТОГРАММА / ПРЕОБРАЗОВАНИЕ ЯРКОСТИ / ЭКВАЛИЗАЦИЯ / ГИСТОГРАММНАЯ СПЕЦИФИКАЦИЯ / МЕДИАННАЯ ФИЛЬТРАЦИЯ / ФИЛЬТР – ЛАПЛАСИАН / ГИСТОГРАММНАЯ SPECIFICATION / CCD-MATRIX / HISTOGRAM / BRIGHTNESS TRANSFORMATION / EQUALIZATION / THE MEDIAN FILTERING / FILTER-LAPLACIAN

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Шестов Руслан Владимирович

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

MODERN METHODS OF CONVERSION OF BRIGHTNESS AND SPATIAL FILTERING OF DIGITAL IMAGES

The article represents a description of the most common methods of digital image processing in the spatial domain, and also provides examples of the use of the foregoing methods

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

УДК: 621.397 ББК: 32.84

Шестов Р.В.

СОВРЕМЕННЫЕ МЕТОДЫ ПРЕОБРАЗОВАНИЯ ЯРКОСТИ И ПРОСТРАНСТВЕННОЙ ФИЛЬТРАЦИИ ЦИФРОВЫХ ИЗОБРАЖЕНИЙ

Shestov P. V.

MODERN METHODS OF CONVERSION OF BRIGHTNESS AND SPATIAL FILTERING OF DIGITAL IMAGES

Ключевые слова: ПЗС-матрица, гистограмма, преобразование яркости, эквализация, гистограммная спецификация, медианная фильтрация, фильтр - лапласиан.

Keywords: CCD-matrix, histogram, brightness transformation, equalization, гистограммная specification, the median filtering, filter-laplacian.

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

Abstract: the article represents a description of the most common methods of digital image processing in the spatial domain, and also provides examples of the use of the foregoing methods

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

Основными сложностями при формировании изображения оптической системой являются:

- невозможность соблюдения одинакового уровня освещенности объекта или подстилающей поверхности;

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

- возникновение различных аберраций при съемке или дистанционном зондировании;

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

Помимо искажений, возникающих при формировании изображения оптической системой

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

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

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

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

- преобразование яркости изображения;

- пространственная фильтрация.

На рисунке 1 представлена краткая классификация существующих методов обработки изображения в пространственной области.

Рисунок 1 - Краткая классификация наиболее распространенных методов обработки цифровых изображений в пространственной области

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

я( х у) = ти (х у)]

(1)

где:

/(х,у) - входное изображение;

g(x,y) - выходное (обработанное) изображение;

Т - некоторый оператор над /, который определен в некоторой окрестности точки с координатами (х,у).

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

Рисунок 2 - Программный код обработчика изображения

Программный код, представленный на рисунке 2, разработан в интегрированной среде разработки программного обеспечения Бе1рЫ 7 и содержит цикл перебора пикселей выведенного на форму 1ш§Доаё изображения в формате йу. Действие цикла начинается с левого верхнего угла открытого изображения, по мере перебора пикселей открытого изображения осуществляется процедура присваивания и накопления пикселей с координатами (х,у) в двумерном массиве 1ш§Лгг [у,х], элементы которого затем выводятся на форму 1ша§еБшр при помощи процедуры ЬоаёОп1ша§еБМР и могут быть непосредственно обработаны.

Одним из наиболее широко используемых способов обработки цифрового изображения в пространственной области является преобразование яркости изображения. Чаще всего для оценки распределения яркости изображения используется гистограмма. Гистограммой цифрового изображения, число возможных уровней яркости которого равно Ь, лежащих в диапазоне [0,0], называется дискретная функция И( гк ) = щ , где гк - это уровень яркости из интервала [0,0], а щ- число пикселов изображения, уровень яркости которых равен Гк [1]. В случае возможности непосредственной работы с пикселями изображения для построения гистограммы разработан программный код, представленный на рисунке 3.

E TFormi e-D ’rocedures

□ Variables/Constants В Q] Uses

begin // Сведение всего ALLhnag'e в массив Tarr[a] for a:=0 to 255 do Iarr [a] := 0; for y:= 0 to ImageHeight-1 do for x: = 0 to ImageUidth-1 do

inc(Iarr[AllImage[y, x] shr 2]); max:= Iarr[ 0 ]; // Поиск наибольшего количества пикселей по всему изображению for а:=1 to 255 do

if Iarr[а] > max then max:= Iarr[a];

AllZmage

Forml.Edit7.Text:=IntToStr( max ); // Вывод наибольшего количества пикселей на MaxElem:= max;

VisImg:=Forml.Gistogramma.Height;// Определение высоты изображения Gist Forml.Edit9.Text:= IntToStr( Vislmg );

mashtab:® VisImg/MaxElem; //Определение множителя для построения гистограмш Forml.Labell6.Caption:=FloatToStr( mashtafo );// Вывод множителя на экран // Обработка массива Iarr[а] для вывода на Gistograimta. Canvas for а:=0 to 255 do larrl[a]:* Round( mashtato*Iarr[a] );

{ // Поиск наибольшего элемента в новом массиве Iarrl[a]

так:=1;

for а:=2 to 255 do

if X<arrl [ a]>larrl [так] then так:-а/

Forml.Label 18.Caption:=F1oatToStr(larrl[так]); )

//Рисование гистограммы на канвасе //Создание фордии

with Forml. Gistogramma. Canvas do // Описание условий (рисуем при помощи Реп черным цветом) begin Pen.Color:=сIB lack;

Brush.Color:=clBlack; end;

//Прорисовка гистогр‘Зммы. Начало кода with Forml.Gistogramma.Canvas do for x:=0 to 255 do begin

HoveTo(x, Vislmg-l);

LineTo(x, Vislmg-l- larrl[x] ); end;

Я

Gistogrammc Origin: 0, 0;

\Code/Diagram/

І статьяЗ - Microsoft...

І Статья№2^ - Micro... "J Delphi 7

Рисунок 3 - Программный код, реализующий построение гистограммы

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

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

Основной командой для построения диаграммы в математическом пакете MATLAB является команда Imhist, имеющая следующий синтаксис:

G = imhist (f b),

где:

f - входное изображение;

G - гистограмма входного изображения;

b - число корзин используемых при формировании гистограммы, в случае если число корзин не указывается то оно принимается равным 256.

Результат действия команды imhist, а также тестируемое изображение представлены на рисунках 5 и 6.

Помимо команды imhist, для построения гистограмм в пакете MATLAB используются команды bar, stem, plot.

Т& MBV-reader

Q@®

J Название открытого Файла: <RDK1_1 sd_05259_1 oep_1 zk_Z1 .mbv>

Полученная

гистограмма

J

Состояние загрузки

Высота гистограммы

[200

Коэффициент масштаба 0,000286733007126749

Позиция курсора

X [э

Y |37232

Сдвиг вправо при загрузке изображения [2 J] Fielo

Точная подгонка изображения |35000 Тochno

Н аибольшее количество пикселей Я ркость пикселя

|637513 [Г7Э

Рисунок 4 - Гистограмма изображения подстилающей поверхности

Рисунок 5 - Исходное тестируемое полутоновое изображение

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

Bar(horz, v, width)

где:

v - вектор-строка, график которого необходимо построить;

horz - вектор того же размера, что и вектор v, состоящий из приращений по горизонтальной шкале;

width - число между 0 и 1, в случае, если используется число 1, то столбики диаграммы соприкасаются, в случае использования 0 столбики диаграммы являются вертикальными линиями [1].

•i Fljuf* 14. 1 В©5<1

Ч М Ч» Im*i 7,-rvi™ *41

□ р U <S It А ^ ✓ Ыр О

о ж и;с то :-:и

Рисунок 6 - Гистограмма изображения, полученная при использовании команды Imhist

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Стеблевая диаграмма строится аналогично столбчатой диаграмме, ее синтаксис имеет следующий вид:

Stem(horz, v, ‘color line style marker’, ‘fill’),

где:

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

color_line_style_marker - указывает характеристики линий, из которых состоит диаграмма

[1].

Функция строит график по точкам, соединяя их отрезками прямых линий. Ниже представлен синтаксис команды функции построения диаграммы Plot:

Plot(horz, v, ‘color linestyle marker’).

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

Помимо построения диаграмм в математическом пакете MATLAB возможно проведение процедур эквализации и спецификации.

Суть операции эквализации заключается в распределении уровней яркости по всему интервалу [0,1]. Результатом операции эквализации является выходное изображение с увеличенным динамическим диапазоном уровней яркости, что означает увеличение контрастности выходного изображения. Эквализация гистограммы в пакете IPT реализована функцией histeq, имеющей следующий синтаксис:

G = histeqf, nlev),

где:

f - входное изображение;

nlev - число уровней интенсивности, установленное для выходного изображения.

Программный код операции эквализации и полученные результаты представлены на рисунках 7 и 8 соответственно.

Рисунок 7 - Программный код операции эквализации

в г

Рисунок 8 - Результат использования операции гистограммной эквализации: а - исходное изображение, б - изображение, полученное в результате гистограммной эквализации, в - гистограмма исходного изображения, г - гистограмма полученного изображения

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

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

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

G = histeq (f, hspec),

где:

G - выходное изображение;

hspec - заданная гистограмма (вектор - строка).

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

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

G = imfilterf, w, ‘опции ’),

где: f - входное изображение;

w - фильтрующая маска.

Функция imfilter пакета IPT среды MATLAB содержит довольно широкое количество опций, оказывающих существенное влияние на работу фильтра (таблица 1).

Таблица 1 - Опции, оказывающие существенное влияние на работу фильтра

Опции Описание

Мода фильтрации

‘corr’ Фильтрация делается методом корреляции Мода по умолчанию

‘conv’ Фильтрация производится методом свертки

Граничные опции

‘replicate’ Границы изображения расширяются значением P

‘symme- tric’ Размер изображения увеличивается повторением величин на его боковых границах

‘circular’ Размер изображения увеличивается периодическим повторением двумерной фильтрации

Опции размера

‘full’ Выход имеет те же размеры, что и расширенное входное изображение

‘same’ Выход имеет те же размеры, что и вход

Кроме того при использовании команды imfilter возможно указать тип используемого фильтра. В пакете IPT реализованы следующие типы фильтров:

- ‘average’ - прямоугольный усредняющий фильтр;

- ‘disk’ - круговой усредняющий фильтр;

- ‘gaussian’ - низкочастотный гауссов фильтр;

- ‘laplacian’ - фильтр Лапласа;

- ‘ log’ - Лаплас от гауссова фильтра;

- ‘motion’ - выдает фильтр, который будучи свернутым с изображением, приближает линейное изображение;

- ‘ prewitt’ - выдает маску Превитта, которая аппроксимирует вертикальный градиент;

- ‘sobel’ - выдает маску Собела, которая аппроксимирует вертикальный градиент;

- ‘unsharp’ - выдает маску нечеткого фильтра.

Рисунок 9 - Программный код, реализующий обработку исходного изображения фильтром Лапласа

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

2500

2000

1500

1000

1 1 I

0 0.2 0.4 0.Г б

6000

5000

4000

3000

2000

1000

0

о

0.2 0.4 0.6 O.f

Рисунок 10 - Результаты, полученные при использовании команды тАНет,

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

а

г

в

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

Однако, несмотря на все достоинства команды imfilter при работе с рядом изображений для получения наилучшего результата необходимо производить подбор параметров фильтра. В пакете IPT имеется довольно широкий комплекс фильтров, однако используем для примера описанный выше фильтр - лапласиан 3*3 c -4 в центре. Маска описываемого фильтра представляет собой квадрат, в центре которого находится значение -4 окруженное со всех сторон 1, такая маска используется при работе с фильтром - лапласианом по умолчанию, но в ряде случаев необходимо увеличивать или уменьшать контрастность обрабатываемого изображения. Для этого необходимо увеличивать или уменьшать центральное значение маски фильтра. С целью решения этой задачи следует задавать маску фильтра вручную в виде вектора - строки.

Довольно широкое распространение помимо линейных пространственных фильтров получили нелинейные, к коим относится медианный фильтр. Наиболее распространенные на сегодняшний день нелинейные фильтры генерируются в пакете IPT функцией ordfilt2, имеющей следующий синтаксис:

G = ordfilt2(f, order, domain),

где:

domain - матрица m*n, состоящая из нулей и единиц, которые обозначают позиции пикселов, участвующих в вычислениях;

order - номер элемента.

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

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

Ввиду широкого использования медианного фильтра в пакете IPT среды MATLAB реализована отдельная функция medfilt, которая и генерирует медианный фильтр:

G = medfilt2(f),

где:

С - полученное изображение;

/ - обрабатываемое изображение.

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

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

Рисунок 12 - а) исходное зашумленное изображение; б) изображение, обработанное медианным фильтром

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Гонсалес, Р., Вудс, Р., Эддинс, С. Цифровая обработка изображений в среде MATLAB. -М.: Техносфера, 2006. - 616 с.

2. Шредер, Г. Трайбер, Х. Техническая оптика - М., 2006 - 424 с.

3. Яне, Б. Цифровая обработка изображений. - М.: Техносфера, 2007. - 584 с.

4. Визильтер, Ю. В., Желтов, С.Ю., Князь, В.А., Ходарев, А.Н., Моржин, А.В. Обработка и анализ цифровых изображений с примерами на LabVIEW IMAQ Vision. - М.: ДМК Пресс, 2007.

- 464 с.

i Надоели баннеры? Вы всегда можете отключить рекламу.