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

實現 Loke SC 等人提出的 F-DBSCAN(採用並行 DBSCAN 演算法加速超畫素影像分割)超畫素演算法的類。[173] 為原始論文。 更多...

#include <opencv2/ximgproc/scansegment.hpp>

cv::ximgproc::ScanSegment 的協作圖

公共成員函式

virtual ~ScanSegment ()
 
virtual void getLabelContourMask (OutputArray image, bool thick_line=false)=0
 返回儲存在 ScanSegment 物件中的超畫素分割的掩碼。
 
virtual void getLabels (OutputArray labels_out)=0
 返回影像的分割標籤。
 
virtual int getNumberOfSuperpixels ()=0
 從使用 iterate 處理的最後一個影像返回實際的超畫素分割。
 
virtual void iterate (InputArray img)=0
 使用 ScanSegment 物件中的初始化引數計算給定影像上的超畫素分割。
 
- 從 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
 

詳細描述

實現 Loke SC 等人提出的 F-DBSCAN(採用並行 DBSCAN 演算法加速超畫素影像分割)超畫素演算法的類。[173] 為原始論文。

該演算法使用並行 DBSCAN 聚類搜尋,該搜尋具有抗噪聲能力,在分割質量方面具有競爭力,並且比現有的超畫素分割方法更快。在伯克利分割資料集上進行測試時,平均處理速度為 175 幀/秒,邊界召回率為 0.797,可實現的分割精度為 0.944。計算複雜度是二次 O(n2),更適合較小的影像,但仍然可以比 OpenCV 中的 SEEDS 演算法更快地處理 2MP 彩色影像。當處理執行緒數固定時,輸出是確定性的,並且需要源影像採用 Lab 顏色格式。

建構函式 & 解構函式文件

◆ ~ScanSegment()

virtual cv::ximgproc::ScanSegment::~ScanSegment ( )
virtual

成員函式文件

◆ getLabelContourMask()

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

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

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

引數
image返回:CV_8UC1 影像掩碼,其中 -1 表示畫素是超畫素邊界,否則為 0。
thick_line如果為 false,則邊界僅為一個畫素寬,否則所有位於邊界的畫素都會被掩蓋。

◆ getLabels()

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

返回影像的分割標籤。

每個標籤代表一個超畫素,並且每個畫素被分配給一個超畫素標籤。

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

◆ getNumberOfSuperpixels()

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

從使用 iterate 處理的最後一個影像返回實際的超畫素分割。

如果沒有處理影像,則返回零。

◆ iterate()

virtual void cv::ximgproc::ScanSegment::iterate ( InputArray img)
純虛擬函式
Python
cv.ximgproc.ScanSegment.iterate(img) ->

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

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

引數
img輸入影像。 支援的格式:CV_8UC3。 影像大小必須與使用函式 createScanSegment() 初始化的影像大小匹配。 它必須採用 Lab 顏色空間。

該類的文件是從以下檔案生成的