简介:

本文主要介绍几种基于灰度的图像匹配算法:平均绝对差算法(MAD)、绝对误差和算法(SAD)、误差平方和算法(SSD)、平均误差平方和算法(MSD)、归一化积相关算法(NCC)、序贯相似性检测算法(SSDA)、hadamard变换算法(SATD)。下面依次对其进行讲解。

MAD算法

介绍

平均绝对差算法(Mean Absolute Differences,简称MAD算法),它是Leese1971年提出的一种匹配算法。是模式识别中常用方法,该算法的思想简单,具有较高的匹配精度,广泛用于图像匹配。

S(x,y)是大小为mxn的搜索图像,T(x,y)MxN的模板图像,分别如下图(a)(b)所示,我们的目的是:在(a)中找到与(b)匹配的区域(黄框所示)。

算法思路

在搜索图S中,以(i,j)为左上角,取MxN大小的子图,计算其与模板的相似度;遍历整个搜索图,在所有能够取到的子图中,找到与模板图最相似的子图作为最终匹配结果。

        MAD算法的相似性测度公式如下。显然,平均绝对差D(i,j)越小,表明越相似,故只需找到最小的D(i,j)即可确定能匹配的子图位置:

其中:

算法评价:

优点:

思路简单,容易理解(子图与模板图对应位置上,灰度值之差的绝对值总和,再求平均,实质:是计算的是子图与模板图的L1距离的平均值)。

运算过程简单,匹配精度高。

缺点:

运算量偏大。

对噪声非常敏感。

——————————————————————————————————————————————————————————————————————————————

SAD算法

介绍

绝对误差和算法(Sum of Absolute Differences,简称SAD算法)。实际上,SAD算法与MAD算法思想几乎是完全一致,只是其相似度测量公式有一点改动(计算的是子图与模板图的L1距离),这里不再赘述。

算法实现

由于文章所介绍的几个算法非常相似,所以本文仅列出SAD算法的代码,其余算法的实现类似。看别人代码都相对费力,想自己敲也很简单。

MATLAB代码

  1. %%
  2. %绝对误差和算法(SAD)
  3. clear all;
  4. close all;
  5. %%
  6. src=imread('lena.jpg');
  7. [a b d]=size(src);
  8. if d==3
  9. src=rgb2gray(src);
  10. end
  11. mask=imread('lena_mask.jpg');
  12. [m n d]=size(mask);
  13. if d==3
  14. mask=rgb2gray(mask);
  15. end
  16. %%
  17. N=n;%模板尺寸,默认模板为正方形
  18. M=a;%代搜索图像尺寸,默认搜索图像为正方形
  19. %%
  20. dst=zeros(M-N,M-N);
  21. for i=1:M-N         %子图选取,每次滑动一个像素
  22. for j=1:M-N
  23. temp=src(i:i+N-1,j:j+N-1);%当前子图
  24. dst(i,j)=dst(i,j)+sum(sum(abs(temp-mask)));
  25. end
  26. end
  27. abs_min=min(min(dst));
  28. [x,y]=find(dst==abs_min);
  29. figure;
  30. imshow(mask);title('模板');
  31. figure;
  32. imshow(src);
  33. hold on;
  34. rectangle('position',[x,y,N-1,N-1],'edgecolor','r');
  35. hold off;title('搜索图');

输出结果

——————————————————————————————————————————————————————————————————————————————

SSD算法

(未完待续)

http://blog.csdn.net/hujingshuang/article/details/47759579

http://blog.csdn.net/yanbdsky/article/details/5648295

