Главная » Просмотр файлов » М. Ву, Т. Девис, Дж. Нейдер, Д. Шрайнер - OpenGL. Руководство по программированию (Библиотека программиста) (2006)

М. Ву, Т. Девис, Дж. Нейдер, Д. Шрайнер - OpenGL. Руководство по программированию (Библиотека программиста) (2006) (1124363), страница 65

Файл №1124363 М. Ву, Т. Девис, Дж. Нейдер, Д. Шрайнер - OpenGL. Руководство по программированию (Библиотека программиста) (2006) (М. Ву, Т. Девис, Дж. Нейдер, Д. Шрайнер - OpenGL. Руководство по программированию (Библиотека программиста) (2006)) 65 страницаМ. Ву, Т. Девис, Дж. Нейдер, Д. Шрайнер - OpenGL. Руководство по программированию (Библиотека программиста) (2006) (1124363) страница 652019-05-11СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 65)

П- ки Матрица цвета е); 'РЕ гс ЕК Ко- (ра- сав- сли ОИ для сти. Особенности применения свертки на границах Операция свертки в отношении границ изображения отличается от обработки пикселов, лежащих во внутренней его области. Для управления применением свертки на границах предусмотрено три режима: ° 6! ЙЕООСЕ приводит к сжатию (зЪт1п)с) в каждом измерении согласно размерам фильтра свертки. Ширина результирующего изображения изменяется как (м(6(гл — Й//), а высота — как (//е(й/тг — Н ), тле )(// и Н/ — это ширина и высота фильтра свертки. Если конечное изображение вырождается до нулевого или отрицательного размера, оно не вырабатывается, причем без сообщения об ошибке. я 6С СОИ5ТАИТ ВОКОЕЙ вЂ” для обработки краев изображения, для выходящих за его границы пикселов, используются константные значения, задаваемые командой к1сопуо1ц11опра г аме1е г ' () .

В зтом случае размеры изображения не меняются. ° 6( ИЕРС1САТЕ ВОКОЕК вЂ” свертка выполняется аналогично режиму 6С СОИ 5ТАЙТ ВОКОЕК, с той разницей, что к вычислениям привлекаются значения крайних пикселов ряда или столбца. Здесь размеры изображения также не меняются. Операции, дополняющие свертку После завершения процесса свертки к пикселам результирующего изображения мог) т быть применены масштабирование и смещение (Ъ1аз), а также преобразование х диапазону (О, 1].

Соответствующие значения указываются вызовом е1Ртхе1- Тгапвтег'(): 6С Р05Т СОИЧОСОТ10И ' 5САСЕ для масштабирования 6С Р05Т СОИЧОСОТ10И * В1А5 для отклонения. Также можно изменить цвета пикселов по таблице подстановки, задав режим 6С Р05Т СОИЧОСОТ10И СОСОР ТАВСЕ коман- дой д1СО1огТаЬ)е(). С целью поддержки преобразований цветового пространства (перехода к другой цветовой модели) илн линейных преобразований значений пикселов, в расшире- нии 1шая(пя БОЪзес предусмотрен стек матриц с размерами 4 х 4, который начина- ет работать при вызове В\иасг)хнопе(6С СОСОК).

