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) ->

此类文档由以下文件生成