类 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 可将块缩减为单个像素。
- 未实现互信息代价函数。相反,使用了 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 对象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 是相邻像素之间视差变化加 1 或减 1 的惩罚。P2 是相邻像素之间视差变化大于 1 的惩罚。算法要求 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 是相邻像素之间视差变化加 1 或减 1 的惩罚。P2 是相邻像素之间视差变化大于 1 的惩罚。算法要求 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 是相邻像素之间视差变化加 1 或减 1 的惩罚。P2 是相邻像素之间视差变化大于 1 的惩罚。算法要求 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 是相邻像素之间视差变化加 1 或减 1 的惩罚。P2 是相邻像素之间视差变化大于 1 的惩罚。算法要求 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 是相邻像素之间视差变化加 1 或减 1 的惩罚。P2 是相邻像素之间视差变化大于 1 的惩罚。算法要求 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 是相邻像素之间视差变化加 1 或减 1 的惩罚。P2 是相邻像素之间视差变化大于 1 的惩罚。算法要求 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 是相邻像素之间视差变化加 1 或减 1 的惩罚。P2 是相邻像素之间视差变化大于 1 的惩罚。算法要求 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 是相邻像素之间视差变化加 1 或减 1 的惩罚。P2 是相邻像素之间视差变化大于 1 的惩罚。算法要求 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 是相邻像素之间视差变化加 1 或减 1 的惩罚。P2 是相邻像素之间视差变化大于 1 的惩罚。算法要求 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 是相邻像素之间视差变化加 1 或减 1 的惩罚。P2 是相邻像素之间视差变化大于 1 的惩罚。算法要求 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 是相邻像素之间视差变化加 1 或减 1 的惩罚。P2 是相邻像素之间视差变化大于 1 的惩罚。算法要求 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 是相邻像素之间视差变化加 1 或减 1 的惩罚。P2 是相邻像素之间视差变化大于 1 的惩罚。算法要求 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。第二个构造函数允许您将每个参数设置为自定义值。- 返回
- 自动生成
-
-