【发布时间】:2013-11-17 06:59:25
【问题描述】:
我一直在使用the OpenCV website 的代码来检测物体。我是 OpenCV 和图像处理的初学者,一直在尝试了解 SURF 的工作原理。我有一些疑问。
1.我一直使用彩色图像进行检测,目前效果不错。有人推荐使用灰度图像,会不会提高算法的性能?
2.在代码中,只过滤距离小于3*mindist的匹配有什么意义?
for( int i = 0; i < descriptors_object.rows; i++ )
{ if( matches[i].distance < 3*min_dist )
{ good_matches.push_back( matches[i]); }
}
3.虽然检测在高照度图像中是稳健的(我使用 900 作为粗麻布值),但在低光照条件下,相同的图像不会以相同的粗麻布值检测到,有没有办法同时使用两种情况下相同的粗麻布值和相同的参考图像?cv::equalizeHist() 有用吗?如果有用,有人可以建议我与 SURF 检测代码集成的方法吗?
4.返回matches的DMatch结构有一个参数叫distance,它返回描述符之间的距离。这是什么意思?返回的距离有单位吗?
5.我也想知道在时间复杂度、尺度和旋转不变性方面是否有比SURF更好的描述符用于物体检测。
提前感谢您的时间和回复。
【问题讨论】:
标签: c++ opencv surf light object-detection