Matlab图像处理学习笔记---基于匹配的目标识别
2020-04-01 18:44
981 查看
匹配是在一幅图像中寻找已知物体最有效且简单的方法。
在目标识别的方法中,匹配属于基于决策理论方法的识别,匹配方法可以是最小距离分类器,相关匹配。
涉及的主要知识点包括:
1.目标识别
2.基于决策理论方法的识别
3.匹配(最小距离分类器、相关匹配)
4.空间相关(相关匹配涉及)
步骤:
匹配之前,需要先将图像转化为灰度图,函数为rgb2gray,由于matlab对浮点型支持比较完善,因此还需要将图像数据类型转化为double,用到的函数为im2double,之后再将原始图像补0,这样才能遍历图像中的每一个点,函数为padarray。
决策函数的计算为:djx=x’mj-0.5mj’*mj;之后寻找最佳匹配。
该方法运行较慢,相关匹配要快一些。
代码如下:
%function: % 基于最小距离分类器的模板匹配 % 寻找图片中与已知模板的匹配区域 %referrence: % 冈萨雷斯的《数字图像处理》(第三版)第十二章 目标识别 %清空变量,读取图像 clear;close all template_rgb = imread('images/eye.jpg'); src_rgb = imread('images/head.jpg'); %转换为灰度图 template=rgb2gray(template_rgb); template = im2double(template); src=rgb2gray(src_rgb); src = im2double(src); figure('name','模板匹配结果'), subplot(1,2,1),imshow(template_rgb),title('模板'), %求模板与原始图像的大小 tempSize=size(template); tempHeight=tempSize(1); tempWidth=tempSize(2); srcSize=size(src); srcHeight=srcSize(1); srcWidth=srcSize(2); %在图片的右侧与下侧补0 %By default, paddarray adds padding before the first element and after the last element along the specified dimension. %原始图像补0 srcExpand=padarray(src,[tempHeight-1 tempWidth-1],'post'); %初始化一个距离数组 tmp:mj template:x %参见《数字图像处理》 Page561 distance=zeros(srcSize); for height=1:srcHeight for width= 1:srcWidth tmp=srcExpand(height:(height+tempHeight-1),width:(width+tempWidth-1)); %diff= template-tmp; %distance(height,width)=sum(sum(diff.^2)); %计算决策函数 distance(height,width)=sum(sum(template'*tmp-0.5.*(tmp'*tmp))); end end %寻找决策函数最大时的索引 maxDis=max(max(distance)); [x, y]=find(distance==maxDis); %绘制匹配结果 subplot(1,2,2),imshow(src_rgb);title('匹配结果'),hold on rectangle('Position',[x y tempWidth tempHeight],'LineWidth',2,'LineStyle','--','EdgeColor','r'), hold off
运行结果如下:
测试图像:
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- Matlab图像处理学习笔记(三):基于匹配的目标识别
- Matlab图像处理学习笔记(三):基于匹配的目标识别
- Matlab图像处理学习笔记(三):基于匹配的目标识别
- Matlab图像处理学习笔记(六):基于sift特征点的人民币识别
- Matlab图像处理学习笔记(六):基于sift特征点的人民币识别
- Matlab图像处理学习笔记(二):基于颜色的图像分割
- 【深度学习·笔记一】基于Matlab的已训练神经网络Alexnet进行图像识别
- Matlab图像处理学习笔记(二):基于颜色的图像分割
- Matlab图像处理学习笔记(四):多边形检测
- matlab 数字图像处理 intrans函数 学习笔记
- 【Matlab图像处理】学习笔记:提取图片的R,G,B分量
- 数字图像处理:基于MATLAB的车牌识别项目 标签: 图像处理matlab算法 2017-06-24 09:17 98人阅读 评论(0)
- MATLAB图像处理学习笔记—— 图像的代数运算
- Matlab图像处理学习笔记(四):多边形检测
- MATLAB学习笔记八(关于图像处理)
- MATLAB学习笔记二(关于图像处理)
- 学习笔记(08):深度学习之图像识别 核心技术与案例实战-目标检测模型
- Matlab图像处理学习笔记(八):用广义霍夫变换筛选sift特征点
- Matlab图像处理学习笔记(八):用广义霍夫变换筛选sift特征点
- 图像处理之基于NCC模板匹配识别