Octave分部归零

时间:2015-03-18 17:40:42

标签: octave division

我正在写一个简单的八度程序来计算两个图像之间的相似性。

这个问题的相关部分可以在这里找到:

http://pastebin.com/gBxN7VbP

函数 struct_comp 应该在0和1之间返回一些数字。但命令

ec = (corr + C) / (dp1 * dp2 + C);

将ec设置为0,即使它不应为零。

disp命令显示此分区中涉及的所有变量的值。输出是:

  

C:

     

6.5536

     

DP1

     

97.663

     

DP2

     

47.686

     

更正件

     

-290

     

(corr + C)

     

-283

     

(dp1 * dp2 + C)

     

4663.7

     

(corr + C)/(dp1 * dp2 + C)

     

0

     

Struct comp:

     

0

如您所见,部分值(分子和分母)是正确的,但除法返回零。

有人知道这里发生了什么吗?

谢谢。

修改

用于生成此输出的两个图像是:

http://lasca.ic.unicamp.br/~hilder/tux.jpg

http://lasca.ic.unicamp.br/~hilder/monalisa.jpg

但您可以使用任何灰度图像进行测试,只需更改代码中的名称即可。

1 个答案:

答案 0 :(得分:1)

我替换了

ec = (corr + C) / (dp1 * dp2 + C);

通过

ec = double(corr + C) / double(dp1 * dp2 + C);

并且有效。