GrayCodePattern 类
- java.lang.Object
-
- org.opencv.core.Algorithm
-
- org.opencv.structured_light.StructuredLightPattern
-
- org.opencv.structured_light.GrayCodePattern
-
public class GrayCodePattern extends StructuredLightPattern
基于文献[UNDERWORLD]的灰码模式实现类。模式图像的生成使用传统的黑白颜色进行灰度编码。两个图像轴 x、y 的信息分别编码到两个不同的模式序列中。分辨率为 (P_res_x, P_res_y) 的投影仪 P 将产生 Ncols = log 2 (P_res_x) 个编码模式图像来表示列,以及 Nrows = log 2 (P_res_y) 个编码模式图像来表示行。例如,分辨率为 1024x768 的投影仪将产生 Ncols = 10 和 Nrows = 10。但是,生成的模式序列包含常规彩色图像和颜色反转图像:反转模式图像是与原始图像结构相同但颜色反转的图像。这提供了一种有效的方法,可以轻松确定每个像素在点亮时(最高值)和未点亮时(最低值)的强度值。因此,对于分辨率为 1024x768 的投影仪,模式图像的数量将为 Ncols * 2 + Nrows * 2 = 40。
-
-
构造函数摘要
构造函数 修饰符 构造函数 描述 protected
GrayCodePattern(long addr)
-
方法摘要
所有方法 静态方法 实例方法 具体方法 修饰符和类型 方法 描述 static GrayCodePattern
__fromPtr__(long addr)
static GrayCodePattern
create(int width, int height)
构造函数protected void
finalize()
void
getImagesForShadowMasks(Mat blackImage, Mat whiteImage)
生成用于阴影掩码计算的全黑和全白图像。long
getNumberOfPatternImages()
获取灰码模式所需的模式图像数量。boolean
getProjPixel(java.util.List<Mat> patternImages, int x, int y, Point projPix)
对于摄像机的 (x,y) 像素,返回对应的投影仪像素。void
setBlackThreshold(long value)
设置黑色阈值,用于解码(阴影掩码计算)。void
setWhiteThreshold(long value)
设置白色阈值,用于解码。-
继承自类 org.opencv.structured_light.StructuredLightPattern 的方法
generate
-
继承自类 org.opencv.core.Algorithm 的方法
clear, empty, getDefaultName, getNativeObjAddr, save
-
-
-
-
方法详情
-
__fromPtr__
public static GrayCodePattern __fromPtr__(long addr)
-
create
public static GrayCodePattern create(int width, int height)
构造函数- 参数
width
- 自动生成height
- 自动生成- 返回
- 自动生成
-
getNumberOfPatternImages
public long getNumberOfPatternImages()
获取灰码模式所需的模式图像数量。- 返回
- 灰码模式所需的模式图像数量。
-
setWhiteThreshold
public void setWhiteThreshold(long value)
设置白色阈值,用于解码。白色阈值是 0-255 之间的数字,表示灰码模式及其反转图像之间有效像素所需的最小亮度差;用于 getProjPixel 方法。- 参数
value
- 所需的白色阈值。
-
setBlackThreshold
public void setBlackThreshold(long value)
设置黑色阈值,用于解码(阴影掩码计算)。黑色阈值是 0-255 之间的数字,表示完全照明(白色)图像和未照明图像(黑色)之间有效像素所需的最小亮度差;用于 computeShadowMasks 方法。- 参数
value
- 所需的黑色阈值。
-
getImagesForShadowMasks
public void getImagesForShadowMasks(Mat blackImage, Mat whiteImage)
生成用于阴影掩码计算的全黑和全白图像。为了识别阴影区域,即投影仪光线未照射到像素的区域,并且没有编码信息,3DUNDERWORLD 算法根据每个相机捕获的白色和黑色图像,计算两个相机视图的阴影掩码。此方法生成这两个额外的图像以进行投影。- 参数
blackImage
- 生成的投影仪分辨率的全黑 CV_8U 图像。whiteImage
- 生成的投影仪分辨率的全白 CV_8U 图像。
-
getProjPixel
public boolean getProjPixel(java.util.List<Mat> patternImages, int x, int y, Point projPix)
对于摄像机的 (x,y) 像素,返回对应的投影仪像素。该函数将相机获取的模式图像中的每个像素解码为其对应的十进制数字,这些数字表示投影仪的列和行,从而提供相机和投影仪像素之间的映射。- 参数
patternImages
- 相机获取的模式图像,存储在灰度向量 < Mat > 中。x
- 图像像素的 x 坐标。y
- 图像像素的 y 坐标。projPix
- 对应于相机像素的投影仪像素:projPix.x 和 projPix.y 是对应于相机中被解码的像素的投影仪像素的图像坐标。- 返回
- 自动生成
-
finalize
protected void finalize() throws java.lang.Throwable
- 覆盖
finalize
类中的StructuredLightPattern
- 抛出
java.lang.Throwable
-
-