![]() |
OpenCV 4.12.0
開源計算機視覺
|
使用置信傳播演算法計算立體匹配的類。: 更多...
#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 |
從 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 |
從 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)。 | |
從 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) |
| 從檔案節點讀取演算法。 | |
附加繼承成員 | |
從 cv::StereoMatcher 繼承的公共型別 | |
| 列舉 | { DISP_SHIFT = 4 , DISP_SCALE = (1 << DISP_SHIFT) } |
從 cv::Algorithm 繼承的受保護成員函式 | |
| void | writeFormat (FileStorage &fs) const |
使用置信傳播演算法計算立體匹配的類。
該類實現了 [89] 中描述的演算法。它可以使用截斷線性模型計算自己的資料成本,也可以使用使用者提供的資料成本。
\[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 是包含填充在內的一行中的位元組數。
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)\]
欲瞭解更多詳情,請參閱 [89] 。
預設情況下,StereoBeliefPropagation 對訊息使用浮點算術和 CV_32FC1 型別。但它也可以使用定點算術和 CV_16SC1 訊息型別以獲得更好的效能。為了避免在這種情況下發生溢位,引數必須滿足以下要求
\[10 \cdot 2^{levels-1} \cdot max \_ data \_ term < SHRT \_ MAX\]
|
純虛擬函式 |
啟用立體匹配運算子,該運算子根據指定的資料成本查詢視差。
| data | 使用者指定的資料成本,一個 msg_type 型別和 Size(<影像列數>*ndisp, <影像行數>) 大小的矩陣。 |
| disparity | 輸出視差圖。如果 disparity 為空,則輸出型別為 CV_16SC1。否則,型別將保留。在 16 位有符號格式中,視差值沒有小數位。 |
| 流 | 用於非同步版本的 Stream。 |
|
純虛擬函式 |
這是一個過載成員函式,為方便起見而提供。它與上述函式唯一的區別在於接受的引數。
|
static |
使用啟發式方法計算指定影像尺寸(width 和 height)的推薦引數(ndisp、iters 和 levels)。
|
純虛擬函式 |
資料權重
|
純虛擬函式 |
不連續單跳
|
純虛擬函式 |
資料代價截斷
|
純虛擬函式 |
不連續代價截斷
|
純虛擬函式 |
訊息型別 (CV_16SC1 或 CV_32FC1)
|
純虛擬函式 |
每個級別的BP迭代次數
|
純虛擬函式 |
級別數
|
純虛擬函式 |
|
純虛擬函式 |
|
純虛擬函式 |
|
純虛擬函式 |
|
純虛擬函式 |
|
純虛擬函式 |
|
純虛擬函式 |