Алгоритм «серая гамма» (shades of grey) в качестве оценки точки белого вычисляет p-норму Минковского (среднее значение rgb-координат в степени p). Для p = 1 это совпадает с алгоритмом «серый мир», а для p, стремящегося к бесконечности – с алгоритмом MaxRGB. Для промежуточных значений p, например, p = 5 или 6, получается алгоритм, более независимый от шума в изображении, но, все же, ориентирующийся на цветность наиболее светлых частей картинки.

Алгоритм «серая граница» (grey edge) определяет точку белого усреднением изменений значений пикселей изображения, возведенных в степень p (формулу, конечно, не привожу).

Сложности алгоритмов не видно предела, но, похоже, для каждого алгоритма легко подобрать изображение, на котором он сработает плохо.

<p>5.9. Стыковка фрагментов изображения</p>

Для задачи сшивки кадров панорамы математики тоже придумали много вариантов решения. Основные способы сглаживания швов следующие:

1) линейный градиент (градиентная маска);

2) Пуассоновское слияние (Poisson blending, Laplacian membrane), в том числе:

а) с выравниванием экспозиций кадров;

б) с сохранением яркости и поля градиентов в окрестности границы;

3) разные градиентные маски для разных разрешений (масштабов, интервалов пространственных частот);

4) разные градиентные маски для разных разрешений, плюс удаление ошибок, связанных с параллаксом и движущимися объектами (content-aware blending algorithms).

Результаты применения некоторых из этих способов зависят от порядка фрагментов, в остальных случаях такой зависимости нет. Одни способы требуют попиксельного совпадения пересечения фрагментов, другие менее чувствительны к этому.

Для некоторых способов характерна диффузия цвета (утечка цвета).

Общая схема этих алгоритмов такова. Из общих соображений выбирается некоторый (привлекательный, многообещающий) класс преобразований плоскости на плоскость. Затем для конкретного изображения вычисляются такие значения параметров выбранного вида преобразований, которые минимизируют какой-либо критерий (обычно, типа среднеквадратичной ошибки).

Например, слияние по Пуассону работает так. Берем заплату (пусть это будет кусок ночного неба с яркой луной), которую нужно впечатать в совсем другой снимок (темная поверхность лесного озера). Преобразуем заплату так, чтобы максимально сохранить ее поле градиентов, но чтобы на границе векторы градиентов заплаты по возможности совпали с градиентами изображения, в нашем случае, озера. Интегрируем полученное градиентное поле и получаем заплату, которая объединяется с фоновым изображением без швов.

Другой алгоритм (As-projective-as-possible image stitching) предлагает сначала выполнить оптимальное линейное (проективное) преобразование, а затем для малых областей, в которых изображения плохо совместились, выполнить нелинейное преобразование. Что позволяет улучшить сшивку за счет искривлений пространства в малых областях в надежде на то, что это не будет заметно.

Сшивку фрагментов с помощью многомасштабного разложения проиллюстрируем на примере рисунка 5.36. Оба исходных фрагмента (Рис. 5.36а) содержат как крупномасштабные элементы (цветной фон), так и мелкомасштабные детали (черные линии).

Рис. 5.36. Сшивка фрагментов с помощью многомасштабного разложения на примере тестового рисунка.

Если сшить их с помощью широкой маски, сделанной большой мягкой кистью, то фон будет сшит хорошо, а детали – плохо (Рис. 5.36б). Если сшить фрагменты с помощью узкой маски, сделанной небольшой жесткой кистью, то фон будет сшит плохо, а детали – хорошо (Рис. 5.36в). Если предварительно разложить оба фрагмента на фон и детали, затем сшить оба фона широкой маской, а оба изображения деталей – узкой маской, и объединить полученные картинки, то получим почти идеальный шов (Рис. 5.36 г).

Алгоритм многомасштабной сшивки двух изображений таков.

1. Рисуем маску без растушевки для сшивки фрагментов.

2. Строим три пирамиды Гаусса (серия изображений, линейные размеры которых последовательно уменьшаются в два раза, начиная от исходного размера до одной строки, или столбца пикселей): для маски и для каждого фрагмента.

3. Для каждого фрагмента строим пирамиду Лапласа (разности между двумя соседними изображениями из пирамиды Гаусса, причем меньшее изображение увеличиваем вдвое, чтобы размеры совпали).

4. Пирамиды Лапласа для фрагментов сшиваем, используя маски из соответствующих слоев пирамиды Гаусса для маски.

5. Полученную новую пирамиду Лапласа восстанавливаем до полного изображения.

<p>5.10. Компьютерная обработка больших изображений</p>
Перейти на страницу:

Похожие книги