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

用於目標檢測的級聯分類器類。支援HAAR和LBP級聯。 : 更多...

#include <opencv2/cudaobjdetect.hpp>

cv::cuda::CascadeClassifier 的協作圖

公共成員函式

virtual void convert (OutputArray gpu_objects, std::vector< Rect > &objects)=0
 將物件陣列從內部表示轉換為標準向量。
 
virtual void detectMultiScale (InputArray image, OutputArray objects, Stream &stream=Stream::Null())=0
 在輸入影像中檢測不同大小的物件。
 
virtual Size getClassifierSize () const =0
 
virtual bool getFindLargestObject ()=0
 
virtual int getMaxNumObjects () const =0
 
virtual Size getMaxObjectSize () const =0
 
virtual int getMinNeighbors () const =0
 
virtual Size getMinObjectSize () const =0
 
virtual double getScaleFactor () const =0
 
virtual void setFindLargestObject (bool findLargestObject)=0
 
virtual void setMaxNumObjects (int maxNumObjects)=0
 
virtual void setMaxObjectSize (Size maxObjectSize)=0
 
virtual void setMinNeighbors (int minNeighbors)=0
 
virtual void setMinObjectSize (Size minSize)=0
 最小可能物件尺寸。小於此尺寸的物件將被忽略。
 
virtual void setScaleFactor (double scaleFactor)=0
 指定在每個影像尺度下影像尺寸縮減量的引數。
 
- 繼承自 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
 

靜態公共成員函式

static Ptr< cuda::CascadeClassifiercreate (const FileStorage &file)
 
static Ptr< cuda::CascadeClassifiercreate (const String &filename)
 從檔案中載入分類器。級聯型別由建構函式引數自動檢測。
 
- 繼承自 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
 

詳細描述

用於目標檢測的級聯分類器類。支援HAAR和LBP級聯。

注意
  • 可以在 opencv_source_code/samples/gpu/cascadeclassifier.cpp 找到級聯分類器的示例。
    • 可以在 opencv_source_code/samples/gpu/cascadeclassifier_nvidia_api.cpp 找到針對NVIDIA API的級聯分類器示例。

成員函式文件

◆ convert()

virtual void cv::cuda::CascadeClassifier::convert ( OutputArray gpu_objects,
std::vector< Rect > & objects )
純虛擬函式

將物件陣列從內部表示轉換為標準向量。

引數
gpu_objects內部表示的物件陣列。
objects結果陣列。

◆ create() [1/2]

static Ptr< cuda::CascadeClassifier > cv::cuda::CascadeClassifier::create ( const FileStorage & file)
static

這是一個過載成員函式,為方便起見提供。它與上述函式的區別僅在於其接受的引數。

◆ create() [2/2]

static Ptr< cuda::CascadeClassifier > cv::cuda::CascadeClassifier::create ( const String & filename)
static

從檔案中載入分類器。級聯型別由建構函式引數自動檢測。

引數
filename載入分類器的檔名。HAAR僅支援舊的haar分類器(由haar訓練應用程式訓練)和NVIDIA的nvbin,LBP僅支援新型別的OpenCV XML級聯。可用的haar模型可以在 opencv_folder/data/haarcascades_cuda/ 找到。

◆ detectMultiScale()

virtual void cv::cuda::CascadeClassifier::detectMultiScale ( InputArray image,
OutputArray objects,
Stream & stream = Stream::Null() )
純虛擬函式

在輸入影像中檢測不同大小的物件。

引數
image型別為CV_8U的矩陣,包含應檢測物件的影像。
objects用於儲存檢測到的物件(矩形)的緩衝區。
CUDA 流。

要獲取檢測到物件的最終陣列,請使用 CascadeClassifier::convert 方法。

Mat image_cpu = imread(...)
GpuMat image_gpu(image_cpu);
GpuMat objbuf;
cascade_gpu->detectMultiScale(image_gpu, objbuf);
std::vector<Rect> faces;
cascade_gpu->convert(objbuf, faces);
for(int i = 0; i < detections_num; ++i)
cv::rectangle(image_cpu, faces[i], Scalar(255));
imshow("Faces", image_cpu);
n 維密集陣列類
定義 mat.hpp:830
2D 矩形的模板類。
定義 types.hpp:444
virtual void detectMultiScale(InputArray image, OutputArray objects, Stream &stream=Stream::Null())=0
在輸入影像中檢測不同大小的物件。
static Ptr< cuda::CascadeClassifier > create(const String &filename)
從檔案中載入分類器。級聯型別由建構函式引數自動檢測。
virtual void convert(OutputArray gpu_objects, std::vector< Rect > &objects)=0
將物件陣列從內部表示轉換為標準向量。
帶引用計數的 GPU 記憶體的基本儲存類。
定義 cuda.hpp:106
std::shared_ptr< _Tp > Ptr
Definition cvstd_wrapper.hpp:23
void imshow(const String &winname, InputArray mat)
在指定視窗中顯示影像。
CV_EXPORTS_W Mat imread(const String &filename, int flags=IMREAD_COLOR_BGR)
從檔案載入影像。
void rectangle(InputOutputArray img, Point pt1, Point pt2, const Scalar &color, int thickness=1, int lineType=LINE_8, int shift=0)
繪製一個簡單、粗或填充的矩形。
定義 core.hpp:107
STL 名稱空間。
另請參見
CascadeClassifier::detectMultiScale

◆ getClassifierSize()

virtual Size cv::cuda::CascadeClassifier::getClassifierSize ( ) const
純虛擬函式

◆ getFindLargestObject()

virtual bool cv::cuda::CascadeClassifier::getFindLargestObject ( )
純虛擬函式

◆ getMaxNumObjects()

virtual int cv::cuda::CascadeClassifier::getMaxNumObjects ( ) const
純虛擬函式

◆ getMaxObjectSize()

virtual Size cv::cuda::CascadeClassifier::getMaxObjectSize ( ) const
純虛擬函式

◆ getMinNeighbors()

virtual int cv::cuda::CascadeClassifier::getMinNeighbors ( ) const
純虛擬函式

◆ getMinObjectSize()

virtual Size cv::cuda::CascadeClassifier::getMinObjectSize ( ) const
純虛擬函式

◆ getScaleFactor()

virtual double cv::cuda::CascadeClassifier::getScaleFactor ( ) const
純虛擬函式

◆ setFindLargestObject()

virtual void cv::cuda::CascadeClassifier::setFindLargestObject ( bool findLargestObject)
純虛擬函式

◆ setMaxNumObjects()

virtual void cv::cuda::CascadeClassifier::setMaxNumObjects ( int maxNumObjects)
純虛擬函式

◆ setMaxObjectSize()

virtual void cv::cuda::CascadeClassifier::setMaxObjectSize ( Size maxObjectSize)
純虛擬函式

最大可能物件尺寸。大於此尺寸的物件將被忽略。用於第二個簽名,僅支援LBP級聯。

◆ setMinNeighbors()

virtual void cv::cuda::CascadeClassifier::setMinNeighbors ( int minNeighbors)
純虛擬函式

指定每個候選矩形應有多少個鄰居才能保留它的引數。

◆ setMinObjectSize()

virtual void cv::cuda::CascadeClassifier::setMinObjectSize ( Size minSize)
純虛擬函式

最小可能物件尺寸。小於此尺寸的物件將被忽略。

◆ setScaleFactor()

virtual void cv::cuda::CascadeClassifier::setScaleFactor ( double scaleFactor)
純虛擬函式

指定在每個影像尺度下影像尺寸縮減量的引數。


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