Сшивка панорам с использованием OpenCV в Python завершается сбоем или создает артефактыPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Сшивка панорам с использованием OpenCV в Python завершается сбоем или создает артефакты

Сообщение Anonymous »

Учитывая 18 квадратных кубических карт (соотношение сторон 1:1, разрешение 1000x1000) с углом обзора 90°, я пытаюсь преобразовать их в равноугольную панораму (соотношение сторон 2:1, разрешение 4000x2000). Изображения во многом пересекаются. Мой текущий подход использует класс Stitcher OpenCV и следующий код Python.

Код: Выделить всё

import cv2 as cv
import glob

images = []
file_paths = glob.glob('*.png')

for file_path in file_paths:
images.append(cv.imread(file_path, cv.IMREAD_COLOR))

stitcher = cv.Stitcher.create(cv.Stitcher_PANORAMA)
status, pano = stitcher.stitch(images)

if status != cv.Stitcher_OK:
print('ERROR {0}: The images could not be stitched.'.format(status))
exit()

cv.imwrite('panorama.png', pano)
Этот подход либо завершится неудачей с кодом ошибки 3 (ERR_CAMERA_PARAMS_ADJUST_FAIL), либо приведет к появлению артефактов, и будет сшита только половина панорамы. К сожалению, мне не удалось выяснить, при каких условиях этот подход полностью провалится и когда он хотя бы даст результат.
Изображение

Я уже пытался изменить порядок изображений, но это приводит только к различным артефактам или сшивание полностью завершается с ошибкой с кодом 3 (ERR_CAMERA_PARAMS_ADJUST_FAIL). Затем я попытался настроить варпер, что в Python кажется невозможным. Наконец, я попытался сшить изображения вручную, но cv::detail::FeaturesFinder недоступен в Python. Выпускаемый Microsoft Image Composite Editor можно использовать для успешного сшивания панорамы без артефактов, но процесс сшивания нельзя автоматизировать (с помощью Python).
РЕДАКТИРОВАНИЕ: Другое подходом было бы сшить вместе только шесть кубических карт, поскольку каждый пиксель может быть однозначно назначен кубической карте. Единственная проблема в том, что освещение на каждой кубической карте разное. Я попробовал использовать MultiBandBlender OpenCV, чтобы смешать края, но не смог заставить его работать должным образом.
[img]https:// i.sstatic.net/I4BUP4Wk.png[/img]


Подробнее здесь: https://stackoverflow.com/questions/791 ... -artifacts
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Сшивка панорам с использованием OpenCV в Python завершается сбоем или создает артефакты
    Anonymous » » в форуме Python
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Метод рисования Python OpenCV создает странные артефакты
    Anonymous » » в форуме Python
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Cv2.error: OpenCV(4.8.1) D:\a\opencv-python\opencv-python\opencv\modules\src\.cpp:660: ошибка: (-215: утверждение не вып
    Anonymous » » в форуме Python
    0 Ответы
    131 Просмотры
    Последнее сообщение Anonymous
  • Сшивка изображений Python
    Anonymous » » в форуме Python
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Сшивка изображений в одно
    Anonymous » » в форуме Python
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»