Używasz go dobrze, czy proces z jakiegoś powodu nie powiódł się.
Pierwszą wartością krotki wynikowej jest kod błędu, przy czym 0 oznacza powodzenie. Tutaj masz 1, co oznacza, zgodnie z stitching.hpp
, że proces potrzebuje więcej zdjęć.
enum Status
{
OK = 0,
ERR_NEED_MORE_IMGS = 1,
ERR_HOMOGRAPHY_EST_FAIL = 2,
ERR_CAMERA_PARAMS_ADJUST_FAIL = 3
};
ERR_NEED_MORE_IMGS
zwykle oznacza, że nie masz w swoich obrazach wystarczająco keypoints.
Jeśli potrzebujesz więcej informacji o przyczynach błędu, możesz przełączyć się na C++ i szczegółowo przeanalizować proces.
Edit: zapewnienie przykładem pracy
sam kod jak OP, po prostu dodaje wynik zapisać i ścieżki bezwzględnej.
import cv2
stitcher = cv2.createStitcher(False)
foo = cv2.imread("D:/foo.png")
bar = cv2.imread("D:/bar.png")
result = stitcher.stitch((foo,bar))
cv2.imwrite("D:/result.jpg", result[1])
z tych obrazów: (mam nadzieję, że kochasz pandy)
foo.png
bar.png
result.jpg
To bardzo interesujący problem. Nie znajduję żadnej dokumentacji Pythona dla tej funkcji, chociaż jest tam. – tfv