图像匹配计算量大的原因在于搜索窗口在待匹配的图像上进行滑动,每滑动一次就要做一次匹配相关运算,在不匹配点做的运算就是'无用'的,从而导致计算量上升。序贯相似性检测法在计算匹配度的同时,不断累积模板和像元的灰度差,当累积值大于某一指定阈值时,则说明该点为非匹配点,进行下一个位置的计算,这样大大减少了计算复杂度。
这里定义了一个绝对误差:
计算每一个子图像中像素点与模板中的像素点的绝对误差累积值,当该值大于设定阈值时,便可放弃计算该子图,进入下一子图的计算,并存下超出阈值时的累加次数。
opencv的编写的代码如下:
#include "stdafx.h"
#include <opencv2/opencv.hpp>
#include "highgui.h"
#include <math.h>
IplImage *src_gray1, *src_gray2, *src_gray3;
IplImage *T_gray1, *T_gray2, *T_gray3;
IplImage* S_img,*Match_image;
void AllocateImage(IplImage* I,IplImage* T) //给图像分配大小
{
CvSize sz = cvGet