首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >矩阵的cvInvert()返回0矩阵?但是在Matlab中返回实际值。

矩阵的cvInvert()返回0矩阵?但是在Matlab中返回实际值。
EN

Stack Overflow用户
提问于 2011-07-21 23:11:33
回答 2查看 1.4K关注 0票数 1

下面是我想要反演的O刚矩阵:

代码语言:javascript
运行
复制
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. ]

并使用这条线来反演上面的矩阵:

代码语言:javascript
运行
复制
cvInvert(Mult, Inv, CV_LU);

逆后返回的矩阵如下:

代码语言:javascript
运行
复制
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认为行列式是零呢?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2011-07-22 01:12:47

给定的矩阵是秩亏(行列式为零),因此无法计算其逆。

票数 1
EN

Stack Overflow用户

发布于 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不会有这种大小限制,因此它的有效值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6783941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档