简介:

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

MAD算法

介绍

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

设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代码

%%
%绝对误差和算法(SAD)
clear all;
close all;
%%
src=imread('lena.jpg');
[a b d]=size(src);
if d==3src=rgb2gray(src);
end
mask=imread('lena_mask.jpg');
[m n d]=size(mask);
if d==3mask=rgb2gray(mask);
end
%%
N=n;%模板尺寸,默认模板为正方形
M=a;%代搜索图像尺寸,默认搜索图像为正方形
%%
dst=zeros(M-N,M-N);
for i=1:M-N         %行for j=1:M-Ntemp=src(i:i+N-1,j:j+N-1);dst(i,j)=dst(i,j)+sum(sum(abs(temp-mask)));end
end
abs_min=min(min(dst));
[x,y]=find(dst==abs_min);
figure;
imshow(mask);title('模板');
figure;
imshow(src);
hold on;
rectangle('position',[x,y,N-1,N-1],'edgecolor','r');
hold off;title('搜索图');

输出结果

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

SSD算法

误差平方和算法(Sum of Squared Differences,简称SSD算法),也叫差方和算法。实际上,SSD算法与SAD算法如出一辙,只是其相似度测量公式有一点改动(计算的是子图与模板图的L2距离)。这里不再赘述。

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

MSD算法

平均误差平方和算法(Mean Square Differences,简称MSD算法),也称均方差算法。实际上,MSD之余SSD,等同于MAD之余SAD,故此处不再赘述。

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

NCC算法

归一化积相关算法(Normalized Cross Correlation,简称NCC算法),与上面算法相似,依然是利用子图与模板图的灰度,通过归一化的相关性度量公式来计算二者之间的匹配程度。

其中,分别表示(i,j)处子图、模板的平均灰度值。

OK,以上便是几种常见的基于灰度的模板匹配算法。

版权声明:本文为博主原创文章,未经博主允许不得转载。

基于灰度的模板匹配算法(一):MAD、SAD、SSD、MSD、NCC、SSDA算法

标签:模板匹配算法   灰度匹配   sad匹配算法   ssd匹配算法   ssda算法

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

基于灰度的模板匹配算法:MAD、SAD、SSD、MSD、NCC、SSDA算法相关推荐

  1. 基于灰度的模板匹配算法(一):MAD、SAD、SSD、MSD、NCC、SSDA算法

    简介: 本文主要介绍几种基于灰度的图像匹配算法:平均绝对差算法(MAD).绝对误差和算法(SAD).误差平方和算法(SSD).平均误差平方和算法(MSD).归一化积相关算法(NCC).序贯相似性算法( ...

  2. 【图像配准】基于灰度的模板匹配算法(一):MAD、SAD、SSD、MSD、NCC、SSDA、SATD算法

    简介: 本文主要介绍几种基于灰度的图像匹配算法:平均绝对差算法(MAD).绝对误差和算法(SAD).误差平方和算法(SSD).平均误差平方和算法(MSD).归一化积相关算法(NCC).序贯相似性检测算 ...

  3. 【图像配准】基于灰度的模板匹配算法(三):划分强度一致法(PIU)

    简介: 前面几篇文章介绍了一些比较基本的基于灰度的图像配准算法: 基于灰度的模板匹配算法(一):MAD.SAD.SSD.MSD.NCC.SSDA.SATD算法  基于灰度的模板匹配算法(二):局部灰度 ...

  4. 基于金字塔的模板匹配算法(python)

    今天完成了机器视觉的课程作业-基于金字塔的模板匹配算法,就顺便记录一下.本次作业我是通过python+opencv来完成的.这个作业就是一个模板匹配算法的基础上加一个金字塔的模型来减少计算量,所谓金字 ...

  5. 基于金字塔的模板匹配算法matlab

    先上代码 function [r,c,nccImg] = pyramidMatch(img, template, nLevels) % -------------------------------- ...

  6. 基于Halcon学习的基于灰度值模板匹配【一】exhaustive_match.hdev例程

    * 模板与图像的匹配 read_image (Image, 'fabrik') gen_rectangle1 (Rectangle, 365, 300, 390, 330) *将图像的定义域缩小为创建 ...

  7. 【语音识别】基于mfcc特征模板匹配算法实现声纹识别matlab源码含GUI

    在任意一个Automatic speech recognition 系统中,第一步就是提取特征.换句话说,我们需要把音频信号中具有辨识性的成分提取出来,然后把其他的乱七八糟的信息扔掉,例如背景噪声啊, ...

  8. 图像匹配算法 MAD、SAD、SSD、MSD、NCC、SSDA、SATD,LBD算法

    图像匹配算法分为3类:基于灰度的匹配算法.基于特征的匹配算法.基于关系的匹配算法 (1)基于灰度的模板匹配算法:模板匹配(Blocking Matching)是根据已知模板图像到另一幅图像中寻找与模板 ...

  9. matlab图像配准之SSD、NCC、SAD等相似度计算

    简介: 本文主要介绍几种基于灰度的图像匹配算法:平均绝对差算法(MAD).绝对误差和算法(SAD).误差平方和算法(SSD).平均误差平方和算法(MSD).归一化积相关算法(NCC).序贯相似性检测算 ...

最新文章

  1. 简历这样写,技术人都不直男了!
  2. python在化学方面的应用-学材料、化学的要不要担心人工智能抢了自己的饭碗?...
  3. 二叉树的深度优先遍历和广度优先遍历
  4. PAT1053 住房空置率 (20 分)
  5. C/C++之vector的内存管理和效率
  6. 三个等价c语言表达式,C语言习题综合(20页)-原创力文档
  7. 查询(python 版)
  8. Java .net 心得_我做英文站的心得-如何做好英文站 - 程序员日记 - 做人做技术【关注.NET和JAVA】...
  9. Android多媒体学习一:Android中Image的简单实例。
  10. spring boot 拦截器 或 Spring AOP 方式记录请求日志
  11. tkinter教程——toplevel
  12. 数字图像处理(4)——图像复原
  13. 台式网卡计算机,台式机万能网卡驱动,教您如何给台式机安装万能网卡驱动
  14. 相机下载_SonyPMCARE, 反向工程索尼PlayMemories相机应用
  15. 考拉情书---一片道歉叶
  16. HQL 报 return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask 错误解决方案
  17. 关于wap上网及彩信的一点想法
  18. 希望之路:市政道路拉线法定标高
  19. 后缀.jar的是什么文件?
  20. 学习笔记 | mac下查看mysql的端口号

热门文章

  1. IoT模组使用笔记(二):EC21、EC200指令流程、设置休眠、升级模组、切换运营商等
  2. 海康工业相机连续存图、录像功能介绍
  3. 抖音私信卡片私信名片的原理分析
  4. 第三章_文件和目录 : 函数utime
  5. 2022-7-28 第八组wly 各种类
  6. c语言 编写小学生100以内四则运算数学测试游戏,运用C语言开发一个“小学生算术四则运算测试系统”。...
  7. linux 多网口情况,linux socket 服务器多个网口
  8. 用python打印杨辉三角
  9. 川核哆唯VR “元”教育|让教学活过来,让学习身临其境
  10. 表格内容识别(python-opencv)(一)【9/8】