类 StereoSGBM
- java.lang.Object
-
- org.opencv.core.Algorithm
-
- org.opencv.calib3d.StereoMatcher
-
- org.opencv.calib3d.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 匹配算法使用的示例。
-
-
字段摘要
字段 修饰符和类型 字段 描述 static intMODE_HHstatic intMODE_HH4static intMODE_SGBMstatic intMODE_SGBM_3WAY-
从类 org.opencv.calib3d.StereoMatcher 继承的字段
DISP_SCALE, DISP_SHIFT
-
-
构造函数摘要
构造函数 修饰符 构造函数 描述 保护StereoSGBM(long addr)
-
方法摘要
所有方法 静态方法 实例方法 具体方法 修饰符和类型 方法 描述 static StereoSGBM__fromPtr__(long addr)static StereoSGBMcreate()创建 StereoSGBM 对象。校正算法可能会平移图像,因此需要相应地调整此参数。static StereoSGBMcreate(int minDisparity)创建 StereoSGBM 对象static StereoSGBMcreate(int minDisparity, int numDisparities)创建 StereoSGBM 对象static StereoSGBMcreate(int minDisparity, int numDisparities, int blockSize)创建 StereoSGBM 对象static StereoSGBMcreate(int minDisparity, int numDisparities, int blockSize, int P1)创建 StereoSGBM 对象static StereoSGBMcreate(int minDisparity, int numDisparities, int blockSize, int P1, int P2)创建 StereoSGBM 对象static StereoSGBMcreate(int minDisparity, int numDisparities, int blockSize, int P1, int P2, int disp12MaxDiff)创建 StereoSGBM 对象static StereoSGBMcreate(int minDisparity, int numDisparities, int blockSize, int P1, int P2, int disp12MaxDiff, int preFilterCap)创建 StereoSGBM 对象static StereoSGBMcreate(int minDisparity, int numDisparities, int blockSize, int P1, int P2, int disp12MaxDiff, int preFilterCap, int uniquenessRatio)创建 StereoSGBM 对象static StereoSGBMcreate(int minDisparity, int numDisparities, int blockSize, int P1, int P2, int disp12MaxDiff, int preFilterCap, int uniquenessRatio, int speckleWindowSize)创建 StereoSGBM 对象static StereoSGBMcreate(int minDisparity, int numDisparities, int blockSize, int P1, int P2, int disp12MaxDiff, int preFilterCap, int uniquenessRatio, int speckleWindowSize, int speckleRange)创建 StereoSGBM 对象static StereoSGBMcreate(int minDisparity, int numDisparities, int blockSize, int P1, int P2, int disp12MaxDiff, int preFilterCap, int uniquenessRatio, int speckleWindowSize, int speckleRange, int mode)创建 StereoSGBM 对象protected voidfinalize()intgetMode()intgetP1()intgetP2()intgetPreFilterCap()intgetUniquenessRatio()voidsetMode(int mode)voidsetP1(int P1)voidsetP2(int P2)voidsetPreFilterCap(int preFilterCap)voidsetUniquenessRatio(int uniquenessRatio)-
从类 org.opencv.calib3d.StereoMatcher 继承的方法
compute, getBlockSize, getDisp12MaxDiff, getMinDisparity, getNumDisparities, getSpeckleRange, getSpeckleWindowSize, setBlockSize, setDisp12MaxDiff, setMinDisparity, setNumDisparities, setSpeckleRange, setSpeckleWindowSize
-
从类 org.opencv.core.Algorithm 继承的方法
clear, empty, getDefaultName, getNativeObjAddr, save
-
-
-
-
方法详细信息
-
__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
-
-