Научная статья на тему 'Алгоритмы цветоделения'

Алгоритмы цветоделения Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
133
15
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ЦВЕТОДЕЛЕНИЕ / ПРЕДСТАВЛЕНИЯ ЦВЕТА / АЛГОРИТМЫ ПРЕОБРАЗОВАНИЯ ФОРМАТОВ

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

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

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

Текст научной работы на тему «Алгоритмы цветоделения»

Вестник Сыктывкарского университета.

Сер.1. Вып. 6. 2006

УДК 526.31

АЛГОРИТМЫ ЦВЕТОДЕЛЕНИЯ В.Е. Езовских

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

Довольно широко распространены изображения в формате ТгаеСо-1ог, В нем цвет каждого пикселя задается 24 битами, причем интенсивность каждого основного цвета (Д - красный, О - зеленый, В - синий) меняется в пределах от 0 до 255. Задача цветоделения возникает в тех случаях, когда используется меньшая глубина цвета или меньшее количество цветов (формат С1Р, печать ограниченным набором красок), а также при печати изображений в формате В\У или градациях серого.

1. Цветоделение для представления изображения в градациях серого

Существует стандарт СС1П601 [1], задающий соотношения для переходов между цветовыми системами 1ЮВ и УСЬСг:

ПвВ го УСЬСг

У = 0.2990Д + 0.58700 + 0.1140В СЬ = -0.1687Д - 0.33130 + 0.5000В Сг = 0.5000Д - 0.41870 - 0.0813В

усьсг го пев

Д = У + 1.4020Сг О = У - 0.3441СЬ - 0.7141Сг В = У + 1.7720СЬ

© Езовских В.Е., 2006.

Найдем NR, N0, N.3, такие, что для некоторой степени р числа два (степень двойки выбираем для того, чтобы избежать выполнения операций деления и свести вычисления к сдвигам) величины уг = NR/2Р, уд = NG|2p,yъ = N5/2Р приближают коэффициенты YR = 0.2990, Ус =

0.5870 и Ув = 0.1140, минимизируя при этом невязку

<1 = у/(Уг - Уй)2 + (Уд ~ ГаУ + (Уь - ¥ву.

Результаты вычислений приведены в таблице

p Nr Уг ng Уд NB Уь d

4 5 0.3125 9 0.5625 2 01250 1.5 * 10~2

5 10 0.3125 19 0.5938 4 0.1250 9.3 * 10~3

6 19 0.2969 38 0.5938 7 0.1094 4.2 * 10~3

7 38 0.2969 75 0.5859 15 0.1172 1.5 * 10~3

8 77 0.3008 150 0.5859 29 0.1133 1.1 * 10~3

9 153 0.2988 301 0.5879 58 0.1133 5.7* 10~4

10 306 0.2988 601 0.5869 117 0.1143 1.6* 10-4

11 612 0.2988 1202 0.5869 233 0.1138 1.5 * 10~4

12 1225 0.2991 2404 0.5870 467 0.1140 5.6 * 10~5

13 2449 0.2990 4809 0.5870 934 0.1140 3.2 * 10~5

14 4899 0.2990 9617 0.5870 1868 0.1140 1.5 * 10~5

15 9798 0.2990 19235 0.5870 3736 0.1140 9.2 * 10~6

16 19595 0.2990 38470 0.5870 7471 0.1140 3.4* 10-6

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

Y = (77R +150G + 29B) mod 256,

Y = (19595R + 38470G + 7471B) mod 65536.

Погрешность первой из них — 1.1 * 10-3, второй — 3.4 * 10-6, При вычислениях по первой формуле используются двухбайтовые переменные типа word с выделением старшего байта, для второй — четырехбайтовые переменные типа cardinal с выделением третьего байта. Для точного округления достаточен анализ старшего бита (знак) одного из байтов результата.

Можно избежать умножений, если предварительно вычислить 3*256=768 произведений и заполнить ими массивы Cr, Cg и Cb, В этом случае вычисления проводятся по формуле

Y = (Cr[R] + Cg[G] + Cb[B]) mod 256(65536).

Алгоритмы цветоделения

181

2. Равномерное цветоделение

Графический режим TrueColor использует 167777216 цветов при глубине цвета (количество бит для кодирования компоненты цвета) восемь. Некоторые графические режимы VGA и SVGA, а также графические форматы (например — GIF) используют иное количество цветов и другую глубину цвета. Так VGA режимы 13 и 13Х используют 256 цветов при глубине цвета шесть.

Для цветоделения при преобразовании TrueColor to 13Х можно использовать следующий алгоритм. Найдем N. такое, что N3 < 256, Очевидно, что максимальное значение N = 6 (63 = 216), так что уста-

новим палитру с шестью градациями каждого основного цвета, учитывая его глубину. Можно использовать алгоритм Брезенхейма [1] для линейной интерполяции из точки плоскости (0,0) в точку (5,63) при заполнении массивов Ir[6], Ig[6], Ib [6], Используем заполнение палитры со смещением Off = 16, не изменяя основные VGA цвета, а именно для атрибута A в диапазо не [16, 231] записываем следующие значения компонент цвета

Ra = Ir[(A - Off) mod 6]

Ga = IG[((A — Off) div 6) mod 6]

BA = Ib[((A — Off) div 36) mod 6].

Для уменьшения объема вычислений заполним вспомогательный массив W [64] номерами градаций цвета от 0 до 5, для чего можно воспользоваться алгоритмом Брезенхейма, Если в исходном изображении TrueColor имелась точка с цветом (R,G,B), то ее атрибут в VGA13X вычисляется как

f = Off + W [R shr 2] + 6W [G shr 2] + 36 W [B shr 2].

Заметим, что меняя характер заполнения массивов Ir, Ig, Ib, W. можно осуществить цветовую и 7-коррекцию,

3. Адаптивное цветоделение

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

N

(Ri, Gi, Bi) (i = 1... N), Изобразим все N точек в цветовом простран-

стве RGB, Построим окаймляющий прямоугольный параллелепипед,

R

нате R находим медиану Mr и разбиваем все множество исходных точек

на два со значениями Ri < Mr и Ri > Mr. причем число точек в этих множествах отличается не более чем на единицу. Для этих множеств точек находим окаймляющие параллелепипеды, повторяем процесс до тех пор, пока число параллелепипедов не станет равным требуемому числу цветов, например - 256, Всем точкам, которые попадают внутрь определенного параллелепипеда, присваивается цвет, соответствующий геометрическому центру параллелепипеда.

Отметим, что этот алгоритм требует большого объема оперативной памяти, В то же время некоторые особенности исходных данных позволяют написать довольно эффективную его реализацию. Основой служит вспомогательный байтовый массив W[N], В который записывается номер параллелепипеда, в который попадает точка. Имеется достаточное число массивов, в которые записывается число появления среди Ri,G — R,i, B-i определенного значения в диапазоне 0 ... 255,

W

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

Литература

1, Роджерс Дж. Алгоритмические основы машинной графики. М.:

1985.

Summary

Ezovskih V.E. Color sampling algorythms

Three algorithms of color sampling suitable for color conversion are considered. Some practical features of realization are briefly discussed.

Сыктывкарский университет

Поступила 11.10.2005

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