OpenCV 5.0.0
Open Source Computer Vision
読み込み中...
検索中...
見つかりません
🤖 AIによる機械翻訳(非公式) — これは OpenCV 5.0.0 公式リファレンス(英語)を AI (Claude) で自動翻訳したものです。訳に誤りを含む場合があります。正確な情報は 公式英語版(原文) を参照してください。
cv::structured_light::GrayCodePattern クラスabstract

[127] に基づく、グレイコードパターンを実装したクラス。 続き...

#include <opencv2/structured_light/graycodepattern.hpp>

Collaboration diagram for cv::structured_light::GrayCodePattern:

クラス

struct  Params
 StructuredLightPattern コンストラクタのパラメータ。 続き...
 

公開メンバ関数

virtual void getImagesForShadowMasks (InputOutputArray blackImage, InputOutputArray whiteImage) const =0
 shadowMasks の計算に必要な、全面が黒および全面が白の画像を生成する。
 
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
 デコード(shadowsmasks の計算)に必要な黒のしきい値を設定する。
 
virtual void setWhiteThreshold (size_t value)=0
 デコードに必要な白のしきい値を設定する。
 
- Public Member Functions inherited from 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
 投影する構造化光パターンを生成する。
 
- Public Member Functions inherited from 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
 
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)
 
- Static Public Member Functions inherited from 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)
 ファイルノードからアルゴリズムを読み込む。
 

Additional Inherited Members

- Protected Member Functions inherited from cv::Algorithm
void writeFormat (FileStorage &fs) const
 

詳細説明

[127] に基づく、グレイコードパターンを実装したクラス。

パターン画像の生成は、従来の白黒の色を用いたグレイコード符号化によって行われる。

2つの画像軸 x, y の情報は、それぞれ別の2つのパターンシーケンスに分けて符号化される。解像度 (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
pure virtual
Python:
cv.structured_light.GrayCodePattern.getImagesForShadowMasks(blackImage, whiteImage) -> blackImage, whiteImage

shadowMasks の計算に必要な全黒画像と全白画像を生成する。

シャドウ領域、すなわちプロジェクタの光が当たらず符号化情報が存在しない2画像中の領域を識別するため、3DUNDERWORLD アルゴリズムは各カメラで撮影した白画像と黒画像を起点として、2つのカメラ視点に対するシャドウマスクを計算する。本メソッドは投影用のこれら2枚の追加画像を生成する。

引数
blackImageプロジェクタの解像度で生成された、全面が黒の CV_8U 画像。
whiteImageプロジェクタの解像度で生成された、全面が白の CV_8U 画像。

◆ getNumberOfPatternImages()

virtual size_t cv::structured_light::GrayCodePattern::getNumberOfPatternImages ( ) const
pure virtual
Python:
cv.structured_light.GrayCodePattern.getNumberOfPatternImages() -> retval

グレイコードパターンに必要なパターン画像の枚数を取得する。

戻り値
グレイコードパターンに必要なパターン画像の枚数。

◆ getProjPixel()

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

カメラの (x,y) ピクセルに対応するプロジェクタのピクセルを返す。

この関数は、カメラが取得したパターン画像の各ピクセルを、プロジェクタの列と行を表す対応する10進数に復号し、カメラとプロジェクタのピクセル間の対応付けを与える。

引数
patternImagesカメラで取得したパターン画像。グレースケールの vector < Mat > に格納される。
x画像ピクセルのx座標。
y画像ピクセルのy座標。
projPixカメラのピクセルに対応するプロジェクタのピクセル: projPix.x および projPix.y は、カメラ内でデコード対象となっているピクセルに対応するプロジェクタのピクセルの画像座標である。

◆ setBlackThreshold()

virtual void cv::structured_light::GrayCodePattern::setBlackThreshold ( size_t value)
pure virtual
Python:
cv.structured_light.GrayCodePattern.setBlackThreshold(value) -> None

復号(shadowsmasks の計算)に必要な黒のしきい値を設定する。

黒のしきい値は 0〜255 の数値で、完全に照らされた(白)画像と照らされていない(黒)画像との間で、有効なピクセルに必要な最小の輝度差を表す。computeShadowMasks メソッドで使用される。

引数
value希望する黒のしきい値。

◆ setWhiteThreshold()

virtual void cv::structured_light::GrayCodePattern::setWhiteThreshold ( size_t value)
pure virtual
Python:
cv.structured_light.GrayCodePattern.setWhiteThreshold(value) -> None

復号に必要な白のしきい値を設定する。

白のしきい値は 0〜255 の数値で、グレイコードパターンとその反転画像との間で、有効なピクセルに必要な最小の輝度差を表す。getProjPixel メソッドで使用される。

引数
value希望する白のしきい値。

このクラス詳解は次のファイルから抽出されました: