🤖
AIによる機械翻訳(非公式) — これは OpenCV 4.13.0 公式リファレンス(英語)を AI (Claude) で自動翻訳したものです。訳に誤りを含む場合があります。正確な情報は
公式英語版(原文) を参照してください。
物体検出用のカスケード分類器クラス。 続き...
#include <opencv2/objdetect.hpp>
|
| | 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::MaskGenerator > | getMaskGenerator () |
| |
| 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) |
| |
◆ 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 には最終ステージでの分類の確信度が格納される。この値は、強い分類と弱い分類を区別するために使用できる。
効率的に使う方法のコードサンプルを以下に示す。
vector<double> weights;
vector<int> levels;
vector<Rect> detections;
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 |
◆ getFeatureType()
| int cv::CascadeClassifier::getFeatureType |
( |
| ) |
const |
| Python: |
|---|
| cv.CascadeClassifier.getFeatureType( | | ) -> | retval |
◆ 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()
◆ cc
このクラス詳解は次のファイルから抽出されました: