fix TypeError when specifying compose_megapix
authorLukas-Alexander Weber <32765578+lukasalexanderweber@users.noreply.github.com>
Tue, 20 Jul 2021 08:59:15 +0000 (10:59 +0200)
committerGitHub <noreply@github.com>
Tue, 20 Jul 2021 08:59:15 +0000 (10:59 +0200)
without rounding the composed image sizes (variable "sz") they will be odly fractions of a pixel (e.g. (5300.965, 3772.897)) and therefore cause a "TypeError: integer argument expected, got float" in line

456        roi = warper.warpRoi(sz, K, cameras[i].R)

samples/python/stitching_detailed.py

index a7e3161..4ee2904 100644 (file)
@@ -450,7 +450,8 @@ def main():
                 cameras[i].focal *= compose_work_aspect
                 cameras[i].ppx *= compose_work_aspect
                 cameras[i].ppy *= compose_work_aspect
-                sz = (full_img_sizes[i][0] * compose_scale, full_img_sizes[i][1] * compose_scale)
+                sz = (int(round(full_img_sizes[i][0] * compose_scale)),
+                      int(round(full_img_sizes[i][1] * compose_scale)))
                 K = cameras[i].K().astype(np.float32)
                 roi = warper.warpRoi(sz, K, cameras[i].R)
                 corners.append(roi[0:2])