【问题标题】:How to get transformation matrix using old transformation matrics and co-ordinates?如何使用旧的变换矩阵和坐标获得变换矩阵?
【发布时间】:2015-04-18 05:24:44
【问题描述】:

你好朋友可以告诉我下面Qtransform中基本矩阵运算公式中的w'是什么代码以及透视和仿射变换之间的区别。实际上,我试图找出 Img3 转换的值是多少?

x' = m11*x + m21*y + dx
y' = m22*y + m12*x + dy
if (is not affine) 
{
     w' = m13*x + m23*y + m33
     x' /= w'
     y' /= w'

}

【问题讨论】:

  • 你有什么问题?
  • 在上面的矩阵公式中w'是什么?实际上,我正在尝试从 8 根线计算矩阵,您可以从我之前的问题 stackoverflow.com/questions/29671481/… 中看到两个图像我正在尝试在 Img2 中找到紫色矩形的变换矩阵
  • 计算是一个很模糊的词。
  • 是的,m11 等函数告诉你矩形对象的变换矩阵。
  • 所以你想要一个函数来告诉你在外部调整大小后内部的坐标应该在哪里?

标签: c++ qt transform


【解决方案1】:

w' 只是他们用来存储从m13*x + m23*y + m33 获得的数据的变量 它只是一个变量。

仿射变换是任何保持不变的变换(例如反射、旋转、剪切、平移等) 共线性(即,位于一条线上的所有点最初仍然位于 转换后的一行)(Wolfram 1)

仿射变换也称为亲和力。

透视变换是指从3d世界投影到2d图像(屏幕)的“变换”。

//编辑

I am trying to find transformation matrix of purple rect in Img2

这是变换矩阵:

这也是变换矩阵:

QTransform::m11 (), 
QTransform::m12 (), 
QTransform::m13 (), 
QTransform::m21 (), 
QTransform::m22 (),
QTransform::m23 (),
QTransform::m31 (),
QTransform::m32 (),
QTransform::m33 ()

这些函数为您提供变换矩阵 如果你去 Math.SE,它会帮助你更多,因为他们在那里做所有的数学工作......

【讨论】:

  • 实际上,当我在 img1 中旋转紫色矩形时,我会对其进行转换,但之后当我调整外部矩形的大小时,内部矩形会适合外部我已经通过计算内部矩形的绳索来管理它旋转时,然后我只是使用painterpath而不是使用设置变换在外部矩形内绘制它,但我想在img2中找到紫色矩形的变换。有什么办法可以找到吗?
  • 你想旋转角度吗?
  • 紫色矩形从img1到img2的变换是旋转。
  • 实际上最初的内部矩形和外部矩形的大小相同,当我旋转内部矩形时,外部矩形会根据内部矩形的旋转调整大小,现在当我调整外部矩形的大小时,我只需绘制点使用外部和内部矩形点之间的距离百分比。实际上两者都可以调整大小,但内部通过设置绳索而不是转换来适应外部但看起来它已经转换了所以我想找到那个转换矩阵
  • 你能贴一张外直和内直的图片来看看你想要的吗?
猜你喜欢
  • 2012-02-08
  • 2012-02-07
  • 1970-01-01
  • 1970-01-01
  • 2022-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多