jjzjj

StereoBM

全部标签

java - StereoBM 无法提供正确的输出

我看过很多关于这个问题的帖子,但这个是不同的。我的代码适用于一对图像,但不适用于另一对图像。稍后,我想将两个摄像头的视频输入转换为立体声输出。我试过了,但也有与下面显示的图像(第二对图像)相同的问题。下面的图片给出了预期的输出下面的图片给出了错误的输出如何更正我的代码,使其适用于所有图像?这是我的代码publicstaticvoidmain(String[]args){Matleft=Imgcodecs.imread("path",Imgcodecs.CV_LOAD_IMAGE_GRAYSCALE);Matright=Imgcodecs.imread("path",Imgcodecs.

c++ - opencv 中的 StereoBM 类是否对输入图像或帧进行校正?

作为我项目的一部分,我将SteroBM类用于立体视觉。我正在从2个网络摄像头获取输入帧,并在不进行校正的情况下对输入帧灰度帧运行立体block匹配计算。我得到的输出与基本事实相去甚远(非常不完整)。我想知道,是不是因为我没有对输入帧进行整改。此外,我选择的基线保持在20厘米。我使用的是opencv-3.2.0版本的c++。我正在运行的代码如下。#include#include#include#include#include#include#include#includeusingnamespacestd;usingnamespacecv;intmain(){//initializean

c++ - 对于简单的 StereoBM 算法,为什么我的代码比 opencv 慢得多?

这是我的测试代码,用于实现一个简单的testBM算法,没有预过滤。但当窗口尺寸较大时,它需要大约400毫秒甚至更多,而opencv的StereoBM(CPU而非GPU)需要20毫秒。我已经检查了StereoBM的来源,但我很难理解它。有谁知道为什么?下面是我的代码。voidtestBM(constMat&left0,constMat&right0,Mat&disparity,intSAD,intsearchRange){intcols=left0.cols;introws=left0.rows;inttotal=cols*rows;constuchar*data_left=left0.