#include <iostream>
 
 
int main( 
int argc, 
const char** argv )
 
{
        "{ i | lena_tmpl.jpg |image name }"
        "{ t | tmpl.png |template name }"
        "{ m | mask.png |mask name }"
        "{ cm| 3 |comparison method }");
 
    cout << "This program demonstrates the use of template matching with mask." << endl
         << endl
         << "Available methods: https://docs.opencv.org/5.x/df/dfb/group__imgproc__object.html#ga3a7850640f1fe1f58fe91a2d7583695d" << endl
         << "    TM_SQDIFF = " << (int)TM_SQDIFF << endl
         << "    TM_SQDIFF_NORMED = " << (int)TM_SQDIFF_NORMED << endl
         << "    TM_CCORR = " << (int)TM_CCORR << endl
         << "    TM_CCORR_NORMED = " << (int)TM_CCORR_NORMED << endl
         << "    TM_CCOEFF = " << (int)TM_CCOEFF << endl
         << "    TM_CCOEFF_NORMED = " << (int)TM_CCOEFF_NORMED << endl
         << endl;
 
 
    string filename = samples::findFile(parser.
get<
string>(
"i"));
 
    string tmplname = samples::findFile(parser.
get<
string>(
"t"));
 
    string maskname = samples::findFile(parser.
get<
string>(
"m"));
 
    Mat img = imread(filename);
 
    Mat tmpl = imread(tmplname);
 
    Mat mask = imread(maskname);
 
 
    {
        cout << "can not open " << filename << endl;
        return -1;
    }
 
    {
        cout << "can not open " << tmplname << endl;
        return -1;
    }
 
    if(mask.empty())
    {
        cout << "can not open " << maskname << endl;
        return -1;
    }
 
    int method = parser.
get<
int>(
"cm"); 
 
    matchTemplate(img, tmpl, res, method, mask);
 
    double minVal, maxVal;
    minMaxLoc(res, &minVal, &maxVal, &minLoc, &maxLoc);
 
    if(method == TM_SQDIFF || method == TM_SQDIFF_NORMED)
    else
 
    rectangle(img, rect, 
Scalar(0, 255, 0), 2);
 
    imshow("detected template", img);
    waitKey();
 
    return 0;
}
Designed for command line parsing.
Definition utility.hpp:890
T get(const String &name, bool space_delete=true) const
Access arguments by name.
Definition utility.hpp:956
void printMessage() const
Print help message.
n-dimensional dense array class
Definition mat.hpp:938
MatSize size
Definition mat.hpp:2456
bool empty() const
Returns true if the array has no elements.
Template class for 2D rectangles.
Definition types.hpp:447
int main(int argc, char *argv[])
Definition highgui_qt.cpp:3