如何将点列表转换为数据类型为CV_32FC2或vectr <point2f)>的矩阵?

时间:2017-12-02 23:29:14

标签: python opencv

我正在使用OpenCV 2.

目前我有一个积分列表:[(1,2), (2,3), (3,4)]

我需要这些点位于数据类型为CV_32FC2vector<Point2f>的3 x 1矩阵中。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

请参阅我的回答here,详细了解OpenCV在大多数功能中的预期要求以及原因。

简短的回答是您需要将您的点转换为32位浮点数的双通道数组,因为错误状态为:CV_32FC2,即具有形状的三维数组(n_points, 1, 2)

>>> import numpy as np
>>> points = np.array([(1, 2), (2, 3), (3, 4)])
>>> points = np.float32(points[:, np.newaxis, :])
>>> points
array([[[ 1.,  2.]],

       [[ 2.,  3.]],

       [[ 3.,  4.]]], dtype=float32)