![]() |
OpenCV 4.13.0
Open Source Computer Vision
|
確信度伝播(belief propagation)アルゴリズムを用いてステレオ対応を計算するクラス。: 続きを読む...
#include <opencv2/cudastereo.hpp>
公開メンバ関数 | |
| virtual void | compute (InputArray data, OutputArray disparity, Stream &stream=Stream::Null())=0 |
| 指定されたデータコストに対する視差を求めるステレオ対応演算子を有効にする。 | |
| virtual void | compute (InputArray left, InputArray right, OutputArray disparity, Stream &stream)=0 |
| virtual double | getDataWeight () const =0 |
| データの重み | |
| virtual double | getDiscSingleJump () const =0 |
| 不連続性の単一ジャンプ | |
| virtual double | getMaxDataTerm () const =0 |
| データコストの打ち切り | |
| virtual double | getMaxDiscTerm () const =0 |
| 不連続性コストの打ち切り | |
| virtual int | getMsgType () const =0 |
| メッセージの型 (CV_16SC1 または CV_32FC1) | |
| virtual int | getNumIters () const =0 |
| 各レベルでのBP反復回数 | |
| virtual int | getNumLevels () const =0 |
| レベル数 | |
| virtual void | setDataWeight (double data_weight)=0 |
| virtual void | setDiscSingleJump (double disc_single_jump)=0 |
| virtual void | setMaxDataTerm (double max_data_term)=0 |
| virtual void | setMaxDiscTerm (double max_disc_term)=0 |
| virtual void | setMsgType (int msg_type)=0 |
| virtual void | setNumIters (int iters)=0 |
| virtual void | setNumLevels (int levels)=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 void | estimateRecommendedParams (int width, int height, int &ndisp, int &iters, int &levels) |
| 指定された画像サイズ ( width および height ) に対する推奨パラメータ ( ndisp, iters および levels ) を、ヒューリスティックな手法で計算する。 | |
Static Public Member Functions inherited from cv::Algorithm | |
| 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()) |
| 文字列からアルゴリズムを読み込む。 | |
| template<typename _Tp > | |
| static Ptr< _Tp > | read (const FileNode &fn) |
| ファイルノードからアルゴリズムを読み込む。 | |
Additional Inherited Members | |
Public Types inherited from cv::StereoMatcher | |
| enum | { DISP_SHIFT = 4 , DISP_SCALE = (1 << DISP_SHIFT) } |
Protected Member Functions inherited from cv::Algorithm | |
| void | writeFormat (FileStorage &fs) const |
確信度伝播(belief propagation)アルゴリズムを用いてステレオ対応を計算するクラス。:
このクラスは [91] で説明されているアルゴリズムを実装する。独自のデータコストを(切断線形モデルを用いて)計算するか、ユーザー提供のデータコストを使用することができる。
\[width \_ step \cdot height \cdot ndisp \cdot 4 \cdot (1 + 0.25)\]
また、データコストの格納には:
\[width\_step \cdot height \cdot ndisp \cdot (1 + 0.25 + 0.0625 + \dotsm + \frac{1}{4^{levels}})\]
width_step はパディングを含む1ライン中のバイト数である。
StereoBeliefPropagation はデータコスト項と不連続項に切断線形モデルを使用する:
\[DataCost = data \_ weight \cdot \min ( \lvert Img_Left(x,y)-Img_Right(x-d,y) \rvert , max \_ data \_ term)\]
\[DiscTerm = \min (disc \_ single \_ jump \cdot \lvert f_1-f_2 \rvert , max \_ disc \_ term)\]
詳細については [91] を参照のこと。
デフォルトでは StereoBeliefPropagation は浮動小数点演算とメッセージ用の CV_32FC1 型を使用する。ただし、固定小数点演算とメッセージ型 CV_16SC1 を使用してより高い性能を得ることもできる。この場合のオーバーフローを避けるため、引数は以下の要件を満たさなければならない:
\[10 \cdot 2^{levels-1} \cdot max \_ data \_ term < SHRT \_ MAX\]
|
pure virtual |
指定されたデータコストに対して視差を求めるステレオ対応演算子を有効にする。
| data | ユーザー指定のデータコスト。msg_type 型で Size(<画像の列数>*ndisp, <画像の行数>) サイズの行列。 |
| disparity | 出力視差マップ。disparityが空の場合、出力型は CV_16SC1 となる。それ以外の場合は型が保持される。16ビット符号付き形式では、視差値に小数ビットは含まれない。 |
| stream | 非同期版のための Stream。 |
|
pure virtual |
これは利便性のために提供されているオーバーロードされたメンバ関数である。上記の関数とは、受け取る引数のみが異なる。
|
static |
ヒューリスティックな手法を用いて、指定された画像サイズ(width と height)に対する推奨引数(ndisp、iters、levels)を計算する。
|
pure virtual |
データの重み
|
pure virtual |
不連続のシングルジャンプ
|
pure virtual |
データコストの切断値
|
pure virtual |
不連続コストの切断値
|
pure virtual |
メッセージの型(CV_16SC1 または CV_32FC1)
|
pure virtual |
各レベルにおけるBP反復回数
|
pure virtual |
レベル数
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |
|
pure virtual |