模板匹配算法

VS下与python下的常见模板算法

  1. C++代码块

  2. (1)读取原图和读取模板图

  3. Mat orimage = imread("G:\\VS\\24模板的匹配\\2.bmp"); Mat test = imread("G:\\VS\\24模板的匹配\\1.png");
    模板图片模板匹配算法
    原始图片模板匹配算法

  4. 定义输出图像:

  5. Mat dst = Mat(orimage.rows - test.rows + 1, orimage.cols - test.cols + 1, CV_32FC1);

  6. 调取opencv当中的API

  7. //调用匹配算法
    matchTemplate(orimage, test, dst, CV_TM_SQDIFF_NORMED, Mat());
    //进行归一化
    normalize(dst, dst, 0, 255,NORM_MINMAX);
    //找到最大值位置和最大值
    Point minloc;
    Point maxloc;
    double min;
    double max;
    //调用最大值最小值
    minMaxLoc(dst, &min, &max, &minloc, &maxloc, Mat());
    //绘制矩形
    Mat result;
    orimage.copyTo(result);
    rectangle(result, Rect(minloc.x, minloc.y, test.rows, test.cols), Scalar(0, 0, 255), 2, 8, 0);`

  8. 结果:

  9. 模板匹配算法