Пиксельные карты обычно объединяются попиксельно. Это означает, что выполняется некоторая операция между соответствующими пикселами в старой и новой картах. В частности, две пиксельные карты А и В объединяются в третью карту С согласно следующей формуле:

C[i][j] = A[i][j] ® B[i][j] для каждого i,j, где значком ® обозначена некоторая операция. Ниже приводятся несколько примеров операций. О Усреднение двух изображений. Здесь ® означает формирование суммы из половины А и половины В: О Определение различий между двумя изображениями. Для этого изображения вычитаются, и здесь операция ® означает вычитание: О Поиск мест, где одно изображение ярче, чем другое. Здесь ® означает операцию «больше чем»: с[№-АШ>в[тСогласно этой формуле, каждому пикселу в карте С присваивается значение единица, если соответствующий пиксел в А ярче, чем в В; и ноль в противном случае.

Обобщение усреднения двух изображений заключается в формировании их среднего взвешенного (weighted average). Пиксельная карта Л берется с весом (1 -/), а пиксельная карта В - с весом/, где/- некоторая дробь: СШ - (1 -f)A[i\\j] +/В1Ш сю 1)

Например, если RGB-компоненты пиксельной карты равны (14, 246, 97), а карты -

(82, 12, 190), то при / - 0,2 мы получим C[i][y] - (27, 199, 115). Среднее взвешенное двух RGB-карт можно получить с помощью подпрограмм setPlxel О и getPixel О, разработанных ранее.

Пример 10.3.1. Растворение одного изображения в другом Метод среднего взвешенного находит интересное применение в случае, когда одно изображение должно быть растворено (dissolved) в другом. Вначале на дисплее видно только изображение А, однако с течением времени оно медленно тускнеет и проступает наложенное на него изображение В, пока на

10.3. Объединение пиксельных карт

экране не остается только одно В. Если параметр t представляет собой время, то в момент с на экране демонстрируется изображение А(\ -t) + Bt, где t плавно изменяется от 0 до 1. Данная технология напоминает «твининг», описанный в главе 4. На рис. 10.10 показано пять стадий отображаемой картинки для значений t - 0,0,25, 0,5,0,75,1. В тематическом задании 10.2 рассматривается простой способ растворения изображения - с использованием средства OpenGL под названием «альфа-канал», которое мы опишем в разделе 10.3.2.


⇐ Предыдущая| |Следующая ⇒