使用sgbm的视差图
Disparity Map using sgbm
我用立体相机拍摄了两张包含两扇门(一扇打开,一扇关闭)的图像。这两个图像已经被校正并且没有失真。我已经尝试使用sgbm方法来生成视差图。以下是我为sgbm使用的参数。
numberOfDisparities = 48;
SAD windowsize = 9;
sgbm->setPreFilterCap(63);
sgbm->setBlockSize(9);
sgbm->setP1(8*cn*sgbmWinSize*sgbmWinSize); //cn=3,sgbmWinSize=9
sgbm->setP2(32*cn*sgbmWinSize*sgbmWinSize);
sgbm->setMinDisparity(0);
sgbm->setNumDisparities(48);
sgbm->setUniquenessRatio(1);
sgbm->setSpeckleWindowSize(100);
sgbm->setSpeckleRange(20);
sgbm->setDisp12MaxDiff(1);
sgbm->compute(img1, img2, disp);
disp.convertTo(disp8, CV_8UC1, 255/(numberOfDisparities*16.));
imshow("disparity8", disp8);
这两幅图像和视差图可以在下面的链接中找到。!(https://i.stack.imgur.com/Qbhh6.png)
我需要调整哪些参数才能进一步改善视差图?
此外,我想使用视差图生成深度图,但不确定如何进行。最后,我想通过使用深度图来检测打开的门。有人对此有什么建议或方法吗?
- 您可以调整块大小(仅限奇数)、numdisparity(%16=0)、唯一性比率,最高可达100
- 你也可以玩其他配置
- 此外,您可以使用opencv-contrib中的xfilter来改进sgbm中的视差图。它的作用是将阈值应用于视差图,将该阈值用作输入掩码来平滑视差图
相关文章:
- OpenCV - Python 断言错误:SAD 算法 - 立体相机视差图计算
- 在 c++ 或 python 中生成一个体面的视差图以在 Raspberry Pi 上实现的最佳方法(算法或函数)是什么
- 视差校正了Opengl中的立方体贴图
- OPENCV标准视差图无法正常工作
- OpenCV中移动相机的深度/视差图
- 视差图和校正图像之间的叠加
- 来自视差图的OpenCv深度估计
- openCV立体匹配算法(立体BM和立体SGBM)是否可以处理垂直校正图像
- 来自SINGLE校准相机的2个连续帧的视差图.有可能吗
- 在OpenCV中生成亚像素精度视差图
- Cocos2dx:如何停止CCFollow移动视差节点并使背景变黑
- 使用sgbm的视差图
- OpenCV的SGBM算法"cliptab"什么?
- Cocos2d-x视差无限滚动错误
- 视差图的颜色反转