图像匹配计算量大的原因在于搜索窗口在待匹配的图像上进行滑动,每滑动一次就要做一次匹配相关运算,在不匹配点做的运算就是'无用'的,从而导致计算量上升。序贯相似性检测法在计算匹配度的同时,不断累积模板和像元的灰度差,当累积值大于某一指定阈值时,则说明该点为非匹配点,进行下一个位置的计算,这样大大减少了计算复杂度。
这里定义了一个绝对误差:
计算每一个子图像中像素点与模板中的像素点的绝对误差累积值,当该值大于设定阈值时,便可放弃计算该子图,进入下一子图的计算,并存下超出阈值时的累加次数。
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 = cvGetSize(I);
CvSize sz_T = cvGetSize(T);
src_gray1 = cvCreateImage( sz, IPL_DEPTH_8U, 1); //原图的三个通道
src_gray2 =

图像匹配计算量大主要源于搜索窗口的滑动匹配。序贯相似性检测法通过累积像素灰度差,当超过阈值则判断为非匹配点,减少无效计算,降低复杂度。该方法在OpenCV中实现,通过比较每个子图像与模板的像素绝对误差来优化匹配过程。
最低0.47元/天 解锁文章
1266

被折叠的 条评论
为什么被折叠?



