请帮我把opencv matlab矩阵乘法

3视图(30天)
亲爱的担心,我面临一个问题一个opencv的矩阵乘法运算转换成matlab似乎很容易,但它是给我不同的输出。我有两个矩阵:
transformationMatrix =
-7.04442501068115 0 2239.44677734375
0 1.53200602531433 -2508.06420898438
0 6.14454364776611 -1048.95043945313
0 -0.00281885638833046 0.481214046478271
matrixmultiplier =
317.903421890249 460 100 317.903421890249
220 220 220 350
1 1 1 1
在使用opencv的代码和输出成为:CvMat * 结果= cvCreateMat (resultRows resultCols CV_32FC1);cvMatMul (&transformationMatrix, &matrixmultiplier,结果)=
-3.88010430469876 -1000.98872756958 1535.00427627563 -3.88010430469876 e-05 e-05
-2171.02288341522 -2171.02288341522 -2171.02288341522 -1971.86210012436
302.84916305542 302.84916305542 302.84916305542 1101.63983726501
-0.13893435895443 -0.13893435895443 -0.13893435895443 -0.505385689437389
但是当使用matlab代码和输出就变成:transformedMatrix * matrixmultiplier =
3.18194215651602 -1000.98870849609 1535.00427246094 3.18194215651602 e-05 e-05
-2171.02294921875 -2171.02294921875 -2171.02294921875 -1971.86206054688
302.849151611328 302.849151611328 302.849151611328 1101.63989257813
-0.13893435895443 -0.13893435895443 -0.13893435895443 -0.50538569688797
我需要紧急帮助找到错误编码来理解两个输出之间的差异。
谢谢提前

接受的答案

大卫年轻
大卫年轻 2015年10月11日
你的代码是可以的,只是舍入误差。注意,更小的差异,许多数量级,比最大的元素矩阵。很可能OpenCV和MATLAB计算在不同的顺序,结果在这些微小的差异。
有关更多信息,请参见 这个常见问题解答 ,或者把“舍入误差”到这个页面上的搜索框。
3评论

登录置评。

更多的答案(0)

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!