什么相当于OpenCV2中的cvCreateMat函数使用python3
Posted
技术标签:
【中文标题】什么相当于OpenCV2中的cvCreateMat函数使用python3【英文标题】:What is equivalent of cvCreateMat function in OpenCV2 using python3 【发布时间】:2019-02-15 10:55:13 【问题描述】:我正在将一段用 c/cpp 编写的旧代码转换成 python。它使用 cvCreateMat 函数。从this link 我相信OpenCV2 不支持cvCreateMat 函数。我不知道如何使用 OpenCV2/numpy 来做到这一点。或者我需要的只是python中的以下行。
cv::Mat a = cvCreateMat(3*numberOfMatrices, 6,CV_64FC1);
【问题讨论】:
只需创建一个你需要的形状和数据类型的numpy数组 cv.CreateImage 怎么样 answers.opencv.org/question/30037/cv2createmat-in-python 这应该对你有帮助。 @Miki 我不知道我会输入什么。如果numberOfMatrices
是6,那么我猜cvCreateMat
将创建一个18 行6 列的矩阵,初始化为0。我也不确定我需要np.array
还是np.matrix
。
@Spinkoo 我想要等效的,因为后面的函数会利用这些数据。我相信 cvCreateMat 被 numpy 取代。
【参考方案1】:
我认为应该这样做
// the third 3 is so it has 3 dimensions which i suppose what you need
size = 3*numberOfMatrices, 6
img = np.zeros(size, dtype=np.float64)
这是创建的正确格式
【讨论】:
是的,我想类似的东西,但我发现这个link 给出了一些不同的格式。 不会是`img = np.zeros((3*numberOfMatrices, 6), dtype=np.float64) 它可以创建 0 的矩阵,但我不确定它是否等同于 cvCreateMat?你知道吗?如果是,我会接受它作为答案。 是的,它相当于在 python 中执行此操作,如果您愿意,也可以使用 np.ones 调用它 嗨 Spinkoo 请从size = 3*numberOfMatrices, 6, 3
中删除最后 3 个。应该是size = 3*numberOfMatrices, 6
以上是关于什么相当于OpenCV2中的cvCreateMat函数使用python3的主要内容,如果未能解决你的问题,请参考以下文章