【发布时间】:2015-03-18 17:40:42
【问题描述】:
我正在编写一个简单的 octave 程序来计算两个图像之间的相似度。
这个问题的相关部分可以在这里找到:
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
结构组合:
0
如您所见,部分值(分子和分母)是正确的,但除法返回零。
有人知道这里发生了什么吗?
谢谢。
编辑:
用于生成此输出的两个图像是:
http://lasca.ic.unicamp.br/~hilder/tux.jpg
http://lasca.ic.unicamp.br/~hilder/monalisa.jpg
但是你可以用任何灰度图来测试,只要在代码里改个名字就行了。
【问题讨论】:
-
没有 tux.jpg 和 monalisa.jpg 你的代码在这里不起作用。显示相同问题的较小代码会更好...一些提示:在“struct_comp”函数的末尾插入
keyboard。这对于调试目的非常方便。并避免global。 -
我编辑了问题并添加了我使用的两张图片。我不知道这个
keyboard函数。我会搜索有关它的更多信息。