OpenCV 4.11.0
开源计算机视觉
加载中...
搜索中...
无匹配项
cv::structured_light::GrayCodePattern 类参考抽象

基于 [123] 实现格雷码模式的类。 更多...

#include <opencv2/structured_light/graycodepattern.hpp>

cv::structured_light::GrayCodePattern 协作图

结构体  Params
 StructuredLightPattern 构造函数的参数。 更多...
 

公有成员函数

virtual void getImagesForShadowMasks (InputOutputArray blackImage, InputOutputArray whiteImage) const =0
 生成计算阴影掩码所需的全黑和全白图像。
 
virtual size_t getNumberOfPatternImages () const =0
 获取格雷码模式所需的图案图像数量。
 
virtual bool getProjPixel (InputArrayOfArrays patternImages, int x, int y, Point &projPix) const =0
 对于摄像机的 (x,y) 像素,返回对应的投影仪像素。
 
virtual void setBlackThreshold (size_t value)=0
 设置解码(阴影掩码计算)所需的黑色阈值。
 
virtual void setWhiteThreshold (size_t value)=0
 设置解码所需的白色阈值。
 
- 从 cv::structured_light::StructuredLightPattern 继承的公有成员函数
virtual bool decode (const std::vector< std::vector< Mat > > &patternImages, OutputArray disparityMap, InputArrayOfArrays blackImages=noArray(), InputArrayOfArrays whiteImages=noArray(), int flags=DECODE_3D_UNDERWORLD) const =0
 解码结构光图案,生成视差图。
 
virtual bool generate (OutputArrayOfArrays patternImages)=0
 生成要投影的结构光图案。
 
- 从 cv::Algorithm 继承的公有成员函数
 Algorithm ()
 
virtual ~Algorithm ()
 
virtual void clear ()
 清除算法状态。
 
virtual bool empty () const
 如果 Algorithm 为空(例如,在开始时或读取失败后),则返回 true。
 
virtual String getDefaultName () const
 
virtual void read (const FileNode &fn)
 从文件存储中读取算法参数。
 
virtual void save (const String &filename) const
 
void write (const Ptr< FileStorage > &fs, const String &name=String()) const
 
virtual void write (FileStorage &fs) const
 将算法参数存储到文件存储中。
 
void write (FileStorage &fs, const String &name) const
 

静态公有成员函数

static Ptr< GrayCodePatterncreate (const GrayCodePattern::Params &parameters=GrayCodePattern::Params())
 构造函数。
 
static Ptr< GrayCodePatterncreate (int width, int height)
 
- 从 cv::Algorithm 继承的静态公有成员函数
template<typename _Tp >
static Ptr< _Tpload (const String &filename, const String &objname=String())
 从文件中加载算法。
 
template<typename _Tp >
static Ptr< _TploadFromString (const String &strModel, const String &objname=String())
 从字符串加载算法。
 
template<typename _Tp >
static Ptr< _Tpread (const FileNode &fn)
 从文件节点读取算法。
 

其他继承成员

- 从 cv::Algorithm 继承的保护成员函数
void writeFormat (FileStorage &fs) const
 

详细描述

基于 [123] 实现格雷码模式的类。

图案图像的生成使用传统的黑白颜色进行格雷编码。

两个图像轴 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。

成员函数文档

◆ create() [1/2]

static Ptr< GrayCodePattern > cv::structured_light::GrayCodePattern::create ( const GrayCodePattern::Params & parameters = GrayCodePattern::Params())
static
Python
cv.structured_light.GrayCodePattern.create(width, height) -> retval
cv.structured_light.GrayCodePattern_create(width, height) -> retval

构造函数。

参数
parametersGrayCodePattern parameters GrayCodePattern::Params:投影仪的宽度和高度。

◆ create() [2/2]

static Ptr< GrayCodePattern > cv::structured_light::GrayCodePattern::create ( int width,
int height )
static
Python
cv.structured_light.GrayCodePattern.create(width, height) -> retval
cv.structured_light.GrayCodePattern_create(width, height) -> retval

◆ getImagesForShadowMasks()

virtual void cv::structured_light::GrayCodePattern::getImagesForShadowMasks ( InputOutputArray blackImage,
InputOutputArray whiteImage ) const
纯虚函数
Python
cv.structured_light.GrayCodePattern.getImagesForShadowMasks(blackImage, whiteImage) -> blackImage, whiteImage

生成计算阴影掩码所需的全黑和全白图像。

为了识别阴影区域,即投影仪光线无法照射到像素的区域(因此没有编码信息),3DUNDERWORLD 算法根据每个相机捕获的黑白图像,计算两个相机视图的阴影掩码。此方法生成这两个附加图像以进行投影。

参数
blackImage生成的全黑 CV_8U 图像,分辨率与投影仪相同。
whiteImage生成的全白 CV_8U 图像,分辨率与投影仪相同。

◆ getNumberOfPatternImages()

virtual size_t cv::structured_light::GrayCodePattern::getNumberOfPatternImages ( ) const
纯虚函数
Python
cv.structured_light.GrayCodePattern.getNumberOfPatternImages() -> retval

获取格雷码模式所需的图案图像数量。

返回值
灰码图案所需的图案图像数量。

◆ getProjPixel()

virtual bool cv::structured_light::GrayCodePattern::getProjPixel ( InputArrayOfArrays patternImages,
int x,
int y,
Point & projPix ) const
纯虚函数
Python
cv.structured_light.GrayCodePattern.getProjPixel(patternImages, x, y) -> retval, projPix

对于摄像机的 (x,y) 像素,返回对应的投影仪像素。

该函数将相机获取的图案图像中的每个像素解码为其对应的十进制数,表示投影仪的列和行,从而提供相机像素和投影仪像素之间的映射。

参数
patternImages相机获取的图案图像,存储在灰度向量 < Mat > 中。
x图像像素的 x 坐标。
y图像像素的 y 坐标。
projPix对应于相机像素的投影仪像素:projPix.x 和 projPix.y 是对应于在相机中解码的像素的投影仪像素的图像坐标。

◆ setBlackThreshold()

virtual void cv::structured_light::GrayCodePattern::setBlackThreshold ( size_t value)
纯虚函数
Python
cv.structured_light.GrayCodePattern.setBlackThreshold(value) -> None

设置解码(阴影掩码计算)所需的黑色阈值。

黑色阈值是 0-255 之间的数字,表示有效像素之间所需的最小亮度差,介于完全照明(白色)和未照明图像(黑色)之间;用于 computeShadowMasks 方法。

参数
value所需的黑色阈值。

◆ setWhiteThreshold()

virtual void cv::structured_light::GrayCodePattern::setWhiteThreshold ( size_t value)
纯虚函数
Python
cv.structured_light.GrayCodePattern.setWhiteThreshold(value) -> None

设置解码所需的白色阈值。

白色阈值是 0-255 之间的数字,表示有效像素之间所需的最小亮度差,介于灰码图案及其反转图像之间;用于 getProjPixel 方法。

参数
value所需的白色阈值。

此类的文档是从以下文件生成的