March 2020
Intermediate to advanced
366 pages
9h 8m
English
Now it's time to create the canvas. For that, we create a warper object based on our desired rotation schema. For simplicity, let's assume a planar model:
warper = cv2.PyRotationWarper('plane', 1)
Then, we enumerate over all the connected images and get all the regions of interest in each of the images:
stitch_sizes, stitch_corners = [], [] for i, img in enumerate(conn_images): sz = img.shape[1], img.shape[0] K = cameras[i].K().astype(np.float32) roi = warper.warpRoi(sz, K, cameras[i].R) stitch_corners.append(roi[0:2]) stitch_sizes.append(roi[2:4])
Finally, we estimate the final canvas_size based on all regions of interest:
canvas_size = cv2.detail.resultRoi(corners=stitch_corners, sizes=stitch_sizes) ...