类 GrayCodePattern
- java.lang.Object
-
- org.opencv.core.Algorithm
-
- org.opencv.structured_light.StructuredLightPattern
-
- org.opencv.structured_light.GrayCodePattern
-
public class GrayCodePattern extends StructuredLightPattern
此类实现了基于 CITE: UNDERWORLD 的 Gray-code 模式。模式图像的生成使用传统的黑白颜色进行格雷编码。关于两个图像轴 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。
-
-
构造函数摘要
构造函数 修饰符 构造函数 描述 保护GrayCodePattern(long addr)
-
方法摘要
所有方法 静态方法 实例方法 具体方法 修饰符和类型 方法 描述 static GrayCodePattern__fromPtr__(long addr)static GrayCodePatterncreate(int width, int height)构造函数protected voidfinalize()voidgetImagesForShadowMasks(Mat blackImage, Mat whiteImage)生成阴影掩模计算所需的全黑和全白图像。longgetNumberOfPatternImages()获取 graycode 模式所需的模式图像数量。booleangetProjPixel(java.util.List<Mat> patternImages, int x, int y, Point projPix)对于相机的 (x,y) 像素,返回相应的投影仪像素。voidsetBlackThreshold(long value)设置黑色阈值的值,解码(阴影掩模计算)需要它。voidsetWhiteThreshold(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()
获取 graycode 模式所需的模式图像数量。- 返回
- 格雷码模式所需的模式图像数量。
-
setWhiteThreshold
public void setWhiteThreshold(long value)
设置白色阈值的值,解码需要它。白色阈值是介于 0-255 之间的数字,表示有效像素所需的最小亮度差异,在 graycode 模式及其反转图像之间;用于 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
-
-