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

K. Konolige によって導入されOpenCVに提供された、ブロックマッチングアルゴリズムを用いてステレオ対応を計算するクラス。 詳細...

#include <opencv2/calib3d.hpp>

Collaboration diagram for cv::StereoBM:

公開型

enum  {
  PREFILTER_NORMALIZED_RESPONSE = 0 ,
  PREFILTER_XSOBEL = 1
}
 ステレオマッチングアルゴリズム用のプレフィルタの種類。 続き...
 
- Public Types inherited from cv::StereoMatcher
enum  {
  DISP_SHIFT = 4 ,
  DISP_SCALE = (1 << DISP_SHIFT)
}
 

公開メンバ関数

virtual int getPreFilterCap () const =0
 プレフィルタ処理されたピクセルに対する現在の切り捨て値を取得する。
 
virtual int getPreFilterSize () const =0
 プレフィルタカーネルの現在のサイズを取得する。
 
virtual int getPreFilterType () const =0
 アルゴリズムで現在使用されているプレフィルタの種類を取得する。
 
virtual Rect getROI1 () const =0
 左画像の現在の関心領域(ROI)を取得する。
 
virtual Rect getROI2 () const =0
 右画像の現在の関心領域(ROI)を取得する。
 
virtual int getSmallerBlockSize () const =0
 テクスチャチェックに使用される小さい方のブロックの現在のサイズを取得する。
 
virtual int getTextureThreshold () const =0
 現在のテクスチャしきい値を取得する。
 
virtual int getUniquenessRatio () const =0
 現在の一意性比率の値を取得する。
 
virtual void setPreFilterCap (int preFilterCap)=0
 プレフィルタ処理されたピクセルに対する切り捨て値を設定する。
 
virtual void setPreFilterSize (int preFilterSize)=0
 プレフィルタカーネルのサイズを設定する。
 
virtual void setPreFilterType (int preFilterType)=0
 アルゴリズムで使用するプレフィルタの種類を設定する。
 
virtual void setROI1 (Rect roi1)=0
 左画像の関心領域(ROI)を設定する。
 
virtual void setROI2 (Rect roi2)=0
 右画像の関心領域(ROI)を設定する。
 
virtual void setSmallerBlockSize (int blockSize)=0
 テクスチャチェックに使用される小さい方のブロックのサイズを設定する。
 
virtual void setTextureThreshold (int textureThreshold)=0
 低テクスチャ領域をフィルタリングするためのしきい値を設定する。
 
virtual void setUniquenessRatio (int uniquenessRatio)=0
 曖昧なマッチをフィルタリングするための一意性比率を設定する。
 
- Public Member Functions inherited from cv::StereoMatcher
virtual void compute (InputArray left, InputArray right, OutputArray disparity)=0
 指定したステレオペアの視差マップを計算する。
 
virtual int getBlockSize () const =0
 
virtual int getDisp12MaxDiff () const =0
 
virtual int getMinDisparity () const =0
 
virtual int getNumDisparities () const =0
 
virtual int getSpeckleRange () const =0
 
virtual int getSpeckleWindowSize () const =0
 
virtual void setBlockSize (int blockSize)=0
 
virtual void setDisp12MaxDiff (int disp12MaxDiff)=0
 
virtual void setMinDisparity (int minDisparity)=0
 
virtual void setNumDisparities (int numDisparities)=0
 
virtual void setSpeckleRange (int speckleRange)=0
 
virtual void setSpeckleWindowSize (int speckleWindowSize)=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
 
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< StereoBMcreate (int numDisparities=0, int blockSize=21)
 StereoBM オブジェクトを生成する。
 
- 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
 

詳細説明

K. Konolige によって導入されOpenCVに提供された、ブロックマッチングアルゴリズムを用いてステレオ対応を計算するクラス。

このクラスはステレオ対応のためのブロックマッチングアルゴリズムを実装しており、ステレオ画像ペアから視差マップを計算するために使用される。プレフィルタ処理、テクスチャしきい値、一意性比率、関心領域(ROI)などの引数を細かく調整し、性能と精度を最適化するメソッドを提供する。

列挙型メンバ詳解

◆ anonymous enum

anonymous enum

ステレオマッチングアルゴリズム用のプレフィルタの種類。

