基于匹配的目标识别

26 篇文章 50 订阅
8 篇文章 3 订阅

如果要在一幅图像中寻找已知物体,最常用且最简单的方法之一就是匹配。

在目标识别的方法中,匹配属于基于决策理论方法的识别。匹配方法可以是最小距离分类器,相关匹配。本文code是基于最小距离分类器,基于相关匹配的与此类似。

本文涉及到的知识点如下:

1、目标识别.

2、基于决策理论方法的识别

3、匹配(最小距离分类器、相关匹配)

4、空间相关(相关匹配涉及)

匹配之前,需要先将图像转换为灰度图,函数为rgb2gray,由于matlab对浮点型支持较为完善,我们还需将图像数据类型更改为double,函数为im2double。之后再将原始图像补0,这样才能遍历图像的每一点,函数padarray。

决策函数的计算为djx=x'*mj-0.5*mj'*mj;冈萨雷斯的《数字图像处理》Page561中有写。之后寻找最佳匹配。

本文算法主要参考冈萨雷斯的《数字图像处理》。

转载请注明出处。

已知问题:运行较慢,相关匹配要快一点。

代码如下:

[plain]  view plain  copy
  1. %function:  
  2. %       基于最小距离分类器的模板匹配  
  3. %       寻找图片中与已知模板的匹配区域  
  4. %referrence:  
  5. %      冈萨雷斯的《数字图像处理》(第三版)第十二章 目标识别  
  6. %date:2015-1-8  
  7. %author:chenyanan  
  8. %转载请注明出处:http://blog.csdn.net/u010278305  
  9.   
  10. %清空变量,读取图像  
  11. clear;close all  
  12. template_rgb = imread('images/eye.jpg');  
  13. src_rgb = imread('images/head.jpg');  
  14.   
  15. %转换为灰度图  
  16. template=rgb2gray(template_rgb);    template = im2double(template);  
  17. src=rgb2gray(src_rgb);  src = im2double(src);  
  18.   
  19. figure('name','模板匹配结果'),  
  20. subplot(1,2,1),imshow(template_rgb),title('模板'),  
  21.   
  22. %球的模板与原始图像的大小  
  23. tempSize=size(template);  
  24. tempHeight=tempSize(1); tempWidth=tempSize(2);  
  25. srcSize=size(src);  
  26. srcHeight=srcSize(1); srcWidth=srcSize(2);  
  27.   
  28. %在图片的右侧与下侧补0  
  29. %By default, paddarray adds padding before the first element and after the last element along the specified dimension.  
  30. srcExpand=padarray(src,[tempHeight-1 tempWidth-1],'post');  
  31.   
  32. %初始化一个距离数组 tmp:mj  template:x  
  33. %参见《数字图像处理》 Page561  
  34. distance=zeros(srcSize);  
  35. for height=1:srcHeight  
  36.    for width= 1:srcWidth  
  37.       tmp=srcExpand(height:(height+tempHeight-1),width:(width+tempWidth-1));  
  38.       %diff= template-tmp;  
  39.       %distance(height,width)=sum(sum(diff.^2));  
  40.       %计算决策函数  
  41.       distance(height,width)=sum(sum(template'*tmp-0.5.*(tmp'*tmp)));  
  42.    end  
  43. end  
  44.   
  45. %寻找决策函数最大时的索引  
  46. maxDis=max(max(distance));  
  47. [x, y]=find(distance==maxDis);  
  48.   
  49. %绘制匹配结果  
  50. subplot(1,2,2),imshow(src_rgb);title('匹配结果'),hold on  
  51. rectangle('Position',[x y tempWidth tempHeight],'LineWidth',2,'LineStyle','--','EdgeColor','r'),  
  52. hold off  

运行结果如下:


模板及图像源文件已上传。


原文链接:http://blog.csdn.net/u010278305/article/details/42536421

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值