Алгоритмы повышения количества оттенков (псевдотонирования)
11.1. Актуальность задачи аппроксимации полутонового изображения двухуровневым
Обычно изображения, хранимые в цифровом виде, представляются как массив из значений атрибутов; при этом для представления полноцветных фотографий используется диапазон из 256 значений на каждый атрибут. Но часто количество выводимых отображающим устройством оттенков ограничено всего несколькими значениями интенсивности. Такие устройства вовсе не редки: черно-белые и цветные принтеры, информационные дисплеи, промышленное полиграфическое оборудование и т. д.
Однако подобные устройства используются для печати не только текста и простой графической информации (таблицы, диаграммы), но и полноцветных фотографий. Соответственно, требуется предложить методы, позволяющие использовать устройства, выводящие ограниченное количество оттенков, для печати изображений, состоящих из большего количества значений атрибутов. Далее, предполагается, что задано 8-битное изображение и возможно использовать для псевдотонирования только два значения атрибутов - черный и белый цвета.
Основная идея состоит в том, что если правильно чередовать точки (для растра это будут пиксели), принимающие ограниченное количество значений атрибутов, начиная с определенного расстояния (которое зависит от пространственного разрешения устройства и конкретного человека), человек перестает различать точки по отдельности. Вместо этого возникнет картина усреднения значений атрибутов и, соответственно, иллюзия большого количества оттенков. Для примера можно рассмотреть сильно увеличенный газетный снимок (см. рис. 11.1).
Существует подход, когда пространственное разрешение приносят в жертву визуальному [45]. Например, если число выводимых оттенков равно 2, то область размером 2x2 пикселя может аппроксимировать 5 значений атрибутов (см. рис. 11.2). Общее правило для черно-белых устройств такое: область пикселей размером nxn позволяет аппроксимировать n2+1 значений атрибутов. Однако потери в пространственном разрешении часто недопустимы, плюс к тому, чтобы добиться приемлемого количества оттенков, придется уменьшить пространственное разрешение в 7-10 раз, что дает 50-101 оттенков серого.
Методы, не изменяющие пространственного разрешения, приведены в этой лекции ниже.
11.2. Простой алгоритм аппроксимации полутонов
Самый простой алгоритм - это усечение по порогу (см. алгоритм 11.1). Порог обычно выбирается равным половине максимального значения интенсивности.
foreach( pixel in 8bit_picture ) // для каждого пикселя { // Threshold - порог, I(pixel) - атрибут пикселя if( I(pixel) > Threshold ) I(pixel) = Белый; else I(pixel) = Черный; }Листинг 11.1. Алгоритм псевдотонирования - усечение по порогу
Как видно из рис. 11.4, метод имеет явно выраженный недостаток - теряется слишком много деталей.