【图像配准】基于灰度的模板匹配算法(一):MAD、SAD、SSD、MSD、NCC、SSDA、SATD算法的更多相关文章

  1. 【图像配准】基于互信息的图像配准算法:MI、EMI、ECC算法

    简单介绍: 基于互信息的图像配准算法以其较高的配准精度和广泛的适用性而成为图像配准领域研究的热点之中的一个.而基于互信息的医学图像配准方法被觉得是最好的配准方法之中的一个.基于此.本文将介绍简单的基于 ...

  2. 【工程应用一】 多目标多角度的快速模板匹配算法(基于NCC,效果无限接近Halcon中........)

    愿意写代码的人一般都不太愿意去写文章,因为代码方面的艺术和文字中的美学往往很难兼得,两者都兼得的人通常都已经被西方极乐世界所收罗,我也是只喜欢写代码,让那些字母组成美妙的歌曲,然后自我沉浸在其中自得其 ...

  3. 跟我学Python图像处理丨基于灰度三维图的图像顶帽运算和黑帽运算

    摘要:本篇文章结合灰度三维图像讲解图像顶帽运算和图像黑猫运算,通过Python调用OpenCV函数实现. 本文分享自华为云社区<[Python图像处理] 十三.基于灰度三维图的图像顶帽运算和黑帽 ...

  4. 基于HALCON的模板匹配方法总结

    注:很抱歉,忘记从转载链接了,作者莫怪.... 基于HALCON的模板匹配方法总结 很早就想总结一下前段时间学习HALCON的心得,但由于其他的事情总是抽不出时间.去年有过一段时间的集中学习,做了许多 ...

  5. 转载:基于HALCON的模板匹配方法总结

    转载链接:     http://blog.csdn.net/b108074013/article/details/37657801 很早就想总结一下前段时间学习HALCON的心得,但由于其他的事情总 ...

  6. 基于HALCON的模板匹配方法总结 (转)

    很早就想总结一下前段时间学习HALCON的心得,但由于其他的事情总是抽不出时间.去年有过一段时间的集中学习,做了许多的练习和实验,并对基于HDevelop的形状匹配算法的参数优化进行了研究,写了一篇& ...

  7. 【计算机视觉】图像配准(Image Registration)

    (Source:https://blog.sicara.com/image-registration-sift-deep-learning-3c794d794b7a)  图像配准方法概述 图像配准广泛 ...

  8. Halcon编程-基于形状特征的模板匹配

    halcon软件最高效的一个方面在于模板匹配,号称可以快速进行柔性模板匹配,能够非常方便的用于缺陷检测.目标定位.下面以一个简单的例子说明基于形状特征的模板匹配.      为了在右图中,定位图中的三 ...

  9. CV 两幅图像配准

    http://www.cnblogs.com/Lemon-Li/p/3504717.html 图像配准算法一般可分为: 一.基于图像灰度统计特性配准算法:二.基于图像特征配准算法:三.基于图像理解的配 ...

随机推荐

  1. 不错的JS

    http://www.17sucai.com/preview/47509/2013-10-18/Sequence-master/photo-stack/index.html

  2. 关于Oracle备份中的fractured block

    One danger in making online backups is the possibility of inconsistent data within a block. For exam ...

  3. C++ ASCII 码的一些问题

    关于ASCII码和转义字符的对应问题,一直都有个困惑.所以今天校验了一下是什么情况. 转义字符的百度百科:http://baike.baidu.com/link?url=D9ytjAeiYr1ZGKG ...

  4. mysql 按日期查询

    在mysql中,比如你的表的时间字段是column2,并且column2的类型是timestamp 单日查询: select * from TableName where column1='xxxx' ...

  5. 生成php所需要的APNS Service pem证书的步骤

    1.登录到 iPhone Developer Connection Portal 并点击 App IDs 2.创建一个不使用通配符的 App ID .通配符 ID 不能用于推送通知服务.例如,我们的i ...

  6. 文件上传input type="file"样式美化

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  7. You have not agreed to the Xcode license.

    You have not agreed to the Xcode license. Before running the installer again please agree to the lic ...

  8. redis的内部实现机制

    一 理论基础 redis

  9. hdu 5654 xiaoxin and his watermelon candy 莫队

    题目链接 求给出的区间中有多少个三元组满足i+1=j=k-1 && a[i]<=a[j]<=a[k] 如果两个三元组的a[i], a[j], a[k]都相等, 那么这两个三 ...

  10. 函数指针 如:void (*oper)(ChainBinTreee *p)

    在C语言中,一个函数总是占用一段连续的内存区,而函数名就是该函数所占内存区的首地址.我们可以把函数的这个首地址(或称入口地址)赋予一个指针变量,使该指针变量指向该函数.然后通过指针变量就可以找到并调用 ...