c# - 如何从 C# 中的 3x3 单应矩阵获取旋转、平移、剪切

标签 c# windows-8 transformation homography

我计算了 3x3 单应矩阵,我需要获取旋转、平移、剪切和缩放以将它们用作 windows8 媒体元素属性中的参数?!

最佳答案

参见 https://math.stackexchange.com/questions/78137/decomposition-of-a-nonsquare-affine-matrix

def getComponents(normalised_homography):
  '''((translationx, translationy), rotation, (scalex, scaley), shear)'''
  a = normalised_homography[0,0]
  b = normalised_homography[0,1]
  c = normalised_homography[0,2]
  d = normalised_homography[1,0]
  e = normalised_homography[1,1]
  f = normalised_homography[1,2]

  p = math.sqrt(a*a + b*b)
  r = (a*e - b*d)/(p)
  q = (a*d+b*e)/(a*e - b*d)

  translation = (c,f)
  scale = (p,r)
  shear = q
  theta = math.atan2(b,a)

  return (translation, theta, scale, shear)

关于c# - 如何从 C# 中的 3x3 单应矩阵获取旋转、平移、剪切,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15420693/

相关文章:

c++ - OpenGL - 将变换应用于 3D 空间中的多边形

c# - 具有空列表(零计数)的 OData 结果导致错误

c# - 删除动态创建的控件

python - PYODBC 到 Pandas - DataFrame 不工作 - 传递值的形状是 (x,y),索引暗示 (w,z)

c# - 指针按下 : left or right button?

c# - 矩阵/坐标变换顺序

android - 在Android中获取动画的变换矩阵

c# - ListView /列表过滤器 Windows Phone 8.1 C#

c# - 如何将 BGR 字节数组转换为图像

javascript - WinJS:检查是否在 Debug模式下运行