您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文化 > 基于Matlab的图像特征识别及匹配
基于Matlab的图像匹配定位知识点:最小距离分类法是分类器里面最基本的一种分类方法,它是通过求出未知类别向量X到事先已知的各类别(如A,B,C等等)中心向量的距离D,然后将待分类的向量X归结为这些距离中最小的那一类的分类方法。匹配之前,需要先将图像转换为灰度图,函数为rgb2gray,由于matlab对浮点型支持较为完善,我们还需将图像数据类型更改为double,函数为im2double。之后再将原始图像补0,这样才能遍历图像的每一点,函数padarray。1测试1;(代码见matlabcode(1))数据库图像不变,改变图像A:Figure1数据库图像YBFigure2图像A每对匹配计算时间:5s左右病人图像大小:767kb数据库图像大小:896字节每次运算时间:5到8s不等计算机运行内存:32GB数据库图像图像匹配并定位成功定位误差较大错误定位定位准确率YB20张11张3张6张55%(1)成功定位结果(2)差的定位结果(3)错误定位matlabcode%(1)clear;closealltemplate_rgb=imread('C:\Users\yhjyf\Desktop\图像pipei\test01\模版图B/1.jpg');src_rgb=imread('C:\Users\yhjyf\Desktop\图像pipei\test01\匹配图A/1.bmp');%转换为灰度图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%Bydefault,paddarrayaddspaddingbeforethefirstelementandafterthelastelementalongthespecifieddimension.srcExpand=padarray(src,[tempHeight-1tempWidth-1],'post');%初始化一个距离数组tmp:mjtemplate:x%参见《数字图像处理》Page561distance=zeros(srcSize);forheight=1:srcHeightforwidth=1:srcWidthtmp=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)));endend%寻找决策函数最大时的索引maxDis=max(max(distance));[x,y]=find(distance==maxDis);%绘制匹配结果subplot(1,2,2),imshow(src_rgb);title('匹配结果'),holdonrectangle('Position',[xytempWidthtempHeight],'LineWidth',2,'LineStyle','--','EdgeColor','r'),holdoff
本文标题:基于Matlab的图像特征识别及匹配
链接地址:https://www.777doc.com/doc-4569138 .html