我是OpenCV的新手,正在使用两个网络摄像头进行立体项目的工作。我可以将网络摄像头捕获的内容显示在左右视频中。我想要做以下事情:当我在左侧框架上点击任何一点时,我想要在右侧图像上找到相应的匹配点(使用块匹配或其他算法将点投影到第二视角)。这样我就可以计算视差。如何实现?提前感谢。
我是OpenCV的新手,正在使用两个网络摄像头进行立体项目的工作。我可以将网络摄像头捕获的内容显示在左右视频中。我想要做以下事情:当我在左侧框架上点击任何一点时,我想要在右侧图像上找到相应的匹配点(使用块匹配或其他算法将点投影到第二视角)。这样我就可以计算视差。如何实现?提前感谢。
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);
然后像这样匹配图像对:
// disp will hold correspondences for each pixel in your pair of images.
myStereoVar(InputArray left, InputArray right, OutputArray disp);
cv::Mat
转换为一个InputArray
,但这应该很简单。