【发布时间】:2011-12-15 13:31:33
【问题描述】:
我使用了this的答案并编写了自己的程序,但是我有一个具体的问题。
如果图像没有对象,matchTemplate 不会抛出错误,我不知道有什么方法可以检查matchTemplate 是否找到对象,谁能给我建议,或者给我一个检查这个的函数名。
【问题讨论】:
标签: opencv object-detection matchtemplate
我使用了this的答案并编写了自己的程序,但是我有一个具体的问题。
如果图像没有对象,matchTemplate 不会抛出错误,我不知道有什么方法可以检查matchTemplate 是否找到对象,谁能给我建议,或者给我一个检查这个的函数名。
【问题讨论】:
标签: opencv object-detection matchtemplate
matchTemplate() 返回一个矩阵,其值表示您的对象在该像素中居中的概率。如果您知道该对象(并且只有一个对象)在那里,您所要做的就是寻找最大值的位置。
如果你不知道,你必须找到最大值,如果它高于某个阈值,你的对象应该在那里。
现在,选择该阈值很棘手 - 由您自己决定专门为您的应用找到合适的阈值。当然你会有一些误报(当没有对象,但最大值大于阈值时)和一些误报(你的对象没有创建足够大的峰值)
选择阈值的方法是收集一个相当大的图像数据库,里面有和没有你的物体,并统计物体在里面的时候峰值有多大,没有的时候有多大,并选择最能区分这两个类的阈值
【讨论】:
matchTemplate() 返回概率,为什么我会从返回矩阵中得到负值。你有什么想法吗?