Matrix 单应矩阵中的元素意味着什么?
我不熟悉图像处理,但我正在使用EMGU进行C#图像分析。然而,我知道单应矩阵并不是EMGU所独有的,所以也许有其他语言知识的人可以更好地解释 请(尽可能简化)有人解释一下每个元素的作用。我已经在网上查过了,但找不到一个我能完全理解的答案(正如我所说,我对这一切都有点陌生!) 我分析了两幅图像,都是二维的。因此,需要3x3矩阵来说明图像的旋转/平移。如果未检测到移动,则单应矩阵为: 100, 010, 001 我从研究(eg)中了解到: 10Tx, 01Ty, XXX 10,01位是x和y坐标的旋转。Tx和Ty位是平移运动,但XXX位是什么?这就是我不明白的?这与仿射变换有关吗?请有人解释一下: 1.如果我现在说的对的话。Matrix 单应矩阵中的元素意味着什么?,matrix,emgucv,homography,Matrix,Emgucv,Homography,我不熟悉图像处理,但我正在使用EMGU进行C#图像分析。然而,我知道单应矩阵并不是EMGU所独有的,所以也许有其他语言知识的人可以更好地解释 请(尽可能简化)有人解释一下每个元素的作用。我已经在网上查过了,但找不到一个我能完全理解的答案(正如我所说,我对这一切都有点陌生!) 我分析了两幅图像,都是二维的。因此,需要3x3矩阵来说明图像的旋转/平移。如果未检测到移动,则单应矩阵为: 100, 010, 001 我从研究(eg)中了解到: 10Tx, 01Ty, XXX 10,01位是x和y坐标的旋
2.XXX位的意思是什么如果你掌握了矩阵乘法,就不难理解了。假设您的点
x
为
/a\
\b/,
您希望通过A
旋转坐标系:
/3 4\
\5 6/
并通过t
/2\
\2/.
后面的矩阵是仿射变换的组成部分,用于获得新的点y
:
y = A*x + t = <a'; b'>T //(T means transposed).
以致
/a'\
y' = |b'| = B*x'
\ 1/
您可以从中提取y
。让我们看看它是如何工作的。在原始转换(使用加法)中,第一步是执行乘法,即旋转部分y\u r
:
y_r = A*x = <3a+4b; 5a+6b>T
正是我们所期望的。首先,计算旋转部分——加法和乘法。然后,将平移部分的x部分相加,乘以1
——它保持不变。第二排也是一样
在第三行中,删除a
和b
(乘以0
)。最后一部分保持不变,正好是1
。因此,最后一行的全部内容是“删除”点的值并保留1
因此,可以说,2x3矩阵就足够了。这在一定程度上是正确的,但有一个显著的缺点:您失去了可组合性。假设您对
B
基本满意,但希望镜像一个坐标。然后你可以选择另一个变换矩阵
/-1 0 0\
C = | 0 1 0|
\ 0 0 1/
并有结果
y'' = C*B*x' = <-3a+4b+2; 5a+6b+2; 1>T
y'=C*B*x'=T
由于矩阵乘法的特性,对于2x3矩阵,这种简单的乘法不能那么容易地实现
原则上,在上面,最后一行(XXX)也可以是
形式的任何其他行。它只是为了删除点值。然而,正是这样才有必要让乘法作曲起作用
最后,在这种情况下,对我来说似乎是非常有用的。首先,仿射变换是那些保持直线的变换,并且可以是任意维数的变换 单应描述跨越两个平面的映射,或者在纯摄影机旋转过程中发生的情况
最后一行表示各种剪切(即x是x和y的函数)对您有帮助吗?如果是这样的话,我们可以把这件事当作一个骗局来了结。不是真的。。。正如我所说,我是新手,所以你必须忍受我。。。我知道我们不能使用非平方矩阵,但我仍然不知道最后一行是做什么的?例如,在我做的研究中,它使用第三行计算了一个Z=1/tz,但我不知道这个tz是什么,因此我不知道Z是什么。@Mattb2291检查这个答案,看看单应与旋转和平移的关系,并将一个2D点投影到3D坐标。3x3矩阵在齐次坐标系中
1) a' = 3*a + 4*b + 2*1
2) b' = 5*a + 6*b + 2*1
3) the rest: 0*a + 0*b + 1*1 = 1
/-1 0 0\
C = | 0 1 0|
\ 0 0 1/
y'' = C*B*x' = <-3a+4b+2; 5a+6b+2; 1>T