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

これはOpenCVのある程度複雑なすべてのアルゴリズムの基底クラスである。詳細...

#include <opencv2/core.hpp>

Collaboration diagram for 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
 
virtual void write (FileStorage &fs) const
 アルゴリズムの引数をファイルストレージに保存する。
 
void write (FileStorage &fs, const String &name) const
 

静的公開メンバ関数

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)
 ファイルノードからアルゴリズムを読み込む。
 

限定公開メンバ関数

void writeFormat (FileStorage &fs) const
 

詳細説明

これはOpenCVのある程度複雑なすべてのアルゴリズムの基底クラスである。

特に、複数の実装が存在しうるアルゴリズムのクラスに対して用いられる。例としては、ステレオ対応(ブロックマッチング、セミグローバルブロックマッチング、グラフカットなどのアルゴリズムがある)、背景差分(混合ガウスモデル、コードブックベースのアルゴリズムなどで行える)、オプティカルフロー(ブロックマッチング、Lucas-Kanade、Horn-Schunckなど)が挙げられる。

次に、Algorithm インターフェースを介してアプリケーション内で SimpleBlobDetector を使用する例を示す:

Ptr<Feature2D> sbd = SimpleBlobDetector::create();
FileStorage fs_read("SimpleBlobDetector_params.xml", FileStorage::READ);
if (fs_read.isOpened()) // if we have file with parameters, read them
{
sbd->read(fs_read.root());
fs_read.release();
}
else // else modify the parameters and store them; user can later edit the file to use different parameters
{
fs_read.release();
FileStorage fs_write("SimpleBlobDetector_params.xml", FileStorage::WRITE);
sbd->write(fs_write);
fs_write.release();
}
Mat result, image = imread("../data/detect_blob.png", IMREAD_COLOR);
vector<KeyPoint> keypoints;
sbd->detect(image, keypoints, Mat());
drawKeypoints(image, keypoints, result);
for (vector<KeyPoint>::iterator k = keypoints.begin(); k != keypoints.end(); ++k)
circle(result, k->pt, (int)k->size, Scalar(0, 0, 255), 2);
imshow("result", result);
waitKey(0);

構築子と解体子の詳解

◆ Algorithm()

cv::Algorithm::Algorithm ( )

◆ ~Algorithm()

virtual cv::Algorithm::~Algorithm ( )
virtual

メンバ関数詳解

◆ clear()

virtual void cv::Algorithm::clear ( )
inlinevirtual
Python:
cv.Algorithm.clear() -> None

◆ empty()

virtual bool cv::Algorithm::empty ( ) const
inlinevirtual
Python:
cv.Algorithm.empty() -> retval

◆ getDefaultName()

virtual String cv::Algorithm::getDefaultName ( ) const
virtual
Python:
cv.Algorithm.getDefaultName() -> retval

◆ load()

template<typename _Tp >
static Ptr< _Tp > cv::Algorithm::load ( const String & filename,
const String & objname = String() )
inlinestatic

ファイルからアルゴリズムを読み込む。

引数
filename読み込むファイルの名前。
objname読み込むノードの名前(省略可能。空の場合、最初のトップレベルノードが使用される)

これは Algorithm の静的テンプレートメソッドである。使い方は次のとおり(SVMの場合):

Ptr<SVM> svm = Algorithm::load<SVM>("my_svm_model.xml");
static Ptr< _Tp > load(const String &filename, const String &objname=String())
Loads algorithm from the file.
Definition core.hpp:3214
std::shared_ptr< _Tp > Ptr
Definition cvstd_wrapper.hpp:23

このメソッドを機能させるには、派生クラスで Algorithm::read(const FileNode& fn) をオーバーライドする必要がある。

この関数の呼び出しグラフ:

◆ loadFromString()

template<typename _Tp >
static Ptr< _Tp > cv::Algorithm::loadFromString ( const String & strModel,
const String & objname = String() )
inlinestatic

String からアルゴリズムを読み込む。

引数
strModel読み込みたいモデルを含む文字列変数。
objname読み込むノードの名前(省略可能。空の場合、最初のトップレベルノードが使用される)

これは Algorithm の静的テンプレートメソッドである。使い方は次のとおり(SVMの場合):

static Ptr< _Tp > loadFromString(const String &strModel, const String &objname=String())
Loads algorithm from a String.
Definition core.hpp:3235
この関数の呼び出しグラフ:

◆ read() [1/2]

virtual void cv::Algorithm::read ( const FileNode & fn)
inlinevirtual
Python:
cv.Algorithm.read(fn) -> None

◆ read() [2/2]

template<typename _Tp >
static Ptr< _Tp > cv::Algorithm::read ( const FileNode & fn)
inlinestatic
Python:
cv.Algorithm.read(fn) -> None

ファイルノードからアルゴリズムを読み込む。

これは Algorithm の静的テンプレートメソッドである。使い方は次のとおり(SVMの場合):

cv::FileStorage fsRead("example.xml", FileStorage::READ);
Ptr<SVM> svm = Algorithm::read<SVM>(fsRead.root());
virtual void read(const FileNode &fn)
Reads algorithm parameters from a file storage.
Definition core.hpp:3178
XML/YAML/JSON file storage class that encapsulates all the information necessary for writing or readi...
Definition persistence.hpp:261
@ READ
value, open the file for reading
Definition persistence.hpp:266

このメソッドを機能させるには、派生クラスで Algorithm::read(const FileNode& fn) をオーバーライドし、さらに引数なし(またはすべて省略可能な引数を持つ)の静的 create() メソッドを用意する必要がある

◆ save()

virtual void cv::Algorithm::save ( const String & filename) const
virtual
Python:
cv.Algorithm.save(filename) -> None

アルゴリズムをファイルに保存する。このメソッドを機能させるには、派生クラスで Algorithm::write(FileStorage& fs) を実装する必要がある。

◆ write() [1/2]

virtual void cv::Algorithm::write ( FileStorage & fs) const
inlinevirtual
Python:
cv.Algorithm.write(fs) -> None
cv.Algorithm.write(fs, name) -> None

◆ write() [2/2]

void cv::Algorithm::write ( FileStorage & fs,
const String & name ) const
Python:
cv.Algorithm.write(fs) -> None
cv.Algorithm.write(fs, name) -> None

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

この関数の呼び出しグラフ:

◆ writeFormat()

void cv::Algorithm::writeFormat ( FileStorage & fs) const
protected

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