【发布时间】:2011-07-16 23:24:49
【问题描述】:
我正在开发一个草图搜索引擎,它将某人的草图与数据库中的图片相关联(数据库现在只有大约 40 张图片)。我这样做主要是为了好玩,所以我不太精通计算机成像技术。
首先,关于如何创建直方图(bin 大小、范围等)是否有任何经验法则?我正在使用在http://www.scribd.com/doc/6194304/Histograms 找到的一些直方图代码(但已移植到 JavaCV)。有时我得到好结果,有时我得到坏结果,大多数时候我得到“meh”的结果。我一直在用 bin 大小和范围试验 TON,我想知道比较高维直方图是否可能是这里的答案。
其次,在我当前的直方图设置中,黑色似乎非常重要(即使是一个黑点也会改变整个结果集)。这应该预期吗?还是我搞砸了什么?例子: 在点之后: 请注意我是如何将“earthrise”的图片作为“接近”匹配的。
我也想知道我应该使用什么方法来进行 blob 或特征分析。我认为像 SURF 这样的东西可能有点矫枉过正,因为我只想广泛比较 blob,而不是准确地映射模板。有什么方法可以在通过 Canny 过滤器后比较边缘? (如果可能的话,低复杂度):
例如,在这里,我希望两个笑脸位于顶部,因为针状笑脸“斑点”与笑脸形状的关系比与一束百香果或银河更密切相关。
长长的问题。如果您想亲自试用该引擎,请转至http://skrch.dvt.name/(无耻插件,我知道,我知道 - 仅适用于 FF/Chrome/Safari)。也许更有经验的计算机视觉人员可以根据结果提出建议。哦,我在比较直方图时使用了CV_COMP_BHATTACHARYYA 距离(似乎它给出了最好的结果,虽然卡方也不错)。
【问题讨论】:
标签: java language-agnostic opencv histogram surf