これらの定数は、視差マップを計算する前に画像へ適用するプレフィルタの種類を定義する。

  • PREFILTER_NORMALIZED_RESPONSE: プレフィルタに正規化応答を使用する。
  • PREFILTER_XSOBEL: プレフィルタに X-Sobel 演算子を使用する。
列挙値
PREFILTER_NORMALIZED_RESPONSE 

正規化応答プレフィルタ。

PREFILTER_XSOBEL 

X-Sobel プレフィルタ。

メンバ関数詳解

◆ create()

static Ptr< StereoBM > cv::StereoBM::create ( int numDisparities = 0,
int blockSize = 21 )
static
Python:
cv.StereoBM.create([, numDisparities[, blockSize]]) -> retval
cv.StereoBM_create([, numDisparities[, blockSize]]) -> retval

StereoBM オブジェクトを生成する。

引数
numDisparities視差の探索範囲。各ピクセルについて、アルゴリズムは0(デフォルトの最小視差)から numDisparities までの範囲で最適な視差を見つける。最小視差を変更することで探索範囲をシフトできる。
blockSizeアルゴリズムが比較するブロックの一辺の長さ。サイズは奇数でなければならない(ブロックは現在のピクセルを中心とするため)。ブロックサイズが大きいほど視差マップは滑らかになるが精度は下がる。ブロックサイズが小さいほどより詳細な視差マップが得られるが、アルゴリズムが誤った対応点を見つける可能性が高くなる。
戻り値
生成された StereoBM オブジェクトへのポインタ。

この関数は StereoBM オブジェクトを生成する。その後 StereoBM::compute() を呼び出して、特定のステレオペアの視差を計算できる。

◆ getPreFilterCap()

virtual int cv::StereoBM::getPreFilterCap ( ) const
pure virtual
Python:
cv.StereoBM.getPreFilterCap() -> retval

プレフィルタ処理されたピクセルに対する現在の切り捨て値を取得する。

戻り値
現在のプレフィルタキャップ値。

◆ getPreFilterSize()

virtual int cv::StereoBM::getPreFilterSize ( ) const
pure virtual
Python:
cv.StereoBM.getPreFilterSize() -> retval

プレフィルタカーネルの現在のサイズを取得する。

戻り値
現在のプレフィルタサイズ。

◆ getPreFilterType()

virtual int cv::StereoBM::getPreFilterType ( ) const
pure virtual
Python:
cv.StereoBM.getPreFilterType() -> retval

アルゴリズムで現在使用されているプレフィルタの種類を取得する。

戻り値
現在のプレフィルタの種類: PREFILTER_NORMALIZED_RESPONSE の場合は0、PREFILTER_XSOBEL の場合は1。

◆ getROI1()

virtual Rect cv::StereoBM::getROI1 ( ) const
pure virtual
Python:
cv.StereoBM.getROI1() -> retval

左画像の現在の関心領域(ROI)を取得する。

戻り値
左画像の現在のROI。

◆ getROI2()

virtual Rect cv::StereoBM::getROI2 ( ) const
pure virtual
Python:
cv.StereoBM.getROI2() -> retval

右画像の現在の関心領域(ROI)を取得する。

戻り値
右画像の現在のROI。

◆ getSmallerBlockSize()

virtual int cv::StereoBM::getSmallerBlockSize ( ) const
pure virtual
Python:
cv.StereoBM.getSmallerBlockSize() -> retval

テクスチャチェックに使用される小さい方のブロックの現在のサイズを取得する。

戻り値
現在の小さい方のブロックサイズ。

◆ getTextureThreshold()

virtual int cv::StereoBM::getTextureThreshold ( ) const
pure virtual
Python:
cv.StereoBM.getTextureThreshold() -> retval

現在のテクスチャしきい値を取得する。

戻り値
現在のテクスチャしきい値。

◆ getUniquenessRatio()

virtual int cv::StereoBM::getUniquenessRatio ( ) const
pure virtual
Python:
cv.StereoBM.getUniquenessRatio() -> retval

現在の一意性比率の値を取得する。

戻り値
現在の一意性比率。

◆ setPreFilterCap()

virtual void cv::StereoBM::setPreFilterCap ( int preFilterCap)
pure virtual
Python:
cv.StereoBM.setPreFilterCap(preFilterCap) -> None

プレフィルタ処理されたピクセルに対する切り捨て値を設定する。

