立体视觉中的深度计算与处理
1. 散斑过滤基础
在立体视觉处理中,散斑过滤是一个重要的环节。每个像素都作为构建连通分量的基础,通过可变范围的泛洪填充来定义连通分量。可变范围泛洪填充仅在相邻像素处于当前像素的一定范围内时才会将其包含在内。一旦计算出连通分量,如果其大小小于散斑窗口,则被视为散斑。这个范围的大小称为散斑范围,通常是一个较小的数字,大多数情况下 1 或 2 就可以,不过 4 也是常见的值。
2. 使用 cv::StereoBM 计算立体深度
2.1 类定义
在 OpenCV 中,块匹配算法通过 cv::StereoBM 类实现,它继承自 cv::StereoMatcher 类。以下是这两个类的定义:
class StereoMatcher : public Algorithm {
public:
// 返回的深度图具有 CV_16UC1 类型,元素实际上是具有 DISP_SHIFT=4 位小数的定点数
enum {
DISP_SHIFT = 4,
DISP_SCALE = (1 << DISP_SHIFT)
};
// 主要方法,接受两个灰度 8 位校正图像并输出 16 位定点视差图
virtual void compute(
InputArray left,
InputArray right,
OutputArray disparity
) = 0;
// 最小视差,通常为 0
超级会员免费看
订阅专栏 解锁全文
877

被折叠的 条评论
为什么被折叠?



