< /p>
они принимаются в одно и то же время, и, как вы можете видеть, у них разные перспективы. Я осознаю, что мог бы сделать это, сделав две фотографии под разными углами с одной и той же положения камеры, но в этом случае я специально ищу решение с использованием разных положений камеры. их с этим кодом: < /p>
Код: Выделить всё
images = []
image1 = cv2.imread('./VideosToStitch/video2.png')
images.append(image1)
image2 = cv2.imread('./VideosToStitch/video1.png')
images.append(image2)
stitcher = cv2.Stitcher.create()
status, stitched = stitcher.stitch(images,cv2.Stitcher_PANORAMA)
cv2.imwrite('./VideosToStitch/stitched.png', stitched)
< /p>
Две синие линии выглядят хорошо, но, как вы можете видеть, красная линия сломана. Я подумал, что, возможно, сначала я смогу сначала применить перспективную трансформацию на изображениях, а затем сшивать их, но когда я применяю перспективу Warp, я получаю это: < /p>
Код: Выделить всё
image1 = cv2.imread('./VideosToStitch/video1.png')
tl = (907,0)
bl = (0,1280)
tr = (1047,0)
br = (1920,1280)
pts1 = np.float32([tl,bl,tr,br])
pts2 = np.float32([[0,0],[0,1280],[1920,0],[1920,1280]])
matrix = cv2.getPerspectiveTransform(pts1,pts2)
transformedFrame = cv2.warpPerspective(image1, matrix,(1920,1280), flags=3)
Здесь Вы можете видеть, как красные и синие линии теперь прямые, но я потерял все детали на поверхности льда. Это может работать, если можно применить преобразование только на горизонтальной оси, а не на вертикальной оси. Или, в качестве альтернативы, я мог бы сшивать их, чтобы результирующее изображение было изогнуто, а затем выпрямило его.
Мысли?
Подробнее здесь: https://stackoverflow.com/questions/794 ... -positions