引数
preFilterCap切り捨て値。通常は [1, 63] の範囲。

この値はプレフィルタの出力を [-preFilterCap, preFilterCap] にクランプし、プレフィルタ処理された画像におけるノイズや外れ値の影響を低減するのに役立つ。

◆ setPreFilterSize()

virtual void cv::StereoBM::setPreFilterSize ( int preFilterSize)
pure virtual
Python:
cv.StereoBM.setPreFilterSize(preFilterSize) -> None

プレフィルタカーネルのサイズを設定する。

引数
preFilterSizeプレフィルタカーネルのサイズ。奇数でなければならず、通常は5から255の間。

プレフィルタサイズはプレフィルタ処理の空間的な範囲を決定する。この処理は明るさを正規化しテクスチャを強調することで、視差計算のために画像を準備する。サイズが大きいほどノイズは低減されるが細部がぼやける可能性があり、サイズが小さいほど細部は保持されるがノイズの影響を受けやすくなる。

◆ setPreFilterType()

virtual void cv::StereoBM::setPreFilterType ( int preFilterType)
pure virtual
Python:
cv.StereoBM.setPreFilterType(preFilterType) -> None

アルゴリズムで使用するプレフィルタの種類を設定する。

引数
preFilterType使用するプレフィルタの種類。指定可能な値は次のとおり:
  • PREFILTER_NORMALIZED_RESPONSE (0): プレフィルタに正規化応答を使用する。
  • PREFILTER_XSOBEL (1): プレフィルタに X-Sobel 演算子を使用する。

プレフィルタの種類は、視差マップを計算する前に画像をどのように準備するかに影響する。プレフィルタの手法が異なれば、特定の画像特徴を強調したりノイズを低減したりでき、視差マップの品質に影響を与える。

◆ setROI1()

virtual void cv::StereoBM::setROI1 ( Rect roi1)
pure virtual
Python:
cv.StereoBM.setROI1(roi1) -> None

左画像の関心領域(ROI)を設定する。

引数
roi1左画像のROI矩形。

ROIを設定すると、ステレオマッチングの計算が指定領域に限定され、画像の関連部分に集中することで性能が向上し、精度も高まる可能性がある。

◆ setROI2()

virtual void cv::StereoBM::setROI2 ( Rect roi2)
pure virtual
Python:
cv.StereoBM.setROI2(roi2) -> None

右画像の関心領域(ROI)を設定する。

引数
roi2右画像のROI矩形。

setROI1と同様に、右画像の指定領域に計算を限定する。

◆ setSmallerBlockSize()

virtual void cv::StereoBM::setSmallerBlockSize ( int blockSize)
pure virtual
Python:
cv.StereoBM.setSmallerBlockSize(blockSize) -> None

テクスチャチェックに使用する小ブロックのサイズを設定する。

引数
blockSize小さい方のブロックのサイズ。5から255の間の奇数でなければならない。

この引数は、テクスチャの分散を計算するために使用するブロックのサイズを決定する。小さなブロックはより細かいディテールを捉えるがノイズに敏感であり、大きなブロックはより頑健だが細かいディテールを見落とすことがある。

◆ setTextureThreshold()

virtual void cv::StereoBM::setTextureThreshold ( int textureThreshold)
pure virtual
Python:
cv.StereoBM.setTextureThreshold(textureThreshold) -> None

低テクスチャ領域をフィルタリングするためのしきい値を設定する。

引数
textureThresholdしきい値。非負でなければならない。

この引数は、対応付けが困難なテクスチャの乏しい領域をフィルタで除去し、視差マップのノイズを低減する。値が大きいほど積極的にフィルタリングするが、有効な情報まで破棄してしまうことがある。

◆ setUniquenessRatio()

virtual void cv::StereoBM::setUniquenessRatio ( int uniquenessRatio)
pure virtual
Python:
cv.StereoBM.setUniquenessRatio(uniquenessRatio) -> None

あいまいなマッチングをフィルタリングするための一意性比率を設定する。

引数
uniquenessRatio一意性比率の値。通常は [5, 15] の範囲だが、0から100まで指定できる。

この引数は、最良マッチが次善マッチよりも十分に良いことを保証し、誤検出を低減する。値が大きいほど厳格になるが、困難な領域では有効なマッチまでフィルタで除去してしまうことがある。


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