Options
All
  • Public
  • Public/Protected
  • All
Menu

especially for classes of algorithms, for which there can be multiple implementations. The examples are stereo correspondence (for which there are algorithms like block matching, semi-global block matching, graph-cut etc.), background subtraction (which can be done using mixture-of-gaussians models, codebook-based algorithm etc.), optical flow (block matching, Lucas-Kanade, Horn-Schunck etc.).

Here is example of SimpleBlobDetector use in your application via Algorithm interface:

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

Source: opencv2/core.hpp.

Hierarchy

Index

Constructors

constructor

Methods

clear

  • clear(): void

clone

  • clone(...a: any[]): any

delete

  • delete(...a: any[]): any

deleteLater

  • deleteLater(...a: any[]): any

empty

getDefaultName

  • getDefaultName(): String
  • Returns the algorithm string identifier. This string is used as top level xml/yml node tag when the object is saved to a file or string.

    Returns String

isAliasOf

  • isAliasOf(...a: any[]): any

isDeleted

  • isDeleted(...a: any[]): any

read

save

  • save(filename: String): String
  • Saves the algorithm to a file. In order to make this method work, the derived class must implement Algorithm::write(FileStorage& fs).

    Parameters

    • filename: String

    Returns String

write

Static load

  • load(arg0: any, filename: String, objname?: String): Ptr
  • This is static template method of [Algorithm]. It's usage is following (in the case of SVM):

      Ptr<SVM> svm = Algorithm::load<SVM>("my_svm_model.xml");

    In order to make this method work, the derived class must overwrite [Algorithm::read](const [FileNode]& fn).

    Parameters

    • arg0: any
    • filename: String

      Name of the file to read.

    • Optional objname: String

      The optional name of the node to read (if empty, the first top-level node will be used)

    Returns Ptr

Static loadFromString

  • loadFromString(arg1: any, strModel: String, objname?: String): Ptr
  • This is static template method of [Algorithm]. It's usage is following (in the case of SVM):

      Ptr<SVM> svm = Algorithm::loadFromString<SVM>(myStringModel);

    Parameters

    • arg1: any
    • strModel: String

      The string variable containing the model you want to load.

    • Optional objname: String

      The optional name of the node to read (if empty, the first top-level node will be used)

    Returns Ptr

Static read

  • This is static template method of [Algorithm]. It's usage is following (in the case of SVM):

      cv::FileStorage fsRead("example.xml", FileStorage::READ);
      Ptr<SVM> svm = Algorithm::read<SVM>(fsRead.root());

    In order to make this method work, the derived class must overwrite [Algorithm::read](const [FileNode]& fn) and also have static create() method without parameters (or with all the optional parameters)

    Parameters

    Returns Ptr

Generated using TypeDoc