代码之家  ›  专栏  ›  技术社区  ›  ffttyy

OpenCV 3.3处理视差图返回的结果较小

  •  0
  • ffttyy  · 技术社区  · 8 年前

    我正在尝试从立体图像中获取视差图。当我尝试时 stereo_match.cpp

    是关于参数吗?原因是什么?如何解决?

    如何通过更改参数或其他事情来改善结果?

    Ptr<StereoSGBM> sbm = StereoSGBM::create(16, 64, 3, 48, 192, 0, 0,10,200,100);
    CV_WRAP static Ptr<StereoSGBM> create(int minDisparity = 0, int numDisparities = 16, int blockSize = 3,
                                              int P1 = 0, int P2 = 0, int disp12MaxDiff = 0,
                                              int preFilterCap = 0, int uniquenessRatio = 0,
                                              int speckleWindowSize = 0, int speckleRange = 0,
                                              int mode = StereoSGBM::MODE_SGBM);
    

    enter image description here enter image description here enter image description here

    1 回复  |  直到 8 年前
        1
  •  1
  •   Kamil Szelag    8 年前

    以下是视差图创建的理论解释:

    https://www.eecis.udel.edu/~grauerg/globalStereoPresCompVisionClass.pdf

    为了创建视差或深度图,两个摄像机上都应该有一个可见的对象。在您的示例中,视差图显示了相机的公共视野。

    如果你想增加这个视野,你可以把摄像机移近一点,但这是有成本的。在z维度上的精度会降低,噪声会增加。