8. Обработка и формирование графических файлов

 8.1. Работа с цветами и полутонами

8.1.2. Палитры и оптимизация палитр

 

 

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

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

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

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

Другое решение проблемы – это метод квантования цветов медианным сечением. Цветовое пространство рассматривается как трехмерное куб. Каждая ось куба отвечает одному с трех основных цветов: красному, зеленому или синему (рассмотрим для примера случай, когда используют 256 цветов). Каждая с трех сторон разбивается на 255 равных частей, Распределения на осях нумеруются от 0 до 255, причем большее значение отвечает большей интенсивности цвета. Точки внутри куба, которые отвечают цветам, отмечаются так же, как точки трехмерного графика, если бы были заданные x, y и z координаты точки. Например, если значение красной, зеленой и синей компонентов есть 128, 64 и 192 соответственно, то необходимо отложить на оси К128, на оси З64, на оси С192 и получить точку внутри куба, которая отвечает данному цвету. Черный цвет с компонентами 0, 0, 0, попадет на одну вершину куба, а белый – с компонентами 255, 255, 255, на другую, диагонально противоположную вершину. Если отметить точки внутри куба, которые отвечают цветам пикселов в обычном полноцветном изображении, то оказывается, что точки неравномерно расположены по всему кубу. Очевидна тенденция группирования точек в отдельных регионах.   

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

Метод квантования цветов медианным сечением.

Метод квантования цветов с помощью медианного сечения применяется при выборе 256 цветов, чтобы представить полноцветное изображение, содержащее несколько тысяч цветов. Чтобы понять как работает метод медианного сечения,  представим цветовое пространство как куб. Каждая ось соответствует одному из трех основных цветов и деления на оси нумеруются от 0 до 255.  

Первый шаг состоит в отсечении "краёв" куба, которые не содержат пикселов. К примеру, если у всех пикселов значения красной компоненты не меньше, чем 8 и не больше, чем 250, то отбрасываются части куба от К=0 до К=7 и от К=251 до К=255. 

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

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

Медианное сечение повторно применяется для того, чтобы разделить куб на 8, 16, 32, 64, 128 и 256 параллелепипедов. Они содержат примерно одно и то же количество пикселов и их объемы обратно пропорциональны плотностям пикселов.  

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

Контрольные  вопросы.

1.  Что такое палитра ?  

2.  В чем состоит оптимизация палитры ?  

3.  Дайте характеристику метода квантования цветов медианным сечением.

     Содержание