原理
- 什么是模板匹配?
你有一副原图像,还有一小块模板(很小的图像,有可能来源于原图像),通过模板找出原图中和模板相似的位置。
- 如何实现匹配?
原图(I):我们需要在上面找到和模板匹配的图像
模板(T):一小块图像,是我们需要在原图中找到和它相似的区域位置的图像
方法:一直用模板在原图上进行移动,从左到右,从上到下,每移动一个像素,便去在模板区域内计算 “一种度量(度量)”,然后将"度量"结果存到Mat 对象中,最大值(或者最小值,根据计算方法不同)的位置,就是原图中最佳的匹配位置
代码
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
const char* src_window = "src";
const char* image_window = "ResultInSrc";
const char* pathch_window = "template";
const char* result_wimdow = "ResulIntMatch";
Mat image,temp;
int method = 0;
#define MAX_METHOD 5
void Mathching(int, void*);
int main(void)
{
image = imread("../res/image.jpg",cv::IMREAD_COLOR);
temp = imread("../res/template.jpg",IMREAD_COLOR);
if(image