OpenCV 4.13.0
Open Source Computer Vision
読み込み中...
検索中...
見つかりません
🤖 AIによる機械翻訳(非公式) — これは OpenCV 4.13.0 公式リファレンス(英語)を AI (Claude) で自動翻訳したものです。訳に誤りを含む場合があります。正確な情報は 公式英語版(原文) を参照してください。

物体検出用のカスケード分類器クラス。 続き...

#include <opencv2/objdetect.hpp>

Collaboration diagram for cv::CascadeClassifier:

公開メンバ関数

 CascadeClassifier ()
 
 CascadeClassifier (const String &filename)
 ファイルから分類器を読み込む。
 
 ~CascadeClassifier ()
 
void detectMultiScale (InputArray image, std::vector< Rect > &objects, double scaleFactor=1.1, int minNeighbors=3, int flags=0, Size minSize=Size(), Size maxSize=Size())
 入力画像中の様々なサイズの物体を検出する。検出された物体は矩形のリストとして返される。
 
void detectMultiScale (InputArray image, std::vector< Rect > &objects, std::vector< int > &numDetections, double scaleFactor=1.1, int minNeighbors=3, int flags=0, Size minSize=Size(), Size maxSize=Size())
 
void detectMultiScale (InputArray image, std::vector< Rect > &objects, std::vector< int > &rejectLevels, std::vector< double > &levelWeights, double scaleFactor=1.1, int minNeighbors=3, int flags=0, Size minSize=Size(), Size maxSize=Size(), bool outputRejectLevels=false)
 
bool empty () const
 分類器が読み込まれているかどうかを確認する。
 
int getFeatureType () const
 
Ptr< BaseCascadeClassifier::MaskGeneratorgetMaskGenerator ()
 
void * getOldCascade ()
 
Size getOriginalWindowSize () const
 
bool isOldFormatCascade () const
 
bool load (const String &filename)
 ファイルから分類器を読み込む。
 
bool read (const FileNode &node)
 FileStorage ノードから分類器を読み込む。
 
void setMaskGenerator (const Ptr< BaseCascadeClassifier::MaskGenerator > &maskGenerator)
 

静的公開メンバ関数

static bool convert (const String &oldcascade, const String &newcascade)
 

公開変数類

Ptr< BaseCascadeClassifiercc
 

詳細説明

物体検出用のカスケード分類器クラス。

samples/cpp/facedetect.cpp.

構築子と解体子の詳解

◆ CascadeClassifier() [1/2]

cv::CascadeClassifier::CascadeClassifier ( )
Python:
cv.CascadeClassifier() -> <CascadeClassifier object>
cv.CascadeClassifier(filename) -> <CascadeClassifier object>

◆ CascadeClassifier() [2/2]

cv::CascadeClassifier::CascadeClassifier ( const String & filename)
Python:
cv.CascadeClassifier() -> <CascadeClassifier object>
cv.CascadeClassifier(filename) -> <CascadeClassifier object>

ファイルから分類器を読み込む。

引数
filename分類器の読み込み元となるファイルの名前。

◆ ~CascadeClassifier()

cv::CascadeClassifier::~CascadeClassifier ( )

メンバ関数詳解

◆ convert()

static bool cv::CascadeClassifier::convert ( const String & oldcascade,
const String & newcascade )
static
Python:
cv.CascadeClassifier.convert(oldcascade, newcascade) -> retval
cv.CascadeClassifier_convert(oldcascade, newcascade) -> retval

◆ detectMultiScale() [1/3]

void cv::CascadeClassifier::detectMultiScale ( InputArray image,
std::vector< Rect > & objects,
double scaleFactor = 1.1,
int minNeighbors = 3,
int flags = 0,
Size minSize = Size(),
Size maxSize = Size() )
Python:
cv.CascadeClassifier.detectMultiScale(image[, scaleFactor[, minNeighbors[, flags[, minSize[, maxSize]]]]]) -> objects
cv.CascadeClassifier.detectMultiScale2(image[, scaleFactor[, minNeighbors[, flags[, minSize[, maxSize]]]]]) -> objects, numDetections
cv.CascadeClassifier.detectMultiScale3(image[, scaleFactor[, minNeighbors[, flags[, minSize[, maxSize[, outputRejectLevels]]]]]]) -> objects, rejectLevels, levelWeights

入力画像中の様々なサイズの物体を検出する。検出された物体は矩形のリストとして返される。

引数
image物体が検出される画像を含む CV_8U 型の行列。
objects検出された物体を含む矩形のベクトル。各矩形は検出された物体を1つ含み、矩形は元画像の外側に部分的にはみ出すことがある。
scaleFactor各画像スケールで画像サイズをどれだけ縮小するかを指定するパラメータ。
minNeighbors各候補矩形を残すために、いくつの近傍が必要かを指定するパラメータ。
flags古いカスケードに対して、関数 cvHaarDetectObjects と同じ意味を持つパラメータ。新しいカスケードでは使用されない。
minSize検出可能な物体の最小サイズ。これより小さい物体は無視される。
maxSize検出可能な物体の最大サイズ。これより大きい物体は無視される。maxSize == minSize の場合、モデルは単一スケールで評価される。
samples/cpp/facedetect.cpp.

◆ detectMultiScale() [2/3]

