我正在使用OpenCV 2.
目前我有一个积分列表:[(1,2), (2,3), (3,4)]
我需要这些点位于数据类型为CV_32FC2
或vector<Point2f>
的3 x 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)