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