gpt4 book ai didi

Python:opencv warpPerspective 既不接受 2 也不接受 3 个参数

转载 作者:行者123 更新时间:2023-12-02 17:35:53 24 4
gpt4 key购买 nike

我在 Feature Matching + Homography tutorial 之后找到了 Homography 矩阵使用

M, mask = cv2.findHomography(src_pts, dst_pts, cv2.RANSAC,5.0)

现在我需要扭曲第二个图像(旋转一个)以匹配第一个图像的关键点,所以我尝试使用 warpPerspective直接上 img2因为我们已经有了 Homography 矩阵。 (他们在教程中没有使用 warpPersective)
dst = cv2.warpPerspective(img2, M)

它提示我错过了第三个论点
TypeError: Required argument 'dsize' (pos 3) not found

很公平,我检查了 dsizedocs ,它似乎是目标图像大小。好吧,如果没有给出,它可以被推断出来,但是 opencv 期待它,(grrr ...好的opencv,我会给你)。我又试了
dst = cv2.warpPerspective(img2, M, img2.shape)

它抛出
TypeError: function takes exactly 2 arguments (3 given)

等等,我不是在一分钟前用 2 个参数尝试过吗?

怎么了?

最佳答案

尽管它可能如此违反直觉,但出于某种原因,opencv 已经实现了 warpPerspective以这种方式发挥作用:

corrected_image = cv2.warpPerspective(img1, M, (img1.shape[1], img1.shape[0]))

还注意到,获得的 M 用于将第一张图像映射到第二张图像,这意味着我可以在第一张图像上使用 M 来扭曲它并使其与第二张图像重叠。 (我试图在 img2 上使用它,如问题所示,但它不起作用)

以及 的原因有趣的异常(exception) 还不知道。 (如果您知道原因,请随时更新此答案)

关于Python:opencv warpPerspective 既不接受 2 也不接受 3 个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50947010/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com