1 Дисциплина: Методы и средства распознавания образов и визуализации Тема 1: Обработка изображений
2 Преобразование яркости и контраста. Преобразование яркости имеет большое значение в обработке цифровых изображений. С его помощью можно исправлять ошибки экспозиции, выделять темные, либо светлые области изображения. Рассмотрим несколько определений понятия "яркость". Согласно колориметрическому определению [G. Wyszecki, W. S. Stiles, Color Science. Concepts and Methods, Quantitative Data and Formulae, Second Edition, John Wiley & Sons, 2000] яркость – некоторая характеристика зрительного восприятия. Такое определение не годится для обработки цифровых изображений.
3 Преобразование яркости и контраста. Одной из разновидностей YUV является широко используемая в современном программном обеспечении цветовая координатная система YCbCr. Например, в JPEG сжатии применяется следующая координатная система [ где R, G, B – sRGB координаты.
4 Преобразование яркости и контраста. Еще одной широко используемой величиной является светлота канал в цветовой координатной системе CIE L*a*b* (и других ей подобных цветовых координатных системах, например, PCS Lab [ICC.1: , Image technology colour management - Architecture, profile format, and data structures, International Color Consortium. Hunter Lab и т. д.). В различных RGB пространствах для расчета яркости часто используется формула однако такое определение не очень хорошо соответствует особенностям человеческого зрения.
5 Преобразование яркости и контраста. Для описания телевизионного алгоритма изменения контраста введем ряд обозначений. Яркость каждого пикселя представляется в виде суммы где - YCbCr яркость пикселя в точке (x,y), - средняя яркость по всему изображению: При изменении контраста с (положительным) множителем k, яркость изменяется по формуле
6 Преобразование яркости и контраста. В современных графических пакетах при редактировании изображений в цветовой координатной системе RGB применяется следующая модификация телевизионного алгоритма. Сначала, следуя телевизионному алгоритму, вычисляется средняя яркость. Потом для каждого пикселя (x, y) изображения для каждой из цветовых компонент R, G и B выполняется следующее преобразование: где С – одно из R, G, B. Т.е., для каждой цветовой компоненты R, G, и B вычисляется ее отклонение от среднего значения яркости, и это отклонение умножается на коэффициент усиления (ослабления) контраста.
7 Преобразование яркости и контраста.
8
9 Нахождение и построение гистограмм Гистограмма растрового изображения это график распределения полутонов изображения, в котором по горизонтальной оси представлена яркость, а по вертикали относительное число пикселей с данным значением яркости. Гистограмма изображения (иногда: график уровней или просто уровни) гистограмма уровней насыщенности изображения (суммарная, или разделённая по цветовым каналам).
10 Нахождение и построение гистограмм Гистограмма изображения позволяет оценить количество и разнообразие оттенков изображения, а также общий уровень яркости изображения. Например, недоэкспонированное изображение будет иметь пик в области малых цветов и иметь спад (или полное отсутствие уровней) в области ярких цветов, переэкспонированное наоборот.
11 Нахождение и построение гистограмм Изображение с недостаточным динамическим диапазоном будет иметь узкий всплеск яркостей. Считается, что идеальной формой гистограммы изображения является пологая гауссиана, в которой мало совсем тёмных и совсем ярких цветов, а по мере приближения к средним цветам, их количество увеличивается.
12 Нахождение и построение гистограмм Для построение гистограммы растрового изображения воспользуемся функцией – imhist из библиотеки Image Processing Toolbox MATLAB. Функции imhist(I, n) и imhist(BW, n) в текущем окне строят гистограммы яркостей пикселов соответственно полутонового и бинарного изображений.
13 Нахождение и построение гистограмм c=imread('pic01.jpg'); [M,N,K]=size(c); % M - число строк, N - число столбцов M N K imshow(c) I=rgb2gray(c); imhist(I)
14 Сжатие изображений. Вейвлеты По существу, информациия о растровом изображении представляется в виде двумерной матрицы, элементами которой являются числа. В простейшем случае эти числа соответствуют яркостям пикселей. Кроме этого могут использоваться так называемые индексированные цвета. В этом случае числа матрицы указывают не яркость пикселей, а ячейку в специальной таблице (палитре) цветов, которая также хранится в файле.
15 Сжатие изображений. Вейвлеты Сжатие (компрессия) имеет очень большое значение при создании, хранении и передаче графических, видео - и аудио - файлов. Особенно в сети Интернет. Сжатые данные должны содержать только самую существенную информациию, здесь не должно быть места избыточным данным. Алгоритмы сжатия, используемые при создании файлов, делятся на два класса: Сжатие без потерь – по сжатым данным можно полностью восстановить исходную информациию. Сжатие с частичной потерей информациии – если допускается неточное восстановление сжатых данных.
16 Экономное представление информации Рассмотрим простейший пример, демонстрирующий более экономное представление информациии. Пусть исходная информациия представлена в виде последовательности букв: ААААААБББВВВВВААААА. Ее можно представить следующим образом А5Б3В4А5, используя символ буквы и число ее повторений в последовательности. При этом получим уменьшение объема данных в 2,7 раз. Алгоритм декодирования этой последовательности очевиден. Если изображение содержит большие области одинаковых пикселей, будет получен хороший результат сжатия. ААААААБББВВВВВАААААА5Б3В4А5
17 Сжатие изображений. Вейвлеты Идея вейвлет-сжатия заключается в следующем. Сначала к изображению применяется вейвлет-преобразование, а затем из данных преобразованного изображения удаляются некоторые коэффициенты. К оставшимся коэффициентам может быть применено кодирование.
18 Сжатие изображений. Вейвлеты Сжатое изображение восстанавливается путем декодирования коэффициентов, если это необходимо, и применением обратного преобразования к результату. Предполагается, что в процессе удаления части коэффициентов преобразования теряется не слишком много информациии.
19 Вейвлеты. Усреднение и детализация Рассмотрим изображение, состоящее из двух точек {x1, x2}. Эти значения могут быть заменены средним значением a и полу разностью d: a = (x1 + x2)/2 d = (x1 - x2)/2 Заметим, что {x1, x2} можно выразить через {a, d}: x1 = a + d x2 = a – d Рассмотрим массив чисел (1, 2, 3, 4, 5, 6, 7, 8). Сначала вычислим четыре средние величины (1 + 2)/2 = 3/2, (3 + 4)/2 = 7/2, (5 + 6)/2 = 11/2 и (7 + 8)/2 = 15/2. Вычислим четыре полуразности (1 – 2)/2 = -1/2, (3 – 4)/2= -1/2, (5 – 6)/2 = -1/2 и (7 – 8)/2 = -1/2, которые будем называть коэффициентами деталей.
20 Вейвлеты. Полусуммы и полуразности Полусуммы можно рассматривать как крупномасштабное представление исходного образа, а полуразности – числа которые необходимы для восстановления мелких подробностей или поправок. Массив (3/2, 7/2, 11/2, 15/2, -1/2, -1/2, -1/2, -1/2), состоящий из четырех полусумм и четырех полу разностей, можно использовать для восстановления исходного массива чисел. При таком представлении данных информациия не добавляется и не теряется. Но если значения x1 и x2 не оказываются близкими друг другу, то в этом случае полуразность d мала, и может быть заменена на нули. Тем самым мы получаем сжатие с потерей части информациии.
21 Вейвлет преобразование Хаара Повторим процедуру нахождения полусумм и полу разностей к четырем первым (крупным) компонентам нашего нового массива. Они преобразуются в два средних и в две полуразности. Остальные четыре компонента оставим без изменений. Получим массив (10/4, 26/4, -4/4, - 4/4, -1/2, -1/2, -1/2, -1/2). Следующая и последняя итерация нашего процесса преобразует первые две компоненты этого массива в одно среднее (которое, на самом деле, равно среднему значению всех 8 элементов исходного массива) и одну полуразность. В итоге получим массив чисел (36/8, - 16/8, -4/4, -4/4, -1/2, -1/2, -1/2, -1/2), который называется вейвлет преобразованием Хаара исходного массива данных.
22 Оценка сложности преобразования Для нашего примера требуется = 14 операций (сложений и вычитаний). Это число можно выразить как 14 = 2(8 – 1). В общем случае, пусть имеется N = 2n элементов массива. На первой итерации потребуется 2n операций, на второй – 2n-1 операций, и так далее до последней итерации, в которой будет 2n-(n-1) = 21 операции. Значит, суммарное число операций равно Таким образом для совершения преобразования Хаара массива из N элементов потребуется совершить 2(N - 1) арифметических операций.
23 Стандартное разложение Стандартное разложение начинается вычислением вейвлет преобразований всех строк изображения. К каждой строке применяются все итерации процесса, до тех пор пока, самый левый элемент каждой строки не станет равен среднему значению чисел этой строки, а все остальные элементы будут равны взвешенным разностям. Получится матрица в первом столбце которой находится среднее столбцов исходного массива. После этого выполняется вейвлет преобразование для каждого столбца.
24 Пирамидальное разложение Пирамидальное разложение вычисляет вейвлет преобразование, применяя итерации поочередно к строкам и столбцам. На первом шаге вычисляются полусуммы и полуразности для всех строк (только одна итерация, а не все вейвлет преобразование). Это действие образует полусуммы в левой половине и полуразности – в правой половине. На втором шаге вычисляются полусуммы и полуразности для всех столбцов получившейся матрицы.
25 Обработка цветных изображений При сжатии изображений обычно используют другое разложение, называемое YCrCb. Y – это набор яркостей, который основывается по большей части на зелёном цвете, лучше всего воспринимаемом человеческим глазом. Наборы Cr и Cb хранят ключи для восстановления красного и синего цвета из Y. Использование разложения YCrCb позволяет сильнее сжимать изображение при меньших потерях качества, так как главная информациия для человека в картинке – это именно информациия о яркости отдельных точек. Составляющие Cr и Cb хорошо сжимаются, не внося сильных ухудшений в качество картинки, сами по себе они менее чёткие, чем Y
26 Литература 1. Агуров А.В. C#. Сборник рецептов. – СПб.: БХВ-Петербург, – 432 с.: ил. 2. Павловская Т.А. С# Программирование на языке высокого уровня. Учебний для вузов – СПб.: Питер, – 432 с.: ил. 3. Поршнев С.В. MATLAB 7. Основы работы и программирования. Учебник. – М.: Бином. Лаборатория знаний, – 319 с. 4.Гонсалес, Рафаэл. Цифровая обработка изображений в среде MATLAB / Р. Гонсалес, Р. Вудс, С. Л. Эддинс; пер. с англ. В. В. Чепыжова. М.: Техносфера, 2006.