iOS Vision сшивание панорамы
Как использовать рамки зрения для сшивания панорамной картинки?
VNTranslationalImageRegistrationRequest видения может сшить два изображения. Я пытаюсь, это работает. Теперь хочу сшить две рыбки фото. Как это
VNHomographicImageRegistrationRequest или VNTranslationalImageRegistrationRequest ? Есть предложения? Как сшить их, чтобы получить панорамное изображение, пока расширяется?
1 ответ
Насколько я знаю, пока нет поддержки для такого типа сшивания. Чтобы успешно выполнить сшивание с этим типом изображения, сначала необходимо отобразить координаты пикселей для каждого объектива на сфере - каждая дает частичный результат - а затем использовать некоторую форму алгоритма сопоставления объектов (обычно это комбинация SIFT и RANSAC), который будет принимать полярные координаты (долготу и широту) для сравнения результатов. Затем обычно отображают сшитые результаты обратно в 2D-плоскость, используя что-то вроде проекции Меркатора.
Я сам создал фильтры ручной вышивки для такого вида изображения и могу сказать вам, что в уравнении очень много различных настраиваемых элементов, которые будут зависеть от используемого оборудования, не в последнюю очередь от угла обзора объектива.
Сравнение 2D-координат на объективах типа "рыбий глаз" редко дает хорошие результаты, когда совпадающие области находятся на периферии объектива. В качестве демонстрации посмотрите на компьютерную мышь на изображении, которое вы дали. Справа его общий профиль плоский и похожий на ромб. Слева он отчетливо банановидный.
Вы можете получить некоторую тягу, сначала преобразовав оба изображения в квадраты, используя фильтр удаления "рыбий глаз", хотя вы, вероятно, обнаружите, что у вас мало контроля над тем, сшиваются ли изображения рядом, одно над другим или под каким-то странным углом, где встретиться за углом.
Вот документ, который вы можете найти полезным для этой цели: https://pdfs.semanticscholar.org/9616/0d2df798a8c4de08fd669b1d091f519b3fe8.pdf