计算机视觉 - OpenCV SGBM 深度图中对象左侧的黑色边框



用Opencv StereoCalib校准了2台相同的相机。我有 0.32109 RMS 错误和 0.386568 平均重复误差校准结果

我认为这不是很大的校准误差。但是我用带有黑色左边框的opencv SGBM算法得到这个深度图

 int sgbmWinSize = 9;
    int cn = img1.channels();
    sgbm->setPreFilterCap(63);
    sgbm->setBlockSize(sgbmWinSize);
    sgbm->setP1(8 * cn*sgbmWinSize*sgbmWinSize);
    sgbm->setP2(32 * cn*sgbmWinSize*sgbmWinSize);
    sgbm->setMinDisparity(0);
    sgbm->setNumDisparities(numberOfDisparities);
    sgbm->setUniquenessRatio(10);
    sgbm->setSpeckleWindowSize(100);
    sgbm->setSpeckleRange(32);
    sgbm->setDisp12MaxDiff(1);
    sgbm->setMode(alg > 1 ? StereoSGBM::MODE_HH : StereoSGBM::MODE_SGBM);

怎么了?

非遮挡区域遮罩 除了视差图,对于立体匹配- 方法评估 有一个非 遮挡区域遮罩。 此面具以白色表示 为场景中从两者可见的像素着色 相机和黑色可见的像素 仅从一台摄像机

问题"解决"了

for(int y=0;y<height;y++){
   for(int x=0;x<width;x++){
       if(imageData[y*width+x]==0){
          imageData[y*width+x]=x>width/2?imageData[y*width+x+1]:imageData[y*width+x-1];}}}

相关内容

  • 没有找到相关文章

最新更新