Код: Выделить всё
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). Затем я попытался настроить варпер, что в 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