gpt4 book ai didi

python-2.7 - 为什么我在 opencv 中找不到 cvPoint2D32f 函数?

转载 作者:太空宇宙 更新时间:2023-11-03 22:24:08 25 4
gpt4 key购买 nike

我正在使用 Python 2.7.13 |Anaconda 4.3.1(64 位)和 OpenCv“2.4.13.2”。我正在尝试对需要使用的图像应用几何变换

CvPoint2D32f center = cvPoint2D32f(x, y)

但我找不到这个函数,这是在 python 中不可用还是已弃用。

最佳答案

CvPoint2D32f 类型是较旧的/已弃用的类型。 OpenCV 2 引入了 Point2f 类型来替换它。无论如何,您不需要在 Python 中使用该类型。您可能需要的是带有 dtype = np.float32 的 numpy 数组。对于点,数组应该像这样构造:

points = np.array([ [[x1, y1]], ..., [[xn, yn]] ], dtype=np.float32)

您并不总是需要设置 dtype,因为某些函数(例如 cv2.findHomography())将采用整数。

有关使用这些点的示例,图像来自 this tutorial ,我们可以执行以下操作来查找单应性并将其应用于图像:

import cv2
import numpy as np

src = cv2.imread('book2.jpg')
pts_src = np.array([[141, 131], [480, 159], [493, 630],[64, 601]], dtype=np.float32)
dst = cv2.imread('book1.jpg')
pts_dst = np.array([[318, 256],[534, 372],[316, 670],[73, 473]], dtype=np.float32)

transf = cv2.getPerspectiveTransform(pts_src, pts_dst)
warped = cv2.warpPerspective(src, transf, (dst.shape[1],dst.shape[0]))

alpha = 0.5
beta = 1 - alpha
blended = cv2.addWeighted(warped, alpha, dst, beta, 1.0)

cv2.imshow("Blended Warped Image", blended)
cv2.waitKey(0)

这将产生下图: Warped image showing the output of a transformation.

关于python-2.7 - 为什么我在 opencv 中找不到 cvPoint2D32f 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44399785/

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