Гонсалес Р., Вудс Р., Эддинс С. Цифровая обработка изображений в среде Matlab (2006) (1246139), страница 37
Текст из файла (страница 37)
225). Вершины куба бывают первичными (красная, зеленая и синяя) и вторична ми (голубая, пурпурная и желтая) цветами яркости. Иногда бывает необходимо рассмотреть цветовой куб с разных сторон. Для этого используется функция гЕЬсиЬе со следующим синтаксисом: гЕЬсиЬе(чх, чу, чх). Набрав после приглашения МАТ1,АВ команду гЕЬсиЬе(нх, ну, нг), можно увидеть на экране цветовой куб В.СВ из точки с координатами (чх, ну, чх). Полученное изображение можно сохранить на диске с помощью команды ргйпь, которая обсуждалась в 3 2.4.
Далее приводится программный код этой функции, который сам себя объясняет'. 1ипсп1оц гЕЬсиЬе(чх, чу, чх) '/ВСВССВЕ 01вр1аув ац ВСВ сиЬе оп ъйе МАТЮКАВ бевкпор. Х ВСВССВЕ(ЧХ, ЧЧ, ЧЕ) 61вр1аув ап ВСВ со1ог сиЬе, н1еией 1гош ро1п % (ЧХ, ЧЧ, ЧЕ). ЧЫЬЬ по 1приъ агйишецтв, ВСВСУВЕ ивен (10, 10, 4) Х ав ъЬе бе1аи1п чйечйпЕ соог61паъев.
То н1ен 1пц1ч1циа1 со1ог '/ р1апев, иве ъйе 1о11ои1пЕ ч1ен1пЕ соог61цаъев, иЬеге пЬе 11гвт '/ со1ог 1п ъЬе ве<1иепсе Ав ъйе с1овевь ъо ъйе н1еи1пЕ ах1в, апй пЬе Х опЬег со1огв аге ав веец 1гош пйап ах1в, ргосее61пЕ по ъЬе г1ЕЬь Функция ратай строит закрашенный многоугольник на плоскости, пользуясь заданными величинами/парами. См. дополнительную информацию об этой функции на справочной странице.
~~~208 Глаеа б. Обработано цветных паобраэкений Х т18ЬС (ог аЬоче), апб СЬеп шоч1пЕ с1оски1ве. Х Х % 0010Н РЖАВЕ ( чх, чу, чх) Х Х В1це-Мабепса-ЬПШе-Суап ( О, О, 10) '/ Вес[-Уе11ов-'вЬ1Се-Мабепса ( 10, О, 0) % Огееп-Суап-ВЬ1Се-Уе11оч ( О, 10, 0) % 81асК-Не«1-Мабепса-В1це ( О, -10, 0) Х 81асК-В1це-Сувп-Стева (-10, О, 0) Х В1асК-Веб-Уе11ов-6гееп ( О, О, -10) Х Вес цр рвхашесетв 1ог 1цпсСАоп рассЬ. чегСАсев шасг1х = [О 0 0;0 0 1;0 1 0;0 1 1;1 0 0;1 0 1,'1 1 0;1 1 1]; 1асев шаег1х = [1 б б 2;1 3 7 Б;1 2 4 3 2 4 8 б 3 7 8 4 5 6 8 7]; со1огв = чегСАсев шасг1х; % ТЬе огбег о1 СЬе сцЬе четСАсев иав ве1ессе«1 Со Ье СЬе ваше ав Х СЬе огбег о1 СЬе (В,О,В) со1огв (е.Е., (0,0,0) соггевроЫв Со % Ь1асК, (1,1,1) соггевропс(в Со иЬАСе, апб во оп.) Х Оепегасе НОВ сцЬе цв1пЕ 1цпсС1оп раесЬ.
раССЬ('ЧЕСС1СЕВ', ЧЕГС1СЕВ ШаСГ1Х, граСЕВ', ХаСЕВ ШаСГ1Х, грасеуегсехСОаса', со1огв, грасеСо1ог', '1псегр', 'ЕббеА1рЬа', 0) Х Вес цр ч1ев1п8 ро1пС. Н паг81п == 0 чх = 10; чу = 10; чх = 4; е1ве11 паг81п = 3 еггог('кгоп8 пцшЬег о1 1прцсв.') епб ах1в отт ч1е е ( [чх, чу, чх] ) ах1в ее[пате 6.1.2. Индексированные изображения Индексированное изобращсение имеет две компоненты: числовую матрицу данных Х и матрицу цеетповой карты шар. Матрица шар представляет собой массив размеров т х 3 класса боцЬ1е, в котором записаны вещественные числа с плавающей запятой из интервала [О, 1].
Длина т цветовой карты равна числу различных цветов на данном изображении. Каждая строка матрицы шаро обозначает красную, зеленую и синюю компоненту одного цвета. Индексированное изображение использует «прямое отображение» величин яркости (насыщенности, цветного тона) пикселов в значения цветовой карты. Цвет каждого пиксела определяется с »Еслв все тря столбца вар равны между собой, то цветовая карта превращается в карту градацвй серого цвета. « .П д « * б У«»» В 20~~9~ помощью соответствующего числа, стоящего в матрице Х, которое используется в виде указателя на шар. Если Х имеет класс бопЬ1е, то все его компоненты с величинами, меньшими или равными 1, указывают на первую строку шар, все компоненты с величинами между 1 и 2 включительно указывают на вторую строку и т.д.
Если Х принадлежит классу и1пе8 или п1пс16, то все его компоненты, равные О, указывают на первую строку шар, все компоненты, равные 1, указывают на вторую строку шар и т.д. Этот метод определения цвета пикселов проиллюстрирован на рис. 6.3 [стр.
225). Для отображения на дисплее индексированного изображения следует выполнить команду » 1шввоя(Х, шар); или,что эквивалентно, » Хшабе[Х) » со1огшар[шар) Цветовая карта хранится вместе с индексированным изображением,и она автоматически загружается, когда функция 1шгеай считывает изображение. Иногда бывает необходимо аппроксимировать индексированное изображение другим изображением с меньшим набором цветов.
Для этой цели используется функция Хшарргох, вызов которой имеет вид [У, пеяшар] = Хшарргох[Х, шар, и). Эта функция возвращает массив У с цветовой картой певшар, который имеет не более и цветов. Входной массив может принадлежать классу и1пв8, в1пв16 или йопЬ1е. Выход У принадлежит классу п[пв8, если и не превосходит 256.
Если и больше 256, то У принадлежит классу бовЬ1е. Когда число строк матрицы шар меньше числа различных значений Х, «лишние» значения в Х отображаются с помощью одного и того же цвета в шар. Например, пусть Х состоит из четырех вертикальных полос одинаковой ширины со значениями 1, 64, 128 и 256. Если мы определим цветовую карту шар= [000; 111], то все элементы Х со значениями 1 будут указывать на первую строку шар [черный цвет), а все остальные значения Х будут указывать на вторую строку шар [белый цвет). Таким образом, команда ХшвЬои [Х, шар) покажет изображение, на котором за черной полосой следуют три белые полоски.
На самом деле, зто так и будет до тех пор, пока длина карты не станет равна 65, в этот момент на дисплее будет отображена черная полоска, затем серая полоска, за которыми следуют две белые. В результате подобных действий на экране может появиться весьма странное изображение, если длина карты превосходит допустимый диапазон значений элементов Х. Имеется несколько способов задания цветовой карты. Первый способ состоит в применении команды » шар()г,:) = [г[й) 8(й) Ь[)г)]; ~~~2! О Глава б.
Обработана цветных иэображений где [г(к) я()с) Ь()с)] — это НОВ значения, которые определяют строку карты с номером к. Карта будет заполняться при изменении параметра )т. В табл. 6.1 перечислены НСВ значения некоторых основных цветов. Любой из трех форматов, приведенных в таблице, может использоваться для обозначения цвета. Например, цвет фона на изображении можно поменять на зеленый любой из следующих трех команд; » ттЫсеЬ6(тбт) » нЬ1веЬ8(тбтеепт) » иЬ[сеьб([О 1 О]) Таблица б.1.
НСВ значения некоторых основных цветов. Длинное или короткое имя (заключенное в кавычки) может использоваться в приложениях наравне с числовым триплетом при обозначении йСВ цвета Для обозначения цветов, не представленных в табл. 6,1, истюльзуются дробные числа. Например, [.б .8 .5] — серый цвет, [.5 О 0] — темно-красный, а [.49 1 .83] — аквамариновый. В МАТЕАВ имеется несколько стандартных цветовых карт, которые можно загрузить командой » со1отшар(шар паше); В результате матрица цветовой карты становится равной шар паше. Например, » со1огшар(соррег); где соррет — одна из цветовых карт, имеющихся в МАТ!.АВ. Цвета в этой карте гладко меняются от черного до светло-бронзового. Если последнее изображение, выведенное на экран, было индексированным, то после этой команды цветовая карта поменяется на соррвг.
Кроме того, изображение с нужной картой можно непосредственно вывести на экран командой » 1швпои(Х, соррег); В табл. 6.2 перечислены некоторые цветовые карты МАТ1.АВ. Длины (число цветов) этих карт можно ограничить, поставив в круглых скобках соответствующее число. Например, ятау(16) задает цветовую карту из 16 оттенков серого цвета. . П д * д Иддддд 2~\д 6.1.3. Функции 1РТ для обращения с В.СВ и индексированными изображениями В табл. 6.3 приведены функции 1РТ, которые совершают взаимную конвертацию НСВ индексированных и монохромных изображений.
Для ясности в этом параграфе гяб зшаяе обозначает ВСВ изображение, ягау 1шаяе — монохромное изображение, Ьи — черно-белое изображение, а Х вЂ” матрицу данных индексированного изображения. Напомним, что индексированное изображение состоит из матрицы данных и матрицы цветовой карты. заблица 6.2. Некоторые стандартные цветовые карты МАТьАВ Имя Описание Плавный переход от красного, через оранжевый к желтому. Шкала градации серого с усилением синей компоненты, Эта шкала придает дополнительный «электронный» вид полутоновым изобрансениям. Содержит столько регулярно разделенных цветов в НОВ цветовом пространстве, сколько возможно, но обеспечивает дополнительные шаги серого, чисто красного, чисто зеленого и чиста голубого. Состоит из оттенков голубого и пурпурного. Плавный переход от голубого к пурпурному.
Плавный переход черного к ярко бронзовому. Состоит из красного, белого, синего и черного. Цвет меняется скачкообразно при увеличении индекса на один шаг. Возвращает линейную серую шкалу. Плавный переход от черного, через оттенки красного, оранжевого и желтого к белому. Цветонасыщенная цветовая модель. Цвет начинается с красного, переходит в желтый, зеленый, голубой, синий, пурпурный и возвращается снова в красный. Карта приспособлена для отображения периодических функций. Простирается от синего до красного, проходит через голубой, желтый и оранжевый. Строит цветовую карту, которая используется в функции Со1огегаег (см. справочную страницу этой функции).