下面是我想要反演的O刚矩阵:
rows: 5
cols: 5
dt: f
data: [ 927321., 1014163., 923303., 923303., 947641., 1014163.,
1260101., 1062130., 1062130., 1102823., 923303., 1062130.,
1004488., 1004488., 990651., 923303., 1062130., 1004488.,
1004488., 990651., 947641., 1102823., 990651., 990651., 1116004. ]
并使用这条线来反演上面的矩阵:
cvInvert(Mult, Inv, CV_LU);
逆后返回的矩阵如下:
rows: 5
cols: 5
dt: f
data: [ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 0., 0., 0., 0., 0., 0. ]
根据文件:
在LU方法中,函数返回src1行列式(src1必须是正方形)。如果它是0,则矩阵不是倒的,src2被填充为零。
但奇怪的是,我让我的朋友用这个矩阵在Matlab中做同样的事情,它返回了一个非零的矩阵。这意味着行列式不是零。那么,为什么opencv认为行列式是零呢?
谢谢
发布于 2011-07-22 01:12:47
给定的矩阵是秩亏(行列式为零),因此无法计算其逆。
发布于 2011-07-21 23:24:53
根据一个在线矩阵逆变器,逆是:
0.000 0.000 0.000 0.000 0.000
0.000 0.000 0.000 0.000 0.000
0.000 0.000 68719476736.000 -68719476736.000 0.000
0.000 0.000 -68719476736.000 68719476736.000 0.000
0.000 0.000 0.000 0.000 0.000
这是一个看上去很奇怪的矩阵,剩下的术语非常非常庞大。这意味着在线计算器有问题,因为确定性太大了,您的例程因大小而溢出,或者两者兼而有之。我愿意打赌,MatLab不会有这种大小限制,因此它的有效值。
https://stackoverflow.com/questions/6783941
复制相似问题