Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/151.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 基于SURF的微光图像检测_C++_Opencv_Surf_Light_Object Detection - Fatal编程技术网

C++ 基于SURF的微光图像检测

C++ 基于SURF的微光图像检测,c++,opencv,surf,light,object-detection,C++,Opencv,Surf,Light,Object Detection,我一直在使用来自的代码来检测对象。我是OpenCV和图像处理的初学者,一直在尝试理解SURF的工作原理。我有一些疑问 1.我一直在使用彩色图像进行检测,到目前为止效果很好。有人建议使用灰度图像,这会提高算法的性能吗 2.在代码中,仅通过距离小于3*mindist的匹配进行过滤的意义是什么 for( int i = 0; i < descriptors_object.rows; i++ ) { if( matches[i].distance < 3*min_dist ) {

我一直在使用来自的代码来检测对象。我是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]); }
}
for(int i=0;i
3.虽然在高亮度图像中检测很稳健(我使用900作为hessian值),但在弱光条件下,相同的图像不会被相同的hessian值检测到,有没有办法在两种情况下都使用相同的hessian值和相同的参考图像?cv::equalizeHist()有用吗?如果有用,有人能给我建议一种与冲浪检测代码集成的方法吗

4.返回匹配项的DMatch结构有一个称为distance的参数,该参数返回描述符之间的距离。这意味着什么?返回的距离是否有一个单位

5.我还想知道,在时间复杂度、尺度和旋转不变性方面,是否有比SURF更好的描述符用于目标检测

提前感谢您的时间和回复

  • SURF处理灰度图像

  • 有很多错误的随机匹配(因为如果你在img1中有100个特征,你将总是有100个匹配),过滤它们是个好主意。但更好的方法是检查相对距离(在中是如何做到的)

  • 是的,可以用。您只需使用修改后的图像而不是原始图像。 由于暗区域的像素强度和对比度较低,因此检测到的特征数量较少,这会降低检测器响应。当应用于暗图像时,直方图均衡化增加了对比度,从而增加了低于阈值的局部最大值的数量

    cv::Mat img1,img1 HISTEQ; cv::equalizeHist(img1,img1histEq)

  • SURF可以看作是128维向量。距离是某个空间中两个这样的向量之间的距离,通常是对应向量元素之间的平方差的欧几里德和。也可以使用其他指标,例如L1,但欧几里得是SURF最常用的指标

  • SIFT在不变性方面表现更好,但慢了3倍。您可以找到不同描述符的比较和。 不清楚你所说的“目标检测”是什么意思。你到底需要做什么

  • 我给出了OpenCV网站上的链接。至于SIFT,我听说过,它非常有效。但是没有更快的替代方案吗?(5)是关于可能替代方案的问题的答案。这取决于你的任务。你说的“我给了链接”是什么意思?你能详细说明equalizeHist()在弱光条件下如何帮助我使用SURF吗?对不起,我的意思是按照你在同一代码中的要求进行检测。在不同场景中检测到一幅参考图像。我已编辑了答案。您所做的不是“检测”,而是匹配两个视图。