应用背景:机器的模式识别所要解决的问题,就是用机器代替人去认识图像和找出一幅图像中人们感兴趣的目标物。如何找到目标物即图像的区域呢,这里介绍在空间域使用模板在图像中寻找与模板匹配的区域。

基本原理:在空间滤波中,相关是指滤波器模板移过图像并计算每个像素位置的灰度乘积之和的过程。基于相关的图像模板匹配过程类似于滤波过程,设图像f(x,y)的大小为M*N和模板子图像w(x,y)的大小为J*K,则f与w的相关表示为:

          (1)

其中,x=0,1,2,3.....N-K,y=0,1,2.....M-J,计算相关c(x,y) 的过程就是在图像f(x,y) 中逐像素地移动模板子图像w(x,y) 的原点像素,在每一次移动的过程中根据式(1)计算每个像素位置的相关。对式(1)的向量表达式进行归一化后如下式所示:

             (2)

 MATLAB实现如下

[plain] view plaincopy
  1. clear;
  2. reource_p=imread('F:\picture\pattern.bmp');
  3. reource_p_sub=imread('F:\picture\sub_pattern.bmp');
  4. [m,n]=size(reource_p);
  5. [m0,n0]=size(reource_p_sub);
  6. result=zeros(m-m0+1,n-n0+1);
  7. vec_sub = double( reource_p_sub(:) );
  8. norm_sub = norm( vec_sub );
  9. for i=1:m-m0+1
  10. for j=1:n-n0+1
  11. subMatr=reource_p(i:i+m0-1,j:j+n0-1);
  12. vec=double( subMatr(:) );
  13. result(i,j)=vec'*vec_sub / (norm(vec)*norm_sub+eps);
  14. end
  15. end
  16. %找到最大相关位置
  17. [iMaxPos,jMaxPos]=find( result==max( result(:)));
  18. figure,
  19. subplot(121);imshow(reource_p_sub),title('匹配模板子图像');
  20. subplot(122);
  21. imshow(reource_p);
  22. title('标记出匹配区域的原图'),
  23. hold on
  24. plot(jMaxPos,iMaxPos,'*');%绘制最大相关点
  25. %用矩形框标记出匹配区域
  26. plot([jMaxPos,jMaxPos+n0-1],[iMaxPos,iMaxPos]);
  27. plot([jMaxPos+n0-1,jMaxPos+n0-1],[iMaxPos,iMaxPos+m0-1]);
  28. plot([jMaxPos,jMaxPos+n0-1],[iMaxPos+m0-1,iMaxPos+m0-1]);
  29. plot([jMaxPos,jMaxPos],[iMaxPos,iMaxPos+m0-1]);

运行结果如下图所示

原文链接:http://blog.csdn.net/yi_tech_blog/article/details/70199021

基于空间相关的图像模板匹配及MATLAB实现相关推荐

  1. 基于VS与OpenCV的模板匹配学习(4):手写OpenCV matchTemplate()

    基于VS与OpenCV的模板匹配学习(4):手写OpenCV matchTemplate() 文章目录 基于VS与OpenCV的模板匹配学习(4):手写OpenCV matchTemplate() 前 ...

  2. Java OpenCV-4.0.0 图像处理22 图像模板匹配

    Java OpenCV-4.0.0 图像处理22 图像模板匹配 参考链接:https://blog.csdn.net/qq_34814092/article/details/95813654 Java ...

  3. 多线程加速图像模板匹配

    多线程加速图像模板匹配 2010年09月05日 多线程加速图像模板匹配 首先这是个没有什么很好的结局的故事.所以下面这点文字不是为了表现一个怎么怎么好的结果,而是整个让人头疼的过程. 多线程加速算法的 ...

  4. 利用OpenCV的函数matchTemplate()实现在图像中寻找、检索、搜索模板图像【图像模板匹配】

    利用OpenCV的函数matchTemplate()实现在图像中寻找.检索.搜索模板图像[图像模板匹配] 在博文 https://www.hhai.cc/thread-220-1-1.html 中我们 ...

  5. 【OpenCV 4开发详解】图像模板匹配

    本文首发于"小白学视觉"微信公众号,欢迎关注公众号 本文作者为小白,版权归人民邮电出版社发行所有,禁止转载,侵权必究! 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4 ...

  6. 《三英战吕布》 - 图像模板匹配 【Python-Open_CV系列(八)】

    <三英战吕布>- 图像模板匹配[Python_Open_CV系列(八)] 文章目录 1.什么是模板匹配? 及 模板匹配方法matchTemplate() 介绍 素材准备 2.单模板匹配 2 ...

  7. 基于SIFT特征的图像配准(附Matlab源代码)

    基于SIFT特征的图像配准(附Matlab源代码) 本文先给出了采用SIFT方法进行图像配准的实验原图以及实验结果,最后附上Matlab源代码. 实验一: 实验一的图像(见图1.1)是本人自己拍摄的, ...

  8. matlab 图像模板匹配,基于MATLAB模板匹配的车牌识别系统

    一.课题名称[Q1321814823] 基于MATLAB模板匹配的车牌识别系统 二.课题背景 随着汽车数量的增加,城市交通状况日益受到人们的重视,如何进行有效的交通管理更是成为了人们关注的焦点.针对此 ...

  9. opencv基础--图像模板匹配

    参考:https://blog.csdn.net/ivanhawking/article/details/83182692(该链接附载链接有处理多目标,旋转,缩放等匹配的方法) 1.概述 图像匹配是指 ...

最新文章

  1. Jquery中关于动画的一些操作函数
  2. 程序员的数学3 线性代数_在编程大佬眼中,线性代数到底是什么样的?
  3. 台湾大学林轩田机器学习基石课程学习笔记2 -- Learning to Answer Yes/No
  4. Spring注解方式配置切面类
  5. 左神算法课笔记(一):时间复杂度、排序、对数器、二分法、异或运算
  6. SQL:统计一个数据库中所有表记录的数量
  7. python怎么做相加两个变量_2组语法,1个函数,教你用Python做数据分析
  8. 有关private T
  9. python提示jsondecodeerror是什么意思_Python爬虫解析json遇到一类JSONDecodeError的解决方案...
  10. 【三维CAD设计经验分享】CrownCAD设计:生成工程图
  11. 浏览器无法渲染php,解决lighttpd运行后浏览器无法渲染html
  12. Tomcat 与 JDK 版本对应
  13. 【转】“上善若水”是什么意思?
  14. LINUX 查看和修改文件系统的block的大小
  15. 2017这一年读过的那些书
  16. 数据猿·金猿榜丨2017中国智能营销域最具潜力创业公司
  17. centos7中找不到ifconfig命令的解决⽅法
  18. 远距离大容量毫米波太赫兹通信系统设计—大气窗口选择
  19. unity跨场景保存(跨场景BGM的连续播放)
  20. PPT柱形统计图制作详情升级版——小白秒变大神

热门文章

  1. 利用WCF的双工通讯实现一个简单的心跳监控系统
  2. 环形缓冲区实现类(Delphi)
  3. java getcurrentpid
  4. 开始的一些知识和概念
  5. 根据 dba_errors 制定 数据库报警邮件
  6. step1 . day10 C语言基础练习之指针和函数
  7. DRF (Django REST framework) 框架介绍(3)
  8. 各大网站CSS代码初始化集合
  9. 如何保证用户登陆时提交密码已经加密
  10. CryptoAPI 学习