Проиллюстрируем сказанное на примере достаточно грубого «впечатывания» одного изображения в другое. Впоследствии обсудим, когда этот метод дает хорошие результаты, а когда – плохие.
На рисунках 5.31 и 5.32 в один и тот же исходный кадр впечатано два варианта полевой дороги. Видим, что дорога приобрела оттенки цвета, свойственные новому окружению.
Рис. 5.31
.Рис. 5.32
.Чтобы еще более проявить этот эффект, попробуем впечатать дорогу в совершенно неподходящее окружение (см. рисунок 5.33). Дорога стала синей!
Рис. 5.33
.Во всех трех случаях на вставленной заплате местами видны растекания цвета, которые хотелось бы устранить. Чтобы понять, откуда они возникают, необходимо немного углубиться в детали примененного алгоритма. Края заплат были (достаточно произвольно) определены жесткой маской (на рисунках не показана), пиксели которой равны либо нулю, либо единице. Новое изображение заплаты получалось, исходя из ее градиентного поля и значений пикселей
В тех местах края заплаты, где наблюдается чрезмерная «адаптация», на границу попали неудачные пиксели.
В общем случае идеальное впечатывание получается тогда, когда векторы градиентов для точек края заплаты совпадают и по модулю и по направлению с градиентами соответствующих точек исходного изображения. Чем больше эти пары градиентов различаются, тем хуже сшивка. Там, где эти пары градиентов сильно различаются, и происходит излишняя «адаптация». Немного сместив границу в этом месте, часто удается убрать лишний цвет. Другой способ – немного поменять цвет граничных пикселей в исходном изображении.
Для математиков скажу, что восстановление участка изображения по градиентному полю участка и значениям пикселей на границе участка выполняется с помощью решения уравнения Пуассона в частных производных с граничными условиями Дирихле. Другими словами, для восстановления изображения по градиентному полю, нужно это поле проинтегрировать, для чего и требуется решить уравнение Пуассона.
Действенность методов редактирования изображения в градиентном представлении объясняется тем, что в первую очередь человек обращает внимание на большие перепады яркости и цвета по сравнению с малыми. Говорят, есть художники, которые рисуют сразу в градиентном пространстве, затем переводят результат в обычное представление с помощью интегрирования.
Область применения градиентного представления изображения велика:
• сшивка фрагментов панорамы (слияние градиентных полей, градиенты в области шва зануляются, или усредняются, или плавно переводятся друг в друга);
• повышение кажущейся резкости (модули всех градиентов увеличиваются одинаково, направления сохраняются);
• избирательное повышение резкости (отыскиваются крупномасштабные границы, затем усиливаются только те градиенты, которые пересекают эти границы);
• HDR-изображения (уменьшение градиентов яркости);
• редактирование градиентного представления изображения (Poisson image editing; заполнение дыр нулевым градиентным полем; впечатывание кусков, даже если кусок содержит «дырявый» или полупрозрачный объект);
• удаление ненужных деталей (например, отражений и бликов), объектов и испорченных областей (тень от фотографа, градиентное поле для дыры вычисляется по аналогии с окружением);
• замена освещения (image re-lighting; удаление освещения с помощью зануления малых градиентов);
• удаление шума (нахождение средних или медиан градиентов в серии брекетинга по экспозиции);
• удаление теней (зануление больших градиентов яркости в областях постоянной цветности);
• увеличение глубины резкости (брекетинг по дистанции фокусировки);
• и многое другое.
Другие применения этого метода содержатся в главе 8.
5.5. Алгоритмы обработки HDR-изображений
Чтобы показать изображение с большим диапазоном яркостей на устройстве, не могущем этого сделать, приходится этот диапазон уменьшать, то есть, выполнять тональное сжатие. При этом желательно испортить изображение в минимальной степени.