#include <opencv2/hfs.hpp>
|
| static Ptr< HfsSegment > | create (int height, int width, float segEgbThresholdI=0.08f, int minRegionSizeI=100, float segEgbThresholdII=0.28f, int minRegionSizeII=200, float spatialWeight=0.6f, int slicSpixelSize=8, int numSlicIter=5) |
| | :建立一個 HFS 物件
|
| |
| 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) |
| | 從檔案節點讀取演算法。
|
| |
◆ create()
| static Ptr< HfsSegment > cv::hfs::HfsSegment::create |
( |
int | height, |
|
|
int | width, |
|
|
float | segEgbThresholdI = 0.08f, |
|
|
int | minRegionSizeI = 100, |
|
|
float | segEgbThresholdII = 0.28f, |
|
|
int | minRegionSizeII = 200, |
|
|
float | spatialWeight = 0.6f, |
|
|
int | slicSpixelSize = 8, |
|
|
int | numSlicIter = 5 ) |
|
static |
| Python |
|---|
| cv.hfs.HfsSegment.create( | height, width[, segEgbThresholdI[, minRegionSizeI[, segEgbThresholdII[, minRegionSizeII[, spatialWeight[, slicSpixelSize[, numSlicIter]]]]]]] | ) -> | retval |
| cv.hfs.HfsSegment_create( | height, width[, segEgbThresholdI[, minRegionSizeI[, segEgbThresholdII[, minRegionSizeII[, spatialWeight[, slicSpixelSize[, numSlicIter]]]]]]] | ) -> | retval |
:建立一個 HFS 物件
- 引數
-
| height | 輸入影像的高度 |
| width | 輸入影像的寬度 |
| segEgbThresholdI | 引數 segEgbThresholdI |
| minRegionSizeI | 引數 minRegionSizeI |
| segEgbThresholdII | 引數 segEgbThresholdII |
| minRegionSizeII | 引數 minRegionSizeII |
| spatialWeight | 引數 spatialWeight |
| slicSpixelSize | 引數 slicSpixelSize |
| numSlicIter | 引數 numSlicIter |
◆ getMinRegionSizeI()
| virtual int cv::hfs::HfsSegment::getMinRegionSizeI |
( |
| ) |
|
|
純虛擬函式 |
| Python |
|---|
| cv.hfs.HfsSegment.getMinRegionSizeI( | | ) -> | retval |
◆ getMinRegionSizeII()
| virtual int cv::hfs::HfsSegment::getMinRegionSizeII |
( |
| ) |
|
|
純虛擬函式 |
| Python |
|---|
| cv.hfs.HfsSegment.getMinRegionSizeII( | | ) -> | retval |
◆ getNumSlicIter()
| virtual int cv::hfs::HfsSegment::getNumSlicIter |
( |
| ) |
|
|
純虛擬函式 |
| Python |
|---|
| cv.hfs.HfsSegment.getNumSlicIter( | | ) -> | retval |
◆ getSegEgbThresholdI()
| virtual float cv::hfs::HfsSegment::getSegEgbThresholdI |
( |
| ) |
|
|
純虛擬函式 |
| Python |
|---|
| cv.hfs.HfsSegment.getSegEgbThresholdI( | | ) -> | retval |
◆ getSegEgbThresholdII()
| virtual float cv::hfs::HfsSegment::getSegEgbThresholdII |
( |
| ) |
|
|
純虛擬函式 |
| Python |
|---|
| cv.hfs.HfsSegment.getSegEgbThresholdII( | | ) -> | retval |
◆ getSlicSpixelSize()
| virtual int cv::hfs::HfsSegment::getSlicSpixelSize |
( |
| ) |
|
|
純虛擬函式 |
| Python |
|---|
| cv.hfs.HfsSegment.getSlicSpixelSize( | | ) -> | retval |
◆ getSpatialWeight()
| virtual float cv::hfs::HfsSegment::getSpatialWeight |
( |
| ) |
|
|
純虛擬函式 |
| Python |
|---|
| cv.hfs.HfsSegment.getSpatialWeight( | | ) -> | retval |
◆ performSegmentCpu()
| virtual Mat cv::hfs::HfsSegment::performSegmentCpu |
( |
InputArray | src, |
|
|
bool | ifDraw = true ) |
|
純虛擬函式 |
| Python |
|---|
| cv.hfs.HfsSegment.performSegmentCpu( | src[, ifDraw] | ) -> | retval |
使用 CPU 執行分割。此方法僅供參考,強烈不建議使用。
◆ performSegmentGpu()
| virtual Mat cv::hfs::HfsSegment::performSegmentGpu |
( |
InputArray | src, |
|
|
bool | ifDraw = true ) |
|
純虛擬函式 |
| Python |
|---|
| cv.hfs.HfsSegment.performSegmentGpu( | src[, ifDraw] | ) -> | retval |
使用 GPU 執行分割
- 引數
-
| src | 輸入影像 |
| ifDraw | 是否在返回的 Mat 中繪製圖像。如果此引數為 false,則返回的 Mat 的內容是一個索引矩陣,描述每個畫素所屬的區域,其資料型別為 CV_16U。如果此引數為 true,則返回的 Mat 是一張分割後的圖片,每個區域的顏色是該區域中所有畫素的平均顏色,其資料型別與輸入影像相同。 |
◆ setMinRegionSizeI()
| virtual void cv::hfs::HfsSegment::setMinRegionSizeI |
( |
int | n | ) |
|
|
純虛擬函式 |
| Python |
|---|
| cv.hfs.HfsSegment.setMinRegionSizeI( | n | ) -> | 無 |
:設定和獲取引數 minRegionSizeI。此引數用於上述第二階段。在 EGB 分割後,畫素少於此引數的區域將合併到其相鄰區域。
◆ setMinRegionSizeII()
| virtual void cv::hfs::HfsSegment::setMinRegionSizeII |
( |
int | n | ) |
|
|
純虛擬函式 |
| Python |
|---|
| cv.hfs.HfsSegment.setMinRegionSizeII( | n | ) -> | 無 |
:設定和獲取引數 minRegionSizeII。此引數用於上述第三階段。其作用與 minRegionSizeI 相同。
◆ setNumSlicIter()
| virtual void cv::hfs::HfsSegment::setNumSlicIter |
( |
int | n | ) |
|
|
純虛擬函式 |
| Python |
|---|
| cv.hfs.HfsSegment.setNumSlicIter( | n | ) -> | 無 |
:設定和獲取引數 numSlicIter。此引數用於第一階段。它描述了執行 SLIC 時要執行的迭代次數。
◆ setSegEgbThresholdI()
| virtual void cv::hfs::HfsSegment::setSegEgbThresholdI |
( |
float | c | ) |
|
|
純虛擬函式 |
| Python |
|---|
| cv.hfs.HfsSegment.setSegEgbThresholdI( | c | ) -> | 無 |
:設定和獲取引數 segEgbThresholdI。此引數用於上述第二階段。它是應用 EGB 演算法時合併相鄰節點時用於閾值化邊緣權重的常數。如果此值較大,分割結果傾向於保留更多區域,反之亦然。
◆ setSegEgbThresholdII()
| virtual void cv::hfs::HfsSegment::setSegEgbThresholdII |
( |
float | c | ) |
|
|
純虛擬函式 |
| Python |
|---|
| cv.hfs.HfsSegment.setSegEgbThresholdII( | c | ) -> | 無 |
:設定和獲取引數 segEgbThresholdII。此引數用於上述第三階段。其作用與 segEgbThresholdI 相同。如果此值較大,分割結果傾向於保留更多區域,反之亦然。
◆ setSlicSpixelSize()
| virtual void cv::hfs::HfsSegment::setSlicSpixelSize |
( |
int | n | ) |
|
|
純虛擬函式 |
| Python |
|---|
| cv.hfs.HfsSegment.setSlicSpixelSize( | n | ) -> | 無 |
:設定和獲取引數 slicSpixelSize。此引數用於上述第一階段(SLIC 階段)。它描述了初始化 SLIC 時每個超畫素的大小。最初,每個超畫素大約有 \(slicSpixelSize \times slicSpixelSize\) 個畫素。
◆ setSpatialWeight()
| virtual void cv::hfs::HfsSegment::setSpatialWeight |
( |
float | w | ) |
|
|
純虛擬函式 |
| Python |
|---|
| cv.hfs.HfsSegment.setSpatialWeight( | w | ) -> | 無 |
:設定和獲取引數 spatialWeight。此引數用於上述第一階段(SLIC 階段)。它描述了在計算每個畫素與其中心之間的距離時,位置所扮演角色的重要性。計算距離的確切公式是 \(colorDistance + spatialWeight \times spatialDistance\)。如果此值較大,分割結果傾向於具有更高的區域性一致性。
此類的文件是從以下檔案生成的