类 StereoSGBM


  • public class StereoSGBM
    extends StereoMatcher
    该类实现了修改后的 H. Hirschmuller 算法 CITE: HH08,与原始算法的区别如下
    • 默认情况下,该算法是单通道的,这意味着您只考虑 5 个方向而不是 8 个。在 createStereoSGBM 中将 mode=StereoSGBM::MODE_HH 设置为运行该算法的完整变体,但请注意它可能会消耗大量内存。
    • 该算法匹配的是块,而不是单个像素。不过,将 blockSize=1 设置为 1 会将块缩减为单个像素。
    • 互信息成本函数未实现。相反,使用了 CITE: BT98 中更简单的 Birchfield-Tomasi 亚像素度量。不过,也支持彩色图像。
    • 包含了 K. Konolige 算法 StereoBM 中的一些预处理和后处理步骤,例如:预过滤 (StereoBM::PREFILTER_XSOBEL 类型) 和后过滤(唯一性检查、二次插值和散斑过滤)。
    注意
    • (Python) 可以在 opencv_source_code/samples/python/stereo_match.py 中找到一个演示 StereoSGBM 匹配算法使用的示例。
    • 构造函数详细信息

      • StereoSGBM

        protected StereoSGBM​(long addr)
    • 方法详细信息

      • __fromPtr__

        public static StereoSGBM __fromPtr__​(long addr)
      • getPreFilterCap

        public int getPreFilterCap()
      • setPreFilterCap

        public void setPreFilterCap​(int preFilterCap)
      • getUniquenessRatio

        public int getUniquenessRatio()
      • setUniquenessRatio

        public void setUniquenessRatio​(int uniquenessRatio)
      • getP1

        public int getP1()
      • setP1

        public void setP1​(int P1)
      • getP2

        public int getP2()
      • setP2

        public void setP2​(int P2)
      • getMode

        public int getMode()
      • setMode

        public void setMode​(int mode)
      • create

        public static StereoSGBM create​(int minDisparity,
                                        int numDisparities,
                                        int blockSize,
                                        int P1,
                                        int P2,
                                        int disp12MaxDiff,
                                        int preFilterCap,
                                        int uniquenessRatio,
                                        int speckleWindowSize,
                                        int speckleRange,
                                        int mode)
        创建 StereoSGBM 对象
        参数
        minDisparity - 最小视差值。通常为零,但有时校正算法会平移图像,因此需要相应地调整此参数。
        numDisparities - 最大视差减去最小视差。该值始终大于零。在当前实现中,此参数必须能被 16 整除。
        blockSize - 匹配块大小。它必须是一个大于等于 1 的奇数。通常,它应该在 3 到 11 的范围内。
        P1 - 控制视差平滑度的第一个参数。详见下文。
        P2 - 控制视差平滑度的第二个参数。值越大,视差越平滑。P1 是相邻像素间视差变化加一或减一的惩罚。P2 是相邻像素间视差变化大于一的惩罚。算法要求 P2 > P1。请参见 stereo_match.cpp 示例,其中显示了一些合理的 P1 和 P2 值(例如 8 * 图像通道数 * blockSize * blockSize 和 32 * 图像通道数 * blockSize * blockSize)。
        disp12MaxDiff - 左右视差检查中允许的最大差异(以整数像素单位计)。将其设置为非正值以禁用检查。
        preFilterCap - 预过滤图像像素的截断值。算法首先计算每个像素的 x 导数,并将其值截断到 [-preFilterCap, preFilterCap] 区间。结果值将传递给 Birchfield-Tomasi 像素成本函数。
        uniquenessRatio - 以百分比表示的裕量,最佳(最小)计算成本函数值应“胜过”次佳值,才能认为找到的匹配是正确的。通常,5-15 范围内的值就足够了。
        speckleWindowSize - 平滑视差区域的最大尺寸,用于识别其噪声散斑并使其失效。将其设置为 0 以禁用散斑过滤。否则,将其设置为 50-200 范围内的某个值。
        speckleRange - 每个连通组件内允许的最大视差变化。如果您进行散斑过滤,请将此参数设置为正值,它将隐式乘以 16。通常,1 或 2 就足够了。
        mode - 将其设置为 StereoSGBM::MODE_HH 以运行完整的两遍动态规划算法。它将消耗 O(W*H*numDisparities) 字节,这对于 640x480 立体图像来说很大,对于高清尺寸的图像来说更是巨大。默认情况下,它设置为 false。第一个构造函数使用所有默认参数初始化 StereoSGBM。因此,您至少需要设置 StereoSGBM::numDisparities。第二个构造函数使您能够将每个参数设置为自定义值。
        返回
        自动生成
      • create

        public static StereoSGBM create​(int minDisparity,
                                        int numDisparities,
                                        int blockSize,
                                        int P1,
                                        int P2,
                                        int disp12MaxDiff,
                                        int preFilterCap,
                                        int uniquenessRatio,
                                        int speckleWindowSize,
                                        int speckleRange)
        创建 StereoSGBM 对象
        参数
        minDisparity - 最小视差值。通常为零,但有时校正算法会平移图像,因此需要相应地调整此参数。
        numDisparities - 最大视差减去最小视差。该值始终大于零。在当前实现中,此参数必须能被 16 整除。
        blockSize - 匹配块大小。它必须是一个大于等于 1 的奇数。通常,它应该在 3 到 11 的范围内。
        P1 - 控制视差平滑度的第一个参数。详见下文。
        P2 - 控制视差平滑度的第二个参数。值越大,视差越平滑。P1 是相邻像素间视差变化加一或减一的惩罚。P2 是相邻像素间视差变化大于一的惩罚。算法要求 P2 > P1。请参见 stereo_match.cpp 示例,其中显示了一些合理的 P1 和 P2 值(例如 8 * 图像通道数 * blockSize * blockSize 和 32 * 图像通道数 * blockSize * blockSize)。
        disp12MaxDiff - 左右视差检查中允许的最大差异(以整数像素单位计)。将其设置为非正值以禁用检查。
        preFilterCap - 预过滤图像像素的截断值。算法首先计算每个像素的 x 导数,并将其值截断到 [-preFilterCap, preFilterCap] 区间。结果值将传递给 Birchfield-Tomasi 像素成本函数。
        uniquenessRatio - 以百分比表示的裕量,最佳(最小)计算成本函数值应“胜过”次佳值,才能认为找到的匹配是正确的。通常,5-15 范围内的值就足够了。
        speckleWindowSize - 平滑视差区域的最大尺寸,用于识别其噪声散斑并使其失效。将其设置为 0 以禁用散斑过滤。否则,将其设置为 50-200 范围内的某个值。
        speckleRange - 每个连通组件内允许的最大视差变化。如果您进行散斑过滤,请将此参数设置为正值,它将隐式乘以 16。通常,1 或 2 就足够了。算法。它将消耗 O(W*H*numDisparities) 字节,这对于 640x480 立体图像来说很大,对于高清尺寸的图像来说更是巨大。默认情况下,它设置为 false。第一个构造函数使用所有默认参数初始化 StereoSGBM。因此,您至少需要设置 StereoSGBM::numDisparities。第二个构造函数使您能够将每个参数设置为自定义值。
        返回
        自动生成
      • create

        public static StereoSGBM create​(int minDisparity,
                                        int numDisparities,
                                        int blockSize,
                                        int P1,
                                        int P2,
                                        int disp12MaxDiff,
                                        int preFilterCap,
                                        int uniquenessRatio,
                                        int speckleWindowSize)
        创建 StereoSGBM 对象
        参数
        minDisparity - 最小视差值。通常为零,但有时校正算法会平移图像,因此需要相应地调整此参数。
        numDisparities - 最大视差减去最小视差。该值始终大于零。在当前实现中,此参数必须能被 16 整除。
        blockSize - 匹配块大小。它必须是一个大于等于 1 的奇数。通常,它应该在 3 到 11 的范围内。
        P1 - 控制视差平滑度的第一个参数。详见下文。
        P2 - 控制视差平滑度的第二个参数。值越大,视差越平滑。P1 是相邻像素间视差变化加一或减一的惩罚。P2 是相邻像素间视差变化大于一的惩罚。算法要求 P2 > P1。请参见 stereo_match.cpp 示例,其中显示了一些合理的 P1 和 P2 值(例如 8 * 图像通道数 * blockSize * blockSize 和 32 * 图像通道数 * blockSize * blockSize)。
        disp12MaxDiff - 左右视差检查中允许的最大差异(以整数像素单位计)。将其设置为非正值以禁用检查。
        preFilterCap - 预过滤图像像素的截断值。算法首先计算每个像素的 x 导数,并将其值截断到 [-preFilterCap, preFilterCap] 区间。结果值将传递给 Birchfield-Tomasi 像素成本函数。
        uniquenessRatio - 以百分比表示的裕量,最佳(最小)计算成本函数值应“胜过”次佳值,才能认为找到的匹配是正确的。通常,5-15 范围内的值就足够了。
        speckleWindowSize - 平滑视差区域的最大尺寸,用于识别其噪声散斑并使其失效。将其设置为 0 以禁用散斑过滤。否则,将其设置为 50-200 范围内的某个值。过滤,请将此参数设置为正值,它将隐式乘以 16。通常,1 或 2 就足够了。算法。它将消耗 O(W*H*numDisparities) 字节,这对于 640x480 立体图像来说很大,对于高清尺寸的图像来说更是巨大。默认情况下,它设置为 false。第一个构造函数使用所有默认参数初始化 StereoSGBM。因此,您至少需要设置 StereoSGBM::numDisparities。第二个构造函数使您能够将每个参数设置为自定义值。
        返回
        自动生成
      • create

        public static StereoSGBM create​(int minDisparity,
                                        int numDisparities,
                                        int blockSize,
                                        int P1,
                                        int P2,
                                        int disp12MaxDiff,
                                        int preFilterCap,
                                        int uniquenessRatio)
        创建 StereoSGBM 对象
        参数
        minDisparity - 最小视差值。通常为零,但有时校正算法会平移图像,因此需要相应地调整此参数。
        numDisparities - 最大视差减去最小视差。该值始终大于零。在当前实现中,此参数必须能被 16 整除。
        blockSize - 匹配块大小。它必须是一个大于等于 1 的奇数。通常,它应该在 3 到 11 的范围内。
        P1 - 控制视差平滑度的第一个参数。详见下文。
        P2 - 控制视差平滑度的第二个参数。值越大,视差越平滑。P1 是相邻像素间视差变化加一或减一的惩罚。P2 是相邻像素间视差变化大于一的惩罚。算法要求 P2 > P1。请参见 stereo_match.cpp 示例,其中显示了一些合理的 P1 和 P2 值(例如 8 * 图像通道数 * blockSize * blockSize 和 32 * 图像通道数 * blockSize * blockSize)。
        disp12MaxDiff - 左右视差检查中允许的最大差异(以整数像素单位计)。将其设置为非正值以禁用检查。
        preFilterCap - 预过滤图像像素的截断值。算法首先计算每个像素的 x 导数,并将其值截断到 [-preFilterCap, preFilterCap] 区间。结果值将传递给 Birchfield-Tomasi 像素成本函数。
        uniquenessRatio - 以百分比表示的裕量,最佳(最小)计算成本函数值应“胜过”次佳值,才能认为找到的匹配是正确的。通常,5-15 范围内的值就足够了。并使其失效。将其设置为 0 以禁用散斑过滤。否则,将其设置为 50-200 范围内的某个值。过滤,请将此参数设置为正值,它将隐式乘以 16。通常,1 或 2 就足够了。算法。它将消耗 O(W*H*numDisparities) 字节,这对于 640x480 立体图像来说很大,对于高清尺寸的图像来说更是巨大。默认情况下,它设置为 false。第一个构造函数使用所有默认参数初始化 StereoSGBM。因此,您至少需要设置 StereoSGBM::numDisparities。第二个构造函数使您能够将每个参数设置为自定义值。
        返回
        自动生成
      • create

        public static StereoSGBM create​(int minDisparity,
                                        int numDisparities,
                                        int blockSize,
                                        int P1,
                                        int P2,
                                        int disp12MaxDiff,
                                        int preFilterCap)
        创建 StereoSGBM 对象
        参数
        minDisparity - 最小视差值。通常为零,但有时校正算法会平移图像,因此需要相应地调整此参数。
        numDisparities - 最大视差减去最小视差。该值始终大于零。在当前实现中,此参数必须能被 16 整除。
        blockSize - 匹配块大小。它必须是一个大于等于 1 的奇数。通常,它应该在 3 到 11 的范围内。
        P1 - 控制视差平滑度的第一个参数。详见下文。
        P2 - 控制视差平滑度的第二个参数。值越大,视差越平滑。P1 是相邻像素间视差变化加一或减一的惩罚。P2 是相邻像素间视差变化大于一的惩罚。算法要求 P2 > P1。请参见 stereo_match.cpp 示例,其中显示了一些合理的 P1 和 P2 值(例如 8 * 图像通道数 * blockSize * blockSize 和 32 * 图像通道数 * blockSize * blockSize)。
        disp12MaxDiff - 左右视差检查中允许的最大差异(以整数像素单位计)。将其设置为非正值以禁用检查。
        preFilterCap - 预过滤图像像素的截断值。算法首先计算每个像素的 x 导数,并将其值截断到 [-preFilterCap, preFilterCap] 区间。结果值将传递给 Birchfield-Tomasi 像素成本函数。值应“胜过”次佳值,才能认为找到的匹配是正确的。通常,5-15 范围内的值就足够了。并使其失效。将其设置为 0 以禁用散斑过滤。否则,将其设置为 50-200 范围内的某个值。过滤,请将此参数设置为正值,它将隐式乘以 16。通常,1 或 2 就足够了。算法。它将消耗 O(W*H*numDisparities) 字节,这对于 640x480 立体图像来说很大,对于高清尺寸的图像来说更是巨大。默认情况下,它设置为 false。第一个构造函数使用所有默认参数初始化 StereoSGBM。因此,您至少需要设置 StereoSGBM::numDisparities。第二个构造函数使您能够将每个参数设置为自定义值。
        返回
        自动生成
      • create

        public static StereoSGBM create​(int minDisparity,
                                        int numDisparities,
                                        int blockSize,
                                        int P1,
                                        int P2,
                                        int disp12MaxDiff)
        创建 StereoSGBM 对象
        参数
        minDisparity - 最小视差值。通常为零,但有时校正算法会平移图像,因此需要相应地调整此参数。
        numDisparities - 最大视差减去最小视差。该值始终大于零。在当前实现中,此参数必须能被 16 整除。
        blockSize - 匹配块大小。它必须是一个大于等于 1 的奇数。通常,它应该在 3 到 11 的范围内。
        P1 - 控制视差平滑度的第一个参数。详见下文。
        P2 - 控制视差平滑度的第二个参数。值越大,视差越平滑。P1 是相邻像素间视差变化加一或减一的惩罚。P2 是相邻像素间视差变化大于一的惩罚。算法要求 P2 > P1。请参见 stereo_match.cpp 示例,其中显示了一些合理的 P1 和 P2 值(例如 8 * 图像通道数 * blockSize * blockSize 和 32 * 图像通道数 * blockSize * blockSize)。
        disp12MaxDiff - 左右视差检查中允许的最大差异(以整数像素单位计)。将其设置为非正值以禁用检查。计算每个像素的 x 导数,并将其值截断到 [-preFilterCap, preFilterCap] 区间。结果值将传递给 Birchfield-Tomasi 像素成本函数。值应“胜过”次佳值,才能认为找到的匹配是正确的。通常,5-15 范围内的值就足够了。并使其失效。将其设置为 0 以禁用散斑过滤。否则,将其设置为 50-200 范围内的某个值。过滤,请将此参数设置为正值,它将隐式乘以 16。通常,1 或 2 就足够了。算法。它将消耗 O(W*H*numDisparities) 字节,这对于 640x480 立体图像来说很大,对于高清尺寸的图像来说更是巨大。默认情况下,它设置为 false。第一个构造函数使用所有默认参数初始化 StereoSGBM。因此,您至少需要设置 StereoSGBM::numDisparities。第二个构造函数使您能够将每个参数设置为自定义值。
        返回
        自动生成
      • create

        public static StereoSGBM create​(int minDisparity,
                                        int numDisparities,
                                        int blockSize,
                                        int P1,
                                        int P2)
        创建 StereoSGBM 对象
        参数
        minDisparity - 最小视差值。通常为零,但有时校正算法会平移图像,因此需要相应地调整此参数。
        numDisparities - 最大视差减去最小视差。该值始终大于零。在当前实现中,此参数必须能被 16 整除。
        blockSize - 匹配块大小。它必须是一个大于等于 1 的奇数。通常,它应该在 3 到 11 的范围内。
        P1 - 控制视差平滑度的第一个参数。详见下文。
        P2 - 控制视差平滑度的第二个参数。值越大,视差越平滑。P1 是相邻像素间视差变化加一或减一的惩罚。P2 是相邻像素间视差变化大于一的惩罚。算法要求 P2 > P1。请参见 stereo_match.cpp 示例,其中显示了一些合理的 P1 和 P2 值(例如 8 * 图像通道数 * blockSize * blockSize 和 32 * 图像通道数 * blockSize * blockSize)。视差检查。将其设置为非正值以禁用检查。计算每个像素的 x 导数,并将其值截断到 [-preFilterCap, preFilterCap] 区间。结果值将传递给 Birchfield-Tomasi 像素成本函数。值应“胜过”次佳值,才能认为找到的匹配是正确的。通常,5-15 范围内的值就足够了。并使其失效。将其设置为 0 以禁用散斑过滤。否则,将其设置为 50-200 范围内的某个值。过滤,请将此参数设置为正值,它将隐式乘以 16。通常,1 或 2 就足够了。算法。它将消耗 O(W*H*numDisparities) 字节,这对于 640x480 立体图像来说很大,对于高清尺寸的图像来说更是巨大。默认情况下,它设置为 false。第一个构造函数使用所有默认参数初始化 StereoSGBM。因此,您至少需要设置 StereoSGBM::numDisparities。第二个构造函数使您能够将每个参数设置为自定义值。
        返回
        自动生成
      • create

        public static StereoSGBM create​(int minDisparity,
                                        int numDisparities,
                                        int blockSize,
                                        int P1)
        创建 StereoSGBM 对象
        参数
        minDisparity - 最小视差值。通常为零,但有时校正算法会平移图像,因此需要相应地调整此参数。
        numDisparities - 最大视差减去最小视差。该值始终大于零。在当前实现中,此参数必须能被 16 整除。
        blockSize - 匹配块大小。它必须是一个大于等于 1 的奇数。通常,它应该在 3 到 11 的范围内。
        P1 - 控制视差平滑度的第一个参数。详见下文。视差越平滑。P1 是相邻像素间视差变化加一或减一的惩罚。P2 是相邻像素间视差变化大于一的惩罚。算法要求 P2 > P1。请参见 stereo_match.cpp 示例,其中显示了一些合理的 P1 和 P2 值(例如 8 * 图像通道数 * blockSize * blockSize 和 32 * 图像通道数 * blockSize * blockSize)。视差检查。将其设置为非正值以禁用检查。计算每个像素的 x 导数,并将其值截断到 [-preFilterCap, preFilterCap] 区间。结果值将传递给 Birchfield-Tomasi 像素成本函数。值应“胜过”次佳值,才能认为找到的匹配是正确的。通常,5-15 范围内的值就足够了。并使其失效。将其设置为 0 以禁用散斑过滤。否则,将其设置为 50-200 范围内的某个值。过滤,请将此参数设置为正值,它将隐式乘以 16。通常,1 或 2 就足够了。算法。它将消耗 O(W*H*numDisparities) 字节,这对于 640x480 立体图像来说很大,对于高清尺寸的图像来说更是巨大。默认情况下,它设置为 false。第一个构造函数使用所有默认参数初始化 StereoSGBM。因此,您至少需要设置 StereoSGBM::numDisparities。第二个构造函数使您能够将每个参数设置为自定义值。
        返回
        自动生成
      • create

        public static StereoSGBM create​(int minDisparity,
                                        int numDisparities,
                                        int blockSize)
        创建 StereoSGBM 对象
        参数
        minDisparity - 最小视差值。通常为零,但有时校正算法会平移图像,因此需要相应地调整此参数。
        numDisparities - 最大视差减去最小视差。该值始终大于零。在当前实现中,此参数必须能被 16 整除。
        blockSize - 匹配块大小。它必须是一个大于等于 1 的奇数。通常,它应该在 3 到 11 的范围内。视差越平滑。P1 是相邻像素间视差变化加一或减一的惩罚。P2 是相邻像素间视差变化大于一的惩罚。算法要求 P2 > P1。请参见 stereo_match.cpp 示例,其中显示了一些合理的 P1 和 P2 值(例如 8 * 图像通道数 * blockSize * blockSize 和 32 * 图像通道数 * blockSize * blockSize)。视差检查。将其设置为非正值以禁用检查。计算每个像素的 x 导数,并将其值截断到 [-preFilterCap, preFilterCap] 区间。结果值将传递给 Birchfield-Tomasi 像素成本函数。值应“胜过”次佳值,才能认为找到的匹配是正确的。通常,5-15 范围内的值就足够了。并使其失效。将其设置为 0 以禁用散斑过滤。否则,将其设置为 50-200 范围内的某个值。过滤,请将此参数设置为正值,它将隐式乘以 16。通常,1 或 2 就足够了。算法。它将消耗 O(W*H*numDisparities) 字节,这对于 640x480 立体图像来说很大,对于高清尺寸的图像来说更是巨大。默认情况下,它设置为 false。第一个构造函数使用所有默认参数初始化 StereoSGBM。因此,您至少需要设置 StereoSGBM::numDisparities。第二个构造函数使您能够将每个参数设置为自定义值。
        返回
        自动生成
      • create

        public static StereoSGBM create​(int minDisparity,
                                        int numDisparities)
        创建 StereoSGBM 对象
        参数
        minDisparity - 最小视差值。通常为零,但有时校正算法会平移图像,因此需要相应地调整此参数。
        numDisparities - 最大视差减去最小视差。该值始终大于零。在当前实现中,此参数必须能被 16 整除。在 3 到 11 的范围内。视差越平滑。P1 是相邻像素间视差变化加一或减一的惩罚。P2 是相邻像素间视差变化大于一的惩罚。算法要求 P2 > P1。请参见 stereo_match.cpp 示例,其中显示了一些合理的 P1 和 P2 值(例如 8 * 图像通道数 * blockSize * blockSize 和 32 * 图像通道数 * blockSize * blockSize)。视差检查。将其设置为非正值以禁用检查。计算每个像素的 x 导数,并将其值截断到 [-preFilterCap, preFilterCap] 区间。结果值将传递给 Birchfield-Tomasi 像素成本函数。值应“胜过”次佳值,才能认为找到的匹配是正确的。通常,5-15 范围内的值就足够了。并使其失效。将其设置为 0 以禁用散斑过滤。否则,将其设置为 50-200 范围内的某个值。过滤,请将此参数设置为正值,它将隐式乘以 16。通常,1 或 2 就足够了。算法。它将消耗 O(W*H*numDisparities) 字节,这对于 640x480 立体图像来说很大,对于高清尺寸的图像来说更是巨大。默认情况下,它设置为 false。第一个构造函数使用所有默认参数初始化 StereoSGBM。因此,您至少需要设置 StereoSGBM::numDisparities。第二个构造函数使您能够将每个参数设置为自定义值。
        返回
        自动生成
      • create

        public static StereoSGBM create​(int minDisparity)
        创建 StereoSGBM 对象
        参数
        minDisparity - 最小视差值。通常为零,但有时校正算法会平移图像,因此需要相应地调整此参数。零。在当前实现中,此参数必须能被 16 整除。在 3 到 11 的范围内。视差越平滑。P1 是相邻像素间视差变化加一或减一的惩罚。P2 是相邻像素间视差变化大于一的惩罚。算法要求 P2 > P1。请参见 stereo_match.cpp 示例,其中显示了一些合理的 P1 和 P2 值(例如 8 * 图像通道数 * blockSize * blockSize 和 32 * 图像通道数 * blockSize * blockSize)。视差检查。将其设置为非正值以禁用检查。计算每个像素的 x 导数,并将其值截断到 [-preFilterCap, preFilterCap] 区间。结果值将传递给 Birchfield-Tomasi 像素成本函数。值应“胜过”次佳值,才能认为找到的匹配是正确的。通常,5-15 范围内的值就足够了。并使其失效。将其设置为 0 以禁用散斑过滤。否则,将其设置为 50-200 范围内的某个值。过滤,请将此参数设置为正值,它将隐式乘以 16。通常,1 或 2 就足够了。算法。它将消耗 O(W*H*numDisparities) 字节,这对于 640x480 立体图像来说很大,对于高清尺寸的图像来说更是巨大。默认情况下,它设置为 false。第一个构造函数使用所有默认参数初始化 StereoSGBM。因此,您至少需要设置 StereoSGBM::numDisparities。第二个构造函数使您能够将每个参数设置为自定义值。
        返回
        自动生成
      • create

        public static StereoSGBM create()
        创建 StereoSGBM 对象。校正算法可能会平移图像,因此需要相应地调整此参数。零。在当前实现中,此参数必须能被 16 整除。在 3 到 11 的范围内。视差越平滑。P1 是相邻像素间视差变化加一或减一的惩罚。P2 是相邻像素间视差变化大于一的惩罚。算法要求 P2 > P1。请参见 stereo_match.cpp 示例,其中显示了一些合理的 P1 和 P2 值(例如 8 * 图像通道数 * blockSize * blockSize 和 32 * 图像通道数 * blockSize * blockSize)。视差检查。将其设置为非正值以禁用检查。计算每个像素的 x 导数,并将其值截断到 [-preFilterCap, preFilterCap] 区间。结果值将传递给 Birchfield-Tomasi 像素成本函数。值应“胜过”次佳值,才能认为找到的匹配是正确的。通常,5-15 范围内的值就足够了。并使其失效。将其设置为 0 以禁用散斑过滤。否则,将其设置为 50-200 范围内的某个值。过滤,请将此参数设置为正值,它将隐式乘以 16。通常,1 或 2 就足够了。算法。它将消耗 O(W*H*numDisparities) 字节,这对于 640x480 立体图像来说很大,对于高清尺寸的图像来说更是巨大。默认情况下,它设置为 false。第一个构造函数使用所有默认参数初始化 StereoSGBM。因此,您至少需要设置 StereoSGBM::numDisparities。第二个构造函数使您能够将每个参数设置为自定义值。
        返回
        自动生成
      • finalize

        protected void finalize()
                         throws java.lang.Throwable
        重写
        finalize 在类 StereoMatcher
        抛出
        java.lang.Throwable