用于从给定枢轴点缩放图像的算法

use*_*543 5 scaling 2d image-manipulation image

标准缩放使用图像的中心作为枢轴点,并且在所有维度上均匀.我想找出一种方法来从任意枢轴点缩放图像,使得更接近枢轴点的点比远离该点的点缩小.

hel*_*ios 4

好吧,我不知道你正在使用什么框架/库,但你可以将其视为:

  • 平移以使枢轴点成为中心点
  • 标准缩放
  • 相反的平移使中心点成为原始枢轴点

平移和缩放是同构的,因此您可以将它们表示为矩阵。每个变换都是一个矩阵,您可以将它们相乘以找到组合变换矩阵。所以:

  • T = 转换
  • S = 缩放
  • T' = 相反变换

如果您应用 Tx 作为 x 点向量,它会给您新的坐标。Sx 也一样

因此,如果您想执行该操作,则必须执行:T'。(S.(德克萨斯州))

我认为你可以关联操作,所以它与 (T'.ST).x 相同

如果您使用框架,则应用三个操作(或组合操作并应用)。如果您使用的是粗略的数学...请采用矩阵方式:)

PS:如果你用手做的话。我知道,如果您要缩放,您将希望找到给定变换点的原始点的坐标。因此,您可以迭代结果点(每个像素)并查看必须使用原始图像中的哪些坐标(或中间的点)。在这种情况下,您需要的是逆矩阵。因此,您不想使用 S,而是使用 S^(-1)。如果您知道要应用 T'.ST,您可以找到此结果矩阵,然后找到 (T'.ST)^(-1)。然后,您可以使用逆矩阵来查找给定结果点的原始点。