void cv::CascadeClassifier::detectMultiScale ( InputArray image,
std::vector< Rect > & objects,
std::vector< int > & numDetections,
double scaleFactor = 1.1,
int minNeighbors = 3,
int flags = 0,
Size minSize = Size(),
Size maxSize = Size() )
Python:
cv.CascadeClassifier.detectMultiScale(image[, scaleFactor[, minNeighbors[, flags[, minSize[, maxSize]]]]]) -> objects
cv.CascadeClassifier.detectMultiScale2(image[, scaleFactor[, minNeighbors[, flags[, minSize[, maxSize]]]]]) -> objects, numDetections
cv.CascadeClassifier.detectMultiScale3(image[, scaleFactor[, minNeighbors[, flags[, minSize[, maxSize[, outputRejectLevels]]]]]]) -> objects, rejectLevels, levelWeights

これは利便性のために提供されているオーバーロードされたメンバ関数である。上記の関数とは、受け取る引数のみが異なる。

引数
image物体が検出される画像を含む CV_8U 型の行列。
objects検出された物体を含む矩形のベクトル。各矩形は検出された物体を1つ含み、矩形は元画像の外側に部分的にはみ出すことがある。
numDetections対応する物体ごとの検出数のベクトル。物体の検出数は、その物体を形成するために結合された、近接する陽性判定矩形の数である。
scaleFactor各画像スケールで画像サイズをどれだけ縮小するかを指定するパラメータ。
minNeighbors各候補矩形を残すために、いくつの近傍が必要かを指定するパラメータ。
flags古いカスケードに対して、関数 cvHaarDetectObjects と同じ意味を持つパラメータ。新しいカスケードでは使用されない。
minSize検出可能な物体の最小サイズ。これより小さい物体は無視される。
maxSize検出可能な物体の最大サイズ。これより大きい物体は無視される。maxSize == minSize の場合、モデルは単一スケールで評価される。

◆ detectMultiScale() [3/3]

void cv::CascadeClassifier::detectMultiScale ( InputArray image,
std::vector< Rect > & objects,
std::vector< int > & rejectLevels,
std::vector< double > & levelWeights,
double scaleFactor = 1.1,
int minNeighbors = 3,
int flags = 0,
Size minSize = Size(),
Size maxSize = Size(),
bool outputRejectLevels = false )
Python:
cv.CascadeClassifier.detectMultiScale(image[, scaleFactor[, minNeighbors[, flags[, minSize[, maxSize]]]]]) -> objects
cv.CascadeClassifier.detectMultiScale2(image[, scaleFactor[, minNeighbors[, flags[, minSize[, maxSize]]]]]) -> objects, numDetections
cv.CascadeClassifier.detectMultiScale3(image[, scaleFactor[, minNeighbors[, flags[, minSize[, maxSize[, outputRejectLevels]]]]]]) -> objects, rejectLevels, levelWeights

これはオーバーロードされたメンバ関数であり、利便性のために提供されている。受け取る引数の点でのみ上記の関数と異なる。この関数では、分類の最終ステージの判定確信度を取得できる。そのためには outputRejectLevels を true に設定し、rejectLevels および levelWeights パラメータを与える必要がある。各検出結果について、levelWeights には最終ステージでの分類の確信度が格納される。この値は、強い分類と弱い分類を区別するために使用できる。

効率的に使う方法のコードサンプルを以下に示す。

Mat img;
vector<double> weights;
vector<int> levels;
vector<Rect> detections;
CascadeClassifier model("/path/to/your/model.xml");
model.detectMultiScale(img, detections, levels, weights, 1.1, 3, 0, Size(), Size(), true);
cerr << "Detection " << detections[0] << " with weight " << weights[0] << endl;
Cascade classifier class for object detection.
Definition objdetect.hpp:258
n-dimensional dense array class
Definition mat.hpp:840
Size2i Size
Definition types.hpp:370

◆ empty()

bool cv::CascadeClassifier::empty ( ) const
Python:
cv.CascadeClassifier.empty() -> retval

分類器が読み込まれているかどうかを確認する。

samples/cpp/facedetect.cpp.

◆ getFeatureType()

int cv::CascadeClassifier::getFeatureType ( ) const
Python:
cv.CascadeClassifier.getFeatureType() -> retval

◆ getMaskGenerator()

Ptr< BaseCascadeClassifier::MaskGenerator > cv::CascadeClassifier::getMaskGenerator ( )

◆ getOldCascade()

void * cv::CascadeClassifier::getOldCascade ( )

◆ getOriginalWindowSize()

Size cv::CascadeClassifier::getOriginalWindowSize ( ) const
Python:
cv.CascadeClassifier.getOriginalWindowSize() -> retval

◆ isOldFormatCascade()

bool cv::CascadeClassifier::isOldFormatCascade ( ) const
Python:
cv.CascadeClassifier.isOldFormatCascade() -> retval

◆ load()

bool cv::CascadeClassifier::load ( const String & filename)
Python:
cv.CascadeClassifier.load(filename) -> retval

ファイルから分類器を読み込む。

引数
filename分類器の読み込み元となるファイルの名前。このファイルには、haartraining アプリケーションで学習された古いHAAR分類器、または traincascade アプリケーションで学習された新しいカスケード分類器を含むことができる。
samples/cpp/facedetect.cpp.

◆ read()

bool cv::CascadeClassifier::read ( const FileNode & node)
Python:
cv.CascadeClassifier.read(node) -> retval

FileStorage ノードから分類器を読み込む。

覚え書き
このファイルには、新しいカスケード分類器(traincascade アプリケーションで学習されたもの)のみを含めることができる。

◆ setMaskGenerator()

void cv::CascadeClassifier::setMaskGenerator ( const Ptr< BaseCascadeClassifier::MaskGenerator > & maskGenerator)

メンバ変数詳解

◆ cc

Ptr<BaseCascadeClassifier> cv::CascadeClassifier::cc

このクラス詳解は次のファイルから抽出されました: