【发布时间】:2015-05-27 15:36:12
【问题描述】:
我正在用 opencv 和立体相机做一个程序。我想知道下面第一台摄像机中检测到的点和第二台摄像机中检测到的点。我的想法是我有一些检测器、提取器和匹配方法,并且按照 opencv 中的示例,我有一个算法来过滤匹配并只绘制好的匹配,但在我的情况下,min_dist 参数取决于我的 trackBar 位置。
这是opencv例子的代码:http://docs.opencv.org/doc/tutorials/features2d/feature_flann_matcher/feature_flann_matcher.html#feature-flann-matcher
我做了一些改变来移动比赛之间的最小距离。
//TrackBar position
dist_track = getTrackbarPos(nombreTrackbar, BUTTON_WINDOW);
cout <<"Posicion de la barra: " << dist_track << endl;
good_matches.clear();
//Obtain good_matches
for( int i = 0; i < descriptors[0].rows; i++ )
{ if( matches[i].distance <= coef*dist_track)
{ good_matches.push_back( matches[i]);}
}
主要的想法是,当我将 trackBar 放在开头时,我有正确的匹配项,但是当 trackbar 放在最后时,我发现的匹配项不正确。在这种情况下,我找到了很多匹配项,但其中很多都是错误的。
现在我正在尝试正确处理图像。我想在 drawmatches 函数中使用掩码来强制检测到的第二个摄像头点必须靠近核线。有人可以问我一些事情吗? 有人知道如何使用 mask 参数来强制创建的匹配器需要在极线中吗?
或者如何创建掩码参数?
谢谢朋友!
【问题讨论】: