OpenCV 4.12.0
開源計算機視覺
載入中...
搜尋中...
無匹配項
cv::ximgproc::SuperpixelSLIC 類參考抽象類

實現 SLIC (Simple Linear Iterative Clustering) 超畫素演算法的類,該演算法在 [1] 中進行了描述。 更多...

#include <opencv2/ximgproc/slic.hpp>

cv::ximgproc::SuperpixelSLIC 的協作圖

公共成員函式

virtual void enforceLabelConnectivity (int min_element_size=25)=0
 強制標籤連線性。
 
virtual void getLabelContourMask (OutputArray image, bool thick_line=true) const =0
 返回儲存在 SuperpixelSLIC 物件中的超畫素分割的掩碼。
 
virtual void getLabels (OutputArray labels_out) const =0
 返回影像的分割標籤。
 
virtual int getNumberOfSuperpixels () const =0
 計算給定分割上超畫素的實際數量,該分割已計算並存儲在 SuperpixelSLIC 物件中。
 
virtual void iterate (int num_iterations=10)=0
 使用 SuperpixelSLIC 物件中的初始化引數,計算給定影像上的超畫素分割。
 
- 從 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
 

其他繼承的成員

- 從 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)
 從檔案節點讀取演算法。
 
- 從 cv::Algorithm 繼承的保護成員函式
void writeFormat (FileStorage &fs) const
 

詳細描述

實現 SLIC (Simple Linear Iterative Clustering) 超畫素演算法的類,該演算法在 [1] 中進行了描述。

SLIC(簡單線性迭代聚類)使用畫素通道和影像平面空間來有效地生成緊湊、幾乎均勻的超畫素來聚類畫素。該方法的簡單性使其非常易於使用:一個單獨的引數指定超畫素的數量,並且演算法的效率使其非常實用。 SLIC 類有幾個最佳化:SLICO 代表“零引數 SLIC”,它是 [1] 中描述的基線 SLIC 的最佳化。 MSLIC 代表“流形 SLIC”,它是 [172] 中描述的基線 SLIC 的最佳化。

成員函式文件

◆ enforceLabelConnectivity()

virtual void cv::ximgproc::SuperpixelSLIC::enforceLabelConnectivity ( int min_element_size = 25)
純虛擬函式
Python
cv.ximgproc.SuperpixelSLIC.enforceLabelConnectivity([, min_element_size]) ->

強制標籤連線性。

引數
min_element_size應吸收到更大的超畫素中的最小元素大小(以百分比表示)。給定結果的平均超畫素大小,有效值應在 0-100 範圍內,25 表示應吸收小於四分之一大小的超畫素,這是預設值。

該函式合併太小的元件,將先前找到的相鄰標籤分配給此元件。呼叫此函式可能會更改超畫素的最終數量。

◆ getLabelContourMask()

virtual void cv::ximgproc::SuperpixelSLIC::getLabelContourMask ( OutputArray image,
bool thick_line = true ) const
純虛擬函式
Python
cv.ximgproc.SuperpixelSLIC.getLabelContourMask([, image[, thick_line]]) -> image

返回儲存在 SuperpixelSLIC 物件中的超畫素分割的掩碼。

引數
image返回值:CV_8U1 影像掩碼,其中 -1 表示畫素是超畫素邊界,否則為 0。
thick_line如果為 false,則邊界僅為一個畫素寬,否則邊界上的所有畫素都將被遮蔽。

該函式返回超畫素分割的邊界。

◆ getLabels()

virtual void cv::ximgproc::SuperpixelSLIC::getLabels ( OutputArray labels_out) const
純虛擬函式
Python
cv.ximgproc.SuperpixelSLIC.getLabels([, labels_out]) -> labels_out

返回影像的分割標籤。

每個標籤代表一個超畫素,每個畫素都分配給一個超畫素標籤。

引數
labels_out返回值:一個 CV_32SC1 整數陣列,包含超畫素分割的標籤。標籤的範圍為 [0, getNumberOfSuperpixels()]。

該函式返回帶有超畫素分割標籤的影像。標籤的範圍為 [0, getNumberOfSuperpixels()]。

◆ getNumberOfSuperpixels()

virtual int cv::ximgproc::SuperpixelSLIC::getNumberOfSuperpixels ( ) const
純虛擬函式
Python
cv.ximgproc.SuperpixelSLIC.getNumberOfSuperpixels() -> retval

計算給定分割上超畫素的實際數量,該分割已計算並存儲在 SuperpixelSLIC 物件中。

◆ iterate()

virtual void cv::ximgproc::SuperpixelSLIC::iterate ( int num_iterations = 10)
純虛擬函式
Python
cv.ximgproc.SuperpixelSLIC.iterate([, num_iterations]) ->

使用 SuperpixelSLIC 物件中的初始化引數,計算給定影像上的超畫素分割。

無需使用 createSuperpixelSLIC() 初始化演算法,就可以再次呼叫此函式。這節省了為演算法的所有結構分配記憶體的計算成本。

引數
num_iterations迭代次數。迭代次數越多,結果越好。

該函式使用使用 createSuperpixelSLIC() 函式初始化的引數來計算影像的超畫素分割。該演算法從超畫素網格開始,然後透過提出邊緣邊界的更新來細化邊界。


此類文件由以下檔案生成