Например, чтобы перейти от модели КСВ к СМЧ (голубой, фиолетовый, желтьй), вы можете сделать следую- щее: б(/1оат гаЬ2сму(181 = ( -1, 8, О, 8, 8, -1, 8, О, О, О, -1, О, 1. 1, 1, 1 ): 11Иасг(хИоце(6С СО(Ой); /* активация режима матрицы цвета */ 11(оаЕИвсгяхт(гХЬ2сжу); 11Иатг1хноое(бс ИООЕСЧ1ЕИ); /' возврат в режим макетной матрицы "/ 304 Глава В ° Вывод пикселов, битовых образов, шрифтов и изображений ПРИМЕЧАНИЕ Орепбс хранит матрицы по столбцам. См. Раздел «Команды преобразования общего назначения» главы 3 для получения более подробной информации об использовании матриц в Орепбы В стек матриц цвета заносятся как минимум две матрицы.

(См, раздел «Команды запроса» приожения Б.) В отличие от других операций !пса8(п8 8нЬзеС, преобразование по матрице цвета выполняется всегда и не может быть блокировано. Листинг 8.7 иллюстрирует использование матрицы цвета для обмена позициями красного и зеленого компонентов цвета.

Листинг 8.1. Обмен компонентов цвета с использованием матрицы цвета: со(оггпа(пх.с ехгегп бсиьусе' гезо1вайе(соя!с сьаг*, 6(5(се!*, 6сз(се!'); 6СЬЬуте *р!хе15; 6С5(зе! н(ОСЬ. Ье(ВЬС; чо!д !и!с(чо!Ь) ( l« Задание матрицы цвета дпя переупорядочивания компонентов нэ моделя й68 в 68й '/ 6111оаС в(16] = ( 8,0, 1.0, О.О, 8.0, 0.8, 0,0. 1.8, 0.8, 1.0, 0.0.

0.0, 0.0, 8.8, 9.0, 0,0, 1.8 ): р(хе15 = геао1вззе("Оасаг1ееоз.ь)п", ан(ось, аье(зьс); Всйихе(бтоге!(61 ОМРАСК А(16ММЕМТ, 1); 9161еагсо1ог(8.8. 0.0, 0.0, 0.0); Вснз(г!хноее(6С СО(Ой); 91Соаонатг!хс(в); 91иатг!кисее(6С МООЕСЧ1ЕН); чо!О П!зр1ау(чо!Е) ( 9161еаг(6( СОСОй ВОЕЕЕй 81Т); Всйазтеггозз!(1, 910ганР!хе1»(н(ЕСЬ, Ье(ВЬС, 61 й68, 6С ЬМ516МЕО ВЧТЕ, р!х«1»); $1Е1цзь (); Операции, дополняющие преобразование по матрице цвета Подобно пост-операциям свертки, к пикселам можно применить масштабирование и отклонение уже после срабатывания матрицы цеста.

Вызов й1Р(хе1- Тгапзтег«() с параметром 61 РО5Т СОСОй МАТР1Х ' 5САЕЕ нли 6Е РО5Т Расширение 1шад)пд 50Ьзет ЗОБ СО10В МАТВ!Х * В!А5 задает соответствующие коэффициенты масштабирования и отклонения. По выполнении пост-операций значения пикселов сводятся к диапазону [О, 1).

Гистограмма С помощью расширения !шая!пя БпЬзег вы можете собирать статистическую информацию об изображении. Гистограмма демонстрирует распределение значений цвета в изображении, знания о котором вам пригодятся, например, при корректиРовке контраста. Команда 81Н(эгодгае() задает, какие компоненты изображения вы хотите вижть на гистограмме и достаточно ли вам просмотреть статистику или же требуется продолжить обработку изображения. Для того чтобы разрешить сбор статистики, вы должны вызвать команду 81ЕпаЫе(61 Н15Т06НАМ). Подобно цветовым палитрам (см. раздел «Таблицы цветов»), в вашем распоря- кении посреднический механизм для определения наличия необхолимых ресурсов системы.

Если ресурсов нелостаточно, ширина, формат и разрешение гистограммы устанавливаются в нуль. Воспользоваться прокоп-механизлюм можно с помощью команды 816егН1эгоВгааРагаиегег(), описанной в разделе «Команды запросов> приложения Б. чо)г! 81Н1Э(одгаи(И.епшп гагпет, 61.з|ЗЕ! гепйп, Ы спшп ттегпа!рог»па(, 6(Ьоо!еап з!п)г); Определяет, в каком виде будут сохранены данные гистограммы.

Аргумент Гагяе(должен быть зш(ан как бС Н15Т06НАИ или 60 РНОХУ Н!5Т06НАМ. Ширина (юЫгп) указывает количество элементов в таблице гистограммы. Это значение должно быть степенью 2. Внутренний формат (1пгегпа!Еогшаг) отвечает за то, как булуг сохранены ланные гистограммы. Допустимые значения: 60 АСРНА, 6( АСРНА4, 6( АСРНА8, 60 АСРНА12, 60 АЕРНА16, 60 10И1ЙАМСЕ, 60 СОИ1МАМСЕ4, 61 СОИ1МАМСЕ8, 60 СОИ1МАМСЕ12, 60 СОМ1МАМСЕ16, 61 10И1МАМСЕ АСРНА, 60 СОИ1МАМСЕ4 АСРНА4, 61 00М1МАМСЕ6 АСРНА2, 60 00И1МАМСЕВ АСРНА8, 6С СОМ1МАМСЕ12 АЕРНА4, 6( СОМ)МАМСЕ12 АСРНА12, 60 10М1МАМСЕ16 АСРНА16, 60 868, 60 Н682, 60 8684, 6С 8685, 60 Н688, 60 86810, 60 86812, 61 86816, 60 868А, 60 86ВА2, 60 86ВА4, 60 86В5 А1, 61 86ВА8, 60 86810 А2, 60 86ВА12 и 60 86ВА16. Этот список не включает в себя значения 6( 1МТЕМ51ТТ*.

Этим он отлпчается от списка команды 81Со1огтаЬ1е(). Аргумент я!пй задает, следует ли обрабатывать пикселы на минимаксном этапе конвейерной обработки. После прохожления пикселов по конвейеру через операцию 810гаиР1хе1я () вы можете извлечь результаты формирования гистограммы с помощью вызова 816егН(э(оВгаи(). В дополнение к возврату самих значений, команда 8\беГН1этокгаиО может быть использована для внутренней памяти гистограммьь Она же может быть сброшена напрямую, через вызов 818еэегН)этодгэе(), как описывается парой страниц ниже. 306 Глава В ° Вывод пикселов, битовых образов, шрифтов и изображений чо]с] К16еСН! 5Соягаю(С?.еппщ та!дед С?]топ]еап гезе(, С?епцгп 1огтлад С1 епщп гуре, С?.чоЫ "с/а!иез)/ Возвращает собранную для гистограммы статистику.

Аргумент гагдет задается как 6С Н? 5Т06КАИ. Аргумент гехет отвечает за очистку таблиц (внутренней памяти) гистограммы. Формат (/оппае) и тип (гуре) задают способ сохранения массива значений (па1иез) и то, как данные гистограммы будут переданы приложению. Онп принимают те же значения, что и их аналоги для команды к10ганР! хе15 () .

Программа из листинга 8.8 подготавливает гистограмму изображения и рисует результирующее распределение в окне. В этом примере клавиша 5 служит для управления параметром 3(л]г, отвечаютцим за допуск пикселов к последующим этапам конвейерной обработки. Листинг 8.8. Подготовка и рисование гистограммы: П]5(оогапс.с абетсне Н15Т06КАМ 517Е 256 /* Должно быть степенью 2 */ ехтегп 6(иьуте' геаб[юаве(сонат сПаг', 6(в!ге!', 6(в!ге!*); ОсиЬуте 'р]хе1в; 6свтхе! н!бСП, Пе]ВПС; чо(б сп]С(чотб) ( рсхе1в = геаб]юаве("Оата/1еебв. Ьтп", антбСП, апетВПС): В1Р! хе!5тоге! (6С ОИРАСК А(16ИИЕИТ, 1); В[С[еагсо[ (В.О, О.О.

О.О, О.О); В1нтвтовгаю(6С Н?5ТООКАН, Н]5Т06КАИ 5]7Е, 6( КОВ, 6С РА(5Е); В1Епаще(6С Н?5ТООКАМ); ) чо(б б!вр1ау(чо!б) ( спс (; 6ьивпогт ча1нев[Н15ТООКАМ 517Е][3]; В161еаг(6( СОСОК ВОРРЕК В[Т): В1КавеегРов2т(1, 1); В]оганР(хе]в(н!НСП, Пе(ВПС, ВС КОВ, 6С ОН516ИЕО ВУТЕ, Ртхе]в). В16еСН]втовгаю(6С Н?5ТООКАМ, 6С ТКОЕ, 6С К6В, 6С ОН516НЕО 5НОКТ, ча1иев); /* Рисование гистограммы */ В1веатп(6С С]ИЕ 5ТК[Р); 61Со1ог3((1.В, О.В, В.О); Гпг (! = 0; ! < Н?5ТООКАМ 517Е; т++) В1ЧегСех2в(т, ча1иев[т][0]); В1Епб(); В1вев(п(6( С]ИЕ 5ТК[Р); В1со1ог31(О.В, 1.0, 0.0); гог (! = 0; ! < Н]5ТООКАИ 5?7Е; !++) В1чегтех2в(т, ча1нев [!] [ 1] ); Расширение 1гпад!пд 5ЫЬэет 307 51Ело(>; пт В)Веа!п(6Е 'с1НЕ 5ТН1Р); В)оь)огэг(В.В, В.О, 1.В>; 1вг (! = В: ! < Н15ТО6ВАИ 512Е; ! В1негтех25(1, ча1иев(1)(2)); 51Ело О; Гся па- Гий ри- 515(ввь(>: су<ит гю- м!Ь ХеуЬоаге(вл51Влее слаг Хеу, !лт х, зл! У) 1 5151!с осьоо(еал 5!лк = 6Г РАс\Е; 5и!Гсл (Хеу) ( саве '5': 5!лк = !5!лк; В1Н151оагав(ос Н15ТО6РАИ, Н15ТОВНАИ 512Е, 6Е аоВ.

5!ли); Ьгеак; саве 22: /' Клавиша Евс *l ех!Г(0>; Ьгеак; ) 51исРовснео15р1ау(); Команда Н1незетн15соагавГ() сбрасывает гистограмму без извлечения ее данных, чо(с( 61неэетн151ЬВгам(сеепшп та!пег); Сбрасывает счетчики гистограммы в нуль. Аргумент (агнес задается как 61 Н15Т06НАИ.

Метод минимакса но(гд а1И! омах(СЕепшп Гагдет, С1.епшп (птегпа!Еогтат, С1Ьоо)еап 5(пй); Определяет минимальное и максимальное значения компонентов пикселов в изображении. Аргумент гагпе( должен быть установлен в 6Е И1НИАХ. Внутренний формат (Гптегпа(гаплат) задает, какие компоненты пвета привлека- ются к обработке.

Значения этого аргумента те же, что и для а1Н15токгам(). Если аргумент 5ГП» залаН КаК 61 ТННЕ, пикселы не записываются в буфер кад- ров, а если как 61 ЕАЕ5Š— вьпюлняется построение изображение Команда а16етИ! омах () используется для получения найденных экст ~емальных дначений. Подобно а1И151окгам(), обращешш к внутренним дань„,дм может выть объединено с их сбросом.

Функция а1Н1лвГах() находит экстремальные (минимальное и максимальное) дначения компонентов пиксела. Как и в случае к1Н15токгап(), после ее вьшол- нення вы можете продолжить обработку пикселов или отказаться от дальнейших действий. 308 Глава В ° Вывод пнкселов, битовых образов, шрифтов и изображений чо[с[ Я16етн1пвах(СЕепшп гагкед С].Ьоо]еап гезег, С[.епшп (огтлаг, С[.енот (уре, С[ чоЖ ира1иез)( Возвращает результаты операции метода минимакса.

Аргумент Гпгяет должен быть установлен в 61 И1МИАХ. Если аргумент гезег задан как 6С Т МОЕ, выполняется также сброс минимального и максимального значений. Формат (уогп)аг) и тип (туре) определяют способ помещения выходных данных в массив оа1иез, этн аргументы принимают те же значения, что н для к[0 гаиР] хе15 () . Листинг В 9 демонстрирует использование В1И1пвах () для случая формата ВСВ. Чтобы разрешить применение операции минимакса, вы должны вызвать команду й1Епао[е(6С И1МИАХ). Минимальное и максимальное значения помещаются в массив оа1иез и группируются по компонентам. Например, при задании константы 6С Я6В для формата, первые три значения массива представляют минимальные величины красного, зеленого и синего компонентов, а следующие трн — их максимальные значения.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6418
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее