Позиции черных элементов на рис. 10.53, а были выбраны сколь возможно «нестандартными», чтобы избежать на изображении полос или других искажений. Если, например, для уровня 2 выбрать один из узоров, приведенных на рис. 10.53, б, то в некоторых местах изображения могут возникнуть горизонтальные или вертикальные полосы.

На рис. 10.54, а показан пример полутонового изображения размером 872 на 599, а на рис. 10.54, б - двухуровневое изображение размером 1744 х 1198, в котором применено структурирование размером

Пример использования структурирования размером два на два

Рис. 10.54. Пример использования структурирования размером два на два: а) полутоновое изображение; б) структурированное на двухуровневом дисплее

Средства для растровой графики

два на два. На нем ясно видны пять четко различимых уровней серого цвета. Для обеспечения большего количества градаций серого можно увеличить размеры клеток. На рис. 10.55 показана структура с клетками три на три, что позволяет добиться 10 оттенков серого цвета. В общем случае клетки из нулей и единиц размером и на и могут обеспечить (и2 + 1) оттенков серого. (Почему?) Структурирование чаще всего применяется тогда, когда исходное изображение обладает меньшим разрешением, чем то, которое способно обеспечить используемое дисплейное устройство.

Структуры размером три на три

Рис. 10.55. Структуры размером три на три

10.9.1. Упорядоченное размытие Часто мы не можем позволить себе роскошь использовать несколько пикселов дисплея для имитации одного серого пиксела большего размера. Например, нам может понадобиться отобразить картинку размером 100 на 100 пикселов, используя только 100 на 100 двухуровневых пикселов на дисплее. Как же в таком случае нам разместить черные и белые пикселы так, чтобы это изображение воспринималось глазом как многоуровневое? Иначе говоря, каков наилучший способ выбора нулевого или единичного пиксела и насколько при этом изображение будет похоже на свой оригинал?

Наиболее простым методом выбора значения пиксела является установление порогов (thresholding). Для каждого пиксела мы определяем пороговое значение"opengl1_741.html">⇐ Предыдущая| |Следующая ⇒