python - 使用 openCV 和 python 旋转 2D 点

标签 python opencv matrix rotation

我正在使用 cv2.getRotationMatrix2D 获取 2x3 矩阵来旋转源图像。这很好用。现在我有几个二维坐标,它们代表未旋转图像中的点。 我可以使用相同的矩阵来旋转各个点吗?如果可以,如何旋转? 如果我理解正确,我应该能够将矩阵与 (x,y) 坐标相乘,但无论我尝试哪种矩阵和点的组合,我都不会得到简单的 x 和 y 坐标。

感谢您的帮助!

编辑:

旋转矩阵为

[[  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

但这并没有给我一个应有的 2x1 矩阵,但是:

[[  2.10815830e+02   7.92198307e+01   1.52747702e-01]
 [ -8.68371221e+01   1.92323213e+02   1.57068951e+02]]

最佳答案

请检查此site 。由于 cv2.getRotationMatrix2D 创建仿射变换,您可以像这样编写调用结果:

.

如果您现在想要变换 2D 点,则必须计算此表达式


这应该可以解决您的问题。 (所有图片均来自引用文档页面)

编辑:关于您的编辑:您不能使用 * 运算符,但应该使用 np.dot()* 运算符仅对矩阵对象执行实矩阵向量乘积。否则,它正在执行逐元素乘积。

关于python - 使用 openCV 和 python 旋转 2D 点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46039108/

相关文章:

c++ - 有什么简单的方法可以将 cv::Rect 大小和坐标相乘吗?

matlab - 如何在 MATLAB 中可视化稀疏矩阵?

android - 在JavaCameraView中设置帧频

opencv - 使用OpenCV构建UI

r - 如何将频率分布转换为 R 中的概率分布

matlab - 如何在 MATLAB 中使用线性索引为 4 维矩阵的对角线赋值?

python - 从存储在Python变量中的数据播放声音

python - 通过 Python (lxml) 在 xml 中更改父级

python - 为什么我可以在 Debug模式下在同一个 IP 地址和端口上运行多个 django 应用程序?

python - Mongoengine 根据最后一个索引对列表嵌入字段进行过滤查询