【问题标题】:How to rotate an image about a point that is not the image's center point using MATLAB?如何使用 MATLAB 围绕不是图像中心点的点旋转图像?
【发布时间】:2012-04-19 02:13:43
【问题描述】:

使用 MATLAB 围绕不是图像中心点的点旋转图像的方法是什么?

【问题讨论】:

  • 可以使用IMTRANSFORM函数。

标签: matlab image-processing rotation


【解决方案1】:

要绕原点以外的点旋转:

  1. 将要旋转的点平移到原点。例如,如果您想围绕 (3,5) 旋转,则需要平移 (-3,-5)。
  2. 执行轮换。
  3. 撤消初始翻译。因此,在我的示例中,您现在将翻译为 (+3,+5)。

【讨论】:

【解决方案2】:

两个相同角度的旋转等于一次平移。因此,您可以围绕中心进行旋转,然后平移图像以将您自己的旋转中心置于其旧位置。

【讨论】:

  • “相同角度的两次旋转等于一次平移。”不完全是。
  • “相同角度的两次旋转等于一次平移。”这取决于旋转的中心以及正在执行的其他转换以及它们执行的顺序。相同角度 x 的两次旋转本身等于 2x 的一次旋转 - 而不是平移。我认为您试图说正确的话,但是您说的方式不清楚。
【解决方案3】:

“旋转”的帮助说:

ROTATE 围绕指定的原点和方向旋转对象。 ROTATE(H,[THETA PHI],ALPHA) 使用手柄 H 旋转对象 通过关于由 2 元素描述的轴的角度 ALPHA 方向矢量 [THETA PHI](球坐标)。
所有的角度都以度为单位。 H 中的句柄必须是子句柄 相同的轴。

...

ROTATE(...,ORIGIN) 以点 ORIGIN = [x0,y0,y0] 为中心 旋转而不是绘图框的中心。

【讨论】:

  • 我认为他是在询问imrotate的功能
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-16
  • 1970-01-01
  • 1970-01-01
  • 2023-04-07
  • 1970-01-01
相关资源
最近更新 更多