cv2.createStitcher () не хватает ключевых точек? - PullRequest
0 голосов
/ 02 июля 2018

Добрый день,

Я работаю над проектом по созданию нескольких камер, каждая из которых снимает изображение, а затем изображения будут сшиваться вместе. В настоящее время я пытаюсь использовать функцию cv2.createStitcher (). Stitch (images) . Ниже приведен код, который я использую:

import cv2

imageFiles = ['imageCapture1_0.png','imageCapture2_0.png']
images = []
for filename in imageFiles:
    img = cv2.imread(filename)
    images.append(img)

cv2.ocl.setUseOpenCL(False)
stitcher = cv2.createStitcher()
status, result = stitcher.stitch(images)             

cv2.imwrite('result.png',result)

Ввод изображения:

левое изображение:

left image

правое изображение:

right image

Однако тип результата результата становится NoneType с размером 1 и значением: объект NoneType встроенных модулей. Из того, что я гуглил, причина этого в том, что не хватает подходящей ключевой точки, чтобы сшить изображения вместе. Если так, есть ли способ сшить изображение даже с меньшим количеством ключевых точек? Есть ли способ установить параметр? Я прочитал документацию без удачи, пытаясь найти решение. Заранее спасибо

1 Ответ

0 голосов
/ 29 марта 2019

Операция сшивания изображения status, result = stitcher.stitch(images) возвращает два значения: индикатор состояния и полученное сшитое изображение. Вы можете проверить значение status, чтобы определить, была ли операция сшивания изображения успешной. Из документов это может быть одна из четырех переменных:

OK = 0: Сшивание изображений прошло успешно.

ERR_NEED_MORE_IMGS = 1: В ваших входных изображениях не было обнаружено ключевых точек для построения панорамы. Вам понадобится больше входных изображений.

ERR_HOMOGRAPHY_EST_FAIL = 2: эта ошибка возникает при сбое оценки гомографии RANSAC. Точно так же вам может понадобиться больше входных изображений, или предоставленные изображения не имеют достаточных отличительных признаков для точного соответствия ключевых точек.

ERR_CAMERA_PARAMS_ADJUST_FAIL = 3: обычно связано с неправильной оценкой функций камеры по входным изображениям.

В вашей ситуации вы можете либо добавить больше входных изображений, чтобы было обнаружено достаточное количество ключевых точек, либо заглянуть в собственную реализацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...