类 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) 一个演示StereoSGBM匹配算法用法的示例可以在opencv_source_code/samples/python/stereo_match.py中找到。
-
-
字段摘要
字段 修饰符和类型 字段 描述 static int
MODE_HH
static int
MODE_HH4
static int
MODE_SGBM
static int
MODE_SGBM_3WAY
-
继承自类 org.opencv.calib3d.StereoMatcher的字段
DISP_SCALE, DISP_SHIFT
-
-
构造函数摘要
构造函数 修饰符 构造函数 描述 protected
StereoSGBM(long addr)
-
方法摘要
所有方法 静态方法 实例方法 具体方法 修饰符和类型 方法 描述 static StereoSGBM
__fromPtr__(long addr)
static StereoSGBM
create()
创建StereoSGBM对象,校正算法可能会移动图像,因此需要相应地调整此参数。static StereoSGBM
create(int minDisparity)
创建StereoSGBM对象static StereoSGBM
create(int minDisparity, int numDisparities)
创建StereoSGBM对象static StereoSGBM
create(int minDisparity, int numDisparities, int blockSize)
创建StereoSGBM对象static StereoSGBM
create(int minDisparity, int numDisparities, int blockSize, int P1)
创建StereoSGBM对象static StereoSGBM
create(int minDisparity, int numDisparities, int blockSize, int P1, int P2)
创建StereoSGBM对象static StereoSGBM
create(int minDisparity, int numDisparities, int blockSize, int P1, int P2, int disp12MaxDiff)
创建StereoSGBM对象static StereoSGBM
create(int minDisparity, int numDisparities, int blockSize, int P1, int P2, int disp12MaxDiff, int preFilterCap)
创建StereoSGBM对象static StereoSGBM
create(int minDisparity, int numDisparities, int blockSize, int P1, int P2, int disp12MaxDiff, int preFilterCap, int uniquenessRatio)
创建StereoSGBM对象static StereoSGBM
create(int minDisparity, int numDisparities, int blockSize, int P1, int P2, int disp12MaxDiff, int preFilterCap, int uniquenessRatio, int speckleWindowSize)
创建StereoSGBM对象static StereoSGBM
create(int minDisparity, int numDisparities, int blockSize, int P1, int P2, int disp12MaxDiff, int preFilterCap, int uniquenessRatio, int speckleWindowSize, int speckleRange)
创建StereoSGBM对象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对象protected void
finalize()
int
getMode()
int
getP1()
int
getP2()
int
getPreFilterCap()
int
getUniquenessRatio()
void
setMode(int mode)
void
setP1(int P1)
void
setP2(int P2)
void
setPreFilterCap(int preFilterCap)
void
setUniquenessRatio(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的惩罚。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的惩罚。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的惩罚。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的惩罚。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的惩罚。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的惩罚。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 是相邻像素之间视差变化加一或减一的惩罚。P2 是相邻像素之间视差变化大于 1 的惩罚。算法要求 P2 > P1。请参阅 stereo_match.cpp 示例,其中显示了一些相当不错的 P1 和 P2 值(例如,分别为 8\*number_of_image_channels\*blockSize\*blockSize 和 32\*number_of_image_channels\*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 是相邻像素之间视差变化大于 1 的惩罚。算法要求 P2 > P1。请参阅 stereo_match.cpp 示例,其中显示了一些相当不错的 P1 和 P2 值(例如,分别为 8\*number_of_image_channels\*blockSize\*blockSize 和 32\*number_of_image_channels\*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 的惩罚。P2 是相邻像素之间视差变化大于 1 的惩罚。算法要求 P2 > P1。请参阅 stereo_match.cpp 示例,其中显示了一些合理良好的 P1 和 P2 值(例如分别为 8\*number_of_image_channels\*blockSize\*blockSize 和 32\*number_of_image_channels\*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 的惩罚。P2 是相邻像素之间视差变化大于 1 的惩罚。算法要求 P2 > P1。请参阅 stereo_match.cpp 示例,其中显示了一些合理良好的 P1 和 P2 值(例如分别为 8\*number_of_image_channels\*blockSize\*blockSize 和 32\*number_of_image_channels\*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 的惩罚。P2 是相邻像素之间视差变化大于 1 的惩罚。算法要求 P2 > P1。请参阅 stereo_match.cpp 示例,其中显示了一些合理良好的 P1 和 P2 值(例如分别为 8\*number_of_image_channels\*blockSize\*blockSize 和 32\*number_of_image_channels\*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 的惩罚。P2 是相邻像素之间视差变化大于 1 的惩罚。算法要求 P2 > P1。请参阅 stereo_match.cpp 示例,其中显示了一些合理良好的 P1 和 P2 值(例如分别为 8\*number_of_image_channels\*blockSize\*blockSize 和 32\*number_of_image_channels\*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
-
-