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

用於從影像中提取 Blob 的類。: 更多...

#include <opencv2/features2d.hpp>

cv::SimpleBlobDetector 的協作圖

結構體  Params
 

公共成員函式

virtual const std::vector< std::vector< cv::Point > > & getBlobContours () const
 
virtual String getDefaultName () const CV_OVERRIDE
 
virtual SimpleBlobDetector::Params getParams () const =0
 
virtual void setParams (const SimpleBlobDetector::Params &params)=0
 
- 從 cv::Feature2D 繼承的公共成員函式
virtual ~Feature2D ()
 
virtual void compute (InputArray image, std::vector< KeyPoint > &keypoints, OutputArray descriptors)
 計算影像(第一個變體)或影像集(第二個變體)中檢測到的關鍵點的描述符。
 
virtual void compute (InputArrayOfArrays images, std::vector< std::vector< KeyPoint > > &keypoints, OutputArrayOfArrays descriptors)
 
virtual int defaultNorm () const
 
virtual int descriptorSize () const
 
virtual int descriptorType () const
 
virtual void detect (InputArray image, std::vector< KeyPoint > &keypoints, InputArray mask=noArray())
 檢測影像(第一個變體)或影像集(第二個變體)中的關鍵點。
 
virtual void detect (InputArrayOfArrays images, std::vector< std::vector< KeyPoint > > &keypoints, InputArrayOfArrays masks=noArray())
 
virtual void detectAndCompute (InputArray image, InputArray mask, std::vector< KeyPoint > &keypoints, OutputArray descriptors, bool useProvidedKeypoints=false)
 
virtual bool empty () const CV_OVERRIDE
 如果檢測器物件為空,則返回 true。
 
virtual void read (const FileNode &) CV_OVERRIDE
 從檔案儲存中讀取演算法引數。
 
void read (const String &fileName)
 
void write (const Ptr< FileStorage > &fs, const String &name) const
 
void write (const String &fileName) const
 
virtual void write (FileStorage &) const CV_OVERRIDE
 將演算法引數儲存到檔案儲存中。
 
void write (FileStorage &fs, const String &name) const
 
- 從 cv::Algorithm 繼承的公共成員函式
 Algorithm ()
 
virtual ~Algorithm ()
 
virtual void clear ()
 清除演算法狀態。
 
virtual void save (const String &filename) const
 
void write (const Ptr< FileStorage > &fs, const String &name=String()) const
 
void write (FileStorage &fs, const String &name) const
 

靜態公共成員函式

static Ptr< SimpleBlobDetectorcreate (const SimpleBlobDetector::Params &parameters=SimpleBlobDetector::Params())
 
- 從 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
 

詳細描述

用於從影像中提取 Blob 的類。

此類實現了一個簡單的演算法,用於從影像中提取 Blob

  1. 透過應用閾值處理將源影像轉換為二值影像,閾值範圍從 minThreshold(包含)到 maxThreshold(不包含),相鄰閾值之間的距離為 thresholdStep。
  2. 透過 findContours 從每個二值影像中提取連線元件並計算它們的中心。
  3. 按座標對來自多個二值影像的中心進行分組。 緊密的中心形成一個組,該組對應於一個 Blob,這由 minDistBetweenBlobs 引數控制。
  4. 從這些組中,估計 Blob 的最終中心及其半徑,並作為關鍵點的位置和大小返回。

此類對返回的 Blob 執行多個過濾。 您應該將 filterBy* 設定為 true/false 以開啟/關閉相應的過濾。 可用過濾

  • 按顏色。 此過濾器將 Blob 中心處的二值影像的強度與 blobColor 進行比較。 如果它們不同,則會濾除該 Blob。 使用 blobColor = 0 提取深色 Blob,使用 blobColor = 255 提取淺色 Blob。
  • 按面積。 提取的 Blob 的面積在 minArea(包含)和 maxArea(不包含)之間。
  • 按圓形度。 提取的 Blob 的圓形度( \(\frac{4*\pi*Area}{perimeter * perimeter}\))在 minCircularity(包含)和 maxCircularity(不包含)之間。
  • 最小慣性與最大慣性的比率。 提取的 Blob 的此比率在 minInertiaRatio(包含)和 maxInertiaRatio(不包含)之間。
  • 按凸度。 提取的 Blob 的凸度(面積/ Blob 凸包的面積)在 minConvexity(包含)和 maxConvexity(不包含)之間。

引數的預設值已調整為提取深色圓形 Blob。

成員函式文件

◆ create()

static Ptr< SimpleBlobDetector > cv::SimpleBlobDetector::create ( const SimpleBlobDetector::Params & parameters = SimpleBlobDetector::Params())
static
Python
cv.SimpleBlobDetector.create([, 引數]) -> retval
cv.SimpleBlobDetector_create([, 引數]) -> retval

◆ getBlobContours()

virtual const std::vector< std::vector< cv::Point > > & cv::SimpleBlobDetector::getBlobContours ( ) const
virtual
Python
cv.SimpleBlobDetector.getBlobContours() -> retval

◆ getDefaultName()

virtual String cv::SimpleBlobDetector::getDefaultName ( ) const
virtual
Python
cv.SimpleBlobDetector.getDefaultName() -> retval

返回演算法字串識別符號。當物件儲存到檔案或字串時,此字串用作頂級 xml/yml 節點標記。

cv::Feature2D 重新實現。

◆ getParams()

virtual SimpleBlobDetector::Params cv::SimpleBlobDetector::getParams ( ) const
純虛擬函式
Python
cv.SimpleBlobDetector.getParams() -> retval

◆ setParams()

virtual void cv::SimpleBlobDetector::setParams ( const SimpleBlobDetector::Params & params)
純虛擬函式
Python
cv.SimpleBlobDetector.setParams(params) ->

此類文件由以下檔案生成