OpenCV 4.11.0
开源计算机视觉
加载中…
搜索中…
无匹配项
cv::SimpleBlobDetector 类参考抽象类

用于从图像中提取斑点的类。: 更多…

#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的静态公共成员函数
模板<typename _Tp >
静态 Ptr< _Tpload (const String &filename, const String &objname=String())
 从文件中加载算法。
 
模板<typename _Tp >
静态 Ptr< _TploadFromString (const String &strModel, const String &objname=String())
 从字符串加载算法。
 
模板<typename _Tp >
静态 Ptr< _Tpread (const FileNode &fn)
 从文件节点读取算法。
 

其他继承成员

- 继承自cv::Algorithm的保护成员函数
void writeFormat (FileStorage &fs) const
 

详细描述

用于从图像中提取斑点的类。

该类实现了一个简单的算法,用于从图像中提取斑点。

  1. 通过使用从minThreshold(包含)到maxThreshold(不包含)的多个阈值,以及相邻阈值之间的距离thresholdStep进行阈值处理,将源图像转换为二值图像。
  2. 通过findContours从每个二值图像中提取连通分量,并计算它们的中心。
  3. 根据它们的坐标对来自多个二值图像的中心进行分组。接近的中心形成一个对应于一个斑点的组,这由minDistBetweenBlobs参数控制。
  4. 从这些组中,估计斑点的最终中心及其半径,并作为关键点的坐标和大小返回。

此类对返回的斑点执行多次过滤。您应该将filterBy*设置为true/false以启用/禁用相应的过滤。可用的过滤:

  • 按颜色。此过滤器将二值图像中斑点中心的强度与blobColor进行比较。如果它们不同,则会过滤掉该斑点。使用blobColor = 0提取暗斑点,使用blobColor = 255提取亮斑点。
  • 按面积。提取的斑点面积在minArea(包含)和maxArea(不包含)之间。
  • 按圆度。提取的斑点圆度(\(\frac{4*\pi*Area}{perimeter * perimeter}\))在minCircularity(包含)和maxCircularity(不包含)之间。
  • 按最小惯性矩与最大惯性矩之比。提取的斑点此比率在minInertiaRatio(包含)和maxInertiaRatio(不包含)之间。
  • 按凸度。提取的斑点凸度(面积 / 斑点凸包面积)在minConvexity(包含)和maxConvexity(不包含)之间。

参数的默认值经过调整,可以提取暗色圆形斑点。

成员函数文档

◆ create()

静态 Ptr< SimpleBlobDetector > cv::SimpleBlobDetector::create ( const SimpleBlobDetector::Params & parameters = SimpleBlobDetector::Params())
静态
Python
cv.SimpleBlobDetector.create([, parameters]) -> retval
cv.SimpleBlobDetector_create([, parameters]) -> 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) -> None

此类的文档是从以下文件生成的: