- PVSM.RU - https://www.pvsm.ru -
В задачах машинного зрения и автоматизированной обработки изображений зачастую встречается задача бесшовного наложения изображений. Для наглядности, сразу приведу пример.
Бесшовным наложением изображений (блендингом) будем называть метод, позволяющий вставить часть одного изображения в другое так, чтобы не было заметно швов на границах вставляемого изображения. Данный метод как бы подстраивает вставляемую часть под остальное изображение. На самом деле для получения результата используется только градиентное поле вставляемой части и значения пикселей исходного изображения на границе обрабатываемой области.
Пусть у нас имеются изображения А, на которое в определенном месте накладывается изображение В.
Для бесшовного блендинга необходимо чтобы градиент изображения А в области изображения В равнялся градиенту изображения В. Восстановление цвета на области В будет осуществляться на основе градиента в области В и данных о цвете изображения А на границе области В.
Это означает что для получения результирующего изображения необходимо восстановить изображение по его градиенту, т.е. решить задачу Пуассона.
Ниже приведено решение поставленной задачи для монотонного изображения. Для RGB изображения метод применяется к каждому каналу.
Определим границу вставляемой области следующим образом:
И вычислим градиент накладываемого изображения:
Теперь все данные имеются и мы можем составить уравнение Пуассона:
где (x, y) — координата текущего пикселя, N — число соседних пикселей не включая границы (не более 4), (dx, dy) — координаты соседних пикселей, могут принимать значения из множества {(-1, 0), (1, 0), (0, -1), (0, 1)}
Таким образом, для каждого неизвестного пикселя составляется уравнение. В итоге мы получим систему с M неизвестными, где М — число пикселей вставляемого изображения. Остается только решить эту систему. Методов для решения этой довольно много, но для решения обычно используют метод Якоби и метод Гаусса-Зейделя.
Зачастую, в накладываемой области смешивают градиентное поле с исходным изображением. Например, берут максимальное значение градиентов А или В в определенной точки. Лучше всего почувствовать разницу между исходным и комбинированным градиентом на примере.
Восстановление по градиенту изображения В:
Восстановление по максимальному градиенту изображений А и В:
Очевидно, что восстановление изображения по комбинированному градиенту целесообразно применять для объектов, имеющий прозрачную структуру (вода, радуга, облака и т. п.).
А вот как бы выглядело наложение радуги без комбинации градиентов
Автор: drkernel
Источник [7]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/obrabotka-izobrazhenij/55556
Ссылки в тексте:
[1] Оригинальная статья: http://bybjhso.xeds.eu/clone/poisson.pdf
[2] Немного теории, применение и примеры: http://cgm.computergraphics.ru/issues/issue17/poissonimaging
[3] методом Якоби: http://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D0%AF%D0%BA%D0%BE%D0%B1%D0%B8
[4] методом Гаусса — Зейделя: http://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D0%93%D0%B0%D1%83%D1%81%D1%81%D0%B0_%E2%80%94_%D0%97%D0%B5%D0%B9%D0%B4%D0%B5%D0%BB%D1%8F
[5] Программа + исходники на Java: http://www.ctralie.com/Teaching/PoissonImageEditing/#source
[6] Blend Me: http://blendme.ru/
[7] Источник: http://habrahabr.ru/post/213403/
Нажмите здесь для печати.