OpenCV  4.10.0
开源计算机视觉库
正在加载...
正在搜索...
无匹配项
| 公共成员函数 | 静态公共成员函数 | 所有成员列表
cv::structured_light::GrayCodePattern 类参考抽象类

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

#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
 

详细描述

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

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

关于两个图像轴 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 参数 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) ->

设置黑阈值,用于解码(阴影掩码计算)。

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

参数
value所需的黑色阈值。

◆ setWhiteThreshold()

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

设置白阈值,用于解码。

白色阈值是一个介于 0-255 之间的数字,它表示有效像素之间所需的最小亮度差,介于格雷码模式及其反向图像之间;用于 getProjPixel 方法。

参数
value所需的白色阈值。

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