OpenCV 4.5.3(日本語機械翻訳)
クラス | 公開メンバ関数 | 静的公開メンバ関数 | 全メンバ一覧
cv::structured_light::GrayCodePattern クラス abstract

Class implementing the Gray-code pattern, based on [UNDERWORLD]. [詳解]

#include <graycodepattern.hpp>

cv::structured_light::StructuredLightPatternを継承しています。

クラス

struct Params
パラメータStructuredLightPatternのコンストラクタです.[【詳解】(英語]

公開メンバ関数

virtual CV_WRAP size_t getNumberOfPatternImages () const =0
グレーコードパターンに必要なパターンイメージの数を取得する。[【詳解】(英語]
virtual CV_WRAP void setWhiteThreshold (size_t value)=0
デコードに必要な白閾値の値を設定します。[【詳解】(英語]
virtual CV_WRAP void setBlackThreshold (size_t value)=0
デコード(シャドーマスクの計算)に必要な黒のしきい値を設定します。[【詳解】(英語]
virtual CV_WRAP void getImagesForShadowMasks (InputOutputArray blackImage, InputOutputArray whiteImage) const =0
shadowMasks の計算に必要な,真っ黒な画像と真っ白な画像を生成します.[【詳解】(英語]
virtual CV_WRAP bool getProjPixel (InputArrayOfArrays patternImages, int x, int y, CV_OUT Point &projPix) const =0
カメラの(x,y)ピクセルに対して,対応するプロジェクタのピクセルを返します.[【詳解】(英語]
- 基底クラス cv::structured_light::StructuredLightPattern に属する継承公開メンバ関数
virtual CV_WRAP bool generate (OutputArrayOfArrays patternImages)=0
投影する構造光パターンを生成します。[【詳解】(英語]
virtual CV_WRAP bool decode (const std::vector< std::vector< Mat > > &patternImages, OutputArray disparityMap, InputArrayOfArrays blackImages=noArray(), InputArrayOfArrays whiteImages=noArray(), int flags=DECODE_3D_UNDERWORLD) const =0
構造化照明パターンをデコードし、視差マップを生成する。[【詳解】(英語]
- 基底クラス cv::Algorithm に属する継承公開メンバ関数
virtual CV_WRAP void clear ()
アルゴリズムの状態をクリアする[【詳解】(英語]
virtual void write (FileStorage &fs) const
アルゴリズムのパラメーターをファイルストレージに格納[【詳解】(英語]
CV_WRAP void write (const Ptr< FileStorage > &fs, const String &name=String()) const
これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。
virtual CV_WRAP void read (const FileNode &fn)
アルゴリズム・パラメータをファイル・ストレージから読み込みます。[【詳解】(英語]
virtual CV_WRAP bool empty () const
が空の場合はtrueを返します。Algorithmが空の場合は真を返します。[【詳解】(英語]
virtual CV_WRAP void save (const String &filename) const
virtual CV_WRAP String getDefaultName () const

静的公開メンバ関数

static Ptr< GrayCodePattern > create (const GrayCodePattern::Params &parameters=GrayCodePattern::Params())
コンストラクタ[【詳解】(英語]
static CV_WRAP Ptr< GrayCodePattern > create (int width, int height)
- 基底クラス cv::Algorithm に属する継承静的公開メンバ関数
template<typename _Tp >
static Ptr< _Tp > read (const FileNode &fn)
ファイル・ノードからアルゴリズムを読み込む[【詳解】(英語]
template<typename _Tp >
static Ptr< _Tp > load (const String &filename, const String &objname=String())
ファイルからアルゴリズムを読み込む[【詳解】(英語]
template<typename _Tp >
static Ptr< _Tp > loadFromString (const String &strModel, const String &objname=String())
文字列からアルゴリズムを読み込む[【詳解】(英語]

その他の継承メンバ

- 基底クラス cv::Algorithm に属する継承限定公開メンバ関数
void writeFormat (FileStorage &fs) const

詳解

グレーコードパターンを実装したクラス。[UNDERWORLD]を使用しています。.

パターン画像の生成は、従来の白と黒の色を使ったグレイコード化で行われます。

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()

static Ptr< GrayCodePattern > cv::structured_light::GrayCodePattern::create ( const GrayCodePattern::Params & parameters = GrayCodePattern::Params() )
static

コンストラクタ

引数
parameters GrayCodePatternパラメータGrayCodePattern::Params: プロジェクターの幅と高さを指定します。

getImagesForShadowMasks()

virtual CV_WRAP void cv::structured_light::GrayCodePattern::getImagesForShadowMasks ( InputOutputArray blackImage,
InputOutputArray whiteImage
) const
pure virtual

shadowMasks の計算に必要な,真っ黒な画像と真っ白な画像を生成します.

3DUNDERWORLDアルゴリズムは,シャドウ領域(2つの画像のうち,プロジェクタの光によってピクセルが照らされず,したがってコード化された情報が存在しない領域)を識別するために,各カメラで撮影された白と黒の画像から始めて,2つのカメラビューのシャドウマスクを計算します。この方法では、この2つの画像を追加で生成して投影します。

引数
blackImage 生成された黒一色のCV_8U画像(プロジェクターの解像度で)。
whiteImage 生成された白一色のCV_8U画像(プロジェクターの解像度で)。

getNumberOfPatternImages()

virtual CV_WRAP size_t cv::structured_light::GrayCodePattern::getNumberOfPatternImages ( ) const
pure virtual

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

戻り値
グレーコードパターンに必要なパターンイメージの数を取得します。

getProjPixel()

virtual CV_WRAP bool cv::structured_light::GrayCodePattern::getProjPixel ( InputArrayOfArrays patternImages,
int x,
int y,
CV_OUT Point & projPix
) const
pure virtual

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

この関数は、カメラで取得したパターン画像の各ピクセルを、プロジェクターの列と行を表す対応する10進数にデコードし、カメラのピクセルとプロジェクターのピクセルの間のマッピングを提供します。

引数
patternImages カメラで取得したパターン画像を,グレースケールのベクトル <Mat>.
x 画像ピクセルのx座標
y 画像画素のy座標。
projPix カメラの画素に対応するプロジェクタの画素:projPix.xとprojPix.yは、カメラでデコードされている画素に対応するプロジェクタの画素の画像座標です。

setBlackThreshold()

virtual CV_WRAP void cv::structured_light::GrayCodePattern::setBlackThreshold ( size_t value )
pure virtual

デコード(シャドーマスクの計算)に必要な黒のしきい値を設定します。

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

引数
value 黒のしきい値を設定します。

setWhiteThreshold()

virtual CV_WRAP void cv::structured_light::GrayCodePattern::setWhiteThreshold ( size_t value )
pure virtual

デコードに必要な白閾値の値を設定します。

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

引数
value 希望する白閾値の値

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