OpenCV 立体匹配

dra*_*ook 5 opencv match disparity-mapping stereo-3d

我是 OpenCV 的新手。我正在使用 2 个网络摄像头进行立体声项目。我可以将网络摄像头捕获显示为左右视频。我想执行以下操作:当我单击左侧框架上的任何点时,我想在右侧图像上找到匹配点(有点使用块匹配或任何其他算法在第二个视图上投影该点)。所以我可以计算差异。我怎样才能做到这一点?提前致谢。

sol*_*les 3

OpenCV 的StereoVar对象可能是一个很好的起点。

您可以创建一个StereoVar像这样的对象:

StereoVar myStereoVar(int levels, double pyrScale,
                                int nIt, int minDisp, int maxDisp,
                                int poly_n, double poly_sigma, float fi,
                                float lambda, int penalization, int cycle,
                                int flags);
Run Code Online (Sandbox Code Playgroud)

然后匹配像这样的图像对:

// disp will hold correspondences for each pixel in your pair of images.
myStereoVar(InputArray left, InputArray right, OutputArray disp); 
Run Code Online (Sandbox Code Playgroud)

您可能必须将您的转换cv::MatInputArray,但这应该非常简单。

至于点击像素来查看对应关系,我打赌这是可能的,但让我们在对应计算启动并运行后担心这一点。