【发布时间】:2016-07-11 10:23:27
【问题描述】:
假设我有图像,我需要在任何方向上旋转 90 度,我就是不明白如何做到这一点。我需要使用矩阵,其中宽度 - 它是 X,高度 - 它是 Y。我已经将图像旋转 180 度,但无法计算出 90 度。
以下是示例。假设我有一个 3x4 像素的图像。宽度 = 3,高度 = 4,每个单元格中的数据量 - N = Width * Height = 3 * 4 = 12。让我们制作矩阵:
轻松遍历矩阵的公式是y*Width + x。而我们旋转180度的公式是:
N - Width + x - y * Width
所以我们有:
DataOut [y * Width + x] = DataIn [N - Width + x - y * Width]
使用这个公式我们得到:
但是我想不出旋转90度的公式。你能帮帮我吗?
【问题讨论】:
-
您需要为此进行矩阵乘法,例如90 度旋转矩阵为
[[0, -1], [1, 0]],180 度矩阵为[[-1, 0], [0, -1]]。将每个点与矩阵相乘以获得该点的旋转位置。对于任意角度a,旋转矩阵为[[cos(a), -sin(a)], [sin(a), cos(a)]]。