使用openCV和python旋转2D点
问题描述:
我使用cv2.getRotationMatrix2D
来获取旋转源图像的2x3矩阵。这工作正常。现在我有几个2D坐标,它们代表未旋转图像中的点。 我可以使用相同的矩阵来旋转单个点吗?如果是,如何? 如果我理解正确的话,我应该能够将矩阵与(x,y)坐标相乘,但无论我尝试使用哪种矩阵和点的组合,我都不会得到简单的x和y坐标。使用openCV和python旋转2D点
感谢您的帮助!
编辑:
旋转矩阵是
[[ 9.24630834e-01 3.80864571e-01 1.52747702e-01]
[ -3.80864571e-01 9.24630834e-01 1.57068951e+02]]
什么我到目前为止做:
point = np.array([marker.x, marker.y, 1])
transform = rot_matrix * point.T
print transform
但是这并没有给我一个2×1矩阵,因为它应该,但是:
[[ 2.10815830e+02 7.92198307e+01 1.52747702e-01]
[ -8.68371221e+01 1.92323213e+02 1.57068951e+02]]
答
这会帮你吗?
定义两个数组xArray和yArray与要变换
for indexItem in xrange(len(xArray)):
point = np.array([xArray[indexItem], yArray[indexItem], 1])
transform = rot_matrix * point.T
print transform
它不是很雄辩,但应该做的伎俩点。如果你真的想创建一个标记阵列,那么你必须使用:
markers = zip(xArray, yArray)
你可以包含几行代码段的定义的例子,只是我清楚如何解决它?我有一个想法如何做,但我需要看看你有什么评论。 –
感谢您的关注,FlashTek的回答给了我正确的提示。 –