博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于灰度的模板匹配算法代码
阅读量:2051 次
发布时间:2019-04-28

本文共 1432 字,大约阅读时间需要 4 分钟。

参考:

 

其中:

colormap(flipud(colormap('jet'))); 值越小颜色越深,jet呈深红色

保存图像和画出矩阵的代码用到了mexopencv库:

%%  %绝对误差和算法(SAD)  clear all;  close all;  %%  src=imread('lena512.bmp');  [a b d]=size(src);  if d==3      src=rgb2gray(src);  end  mask=imread('lena_mask.png');  [m n d]=size(mask);  mask=mask(1:68,1:68);[m n d]=size(mask);  if d==3      mask=rgb2gray(mask);  end  %%  N=n;%模板尺寸,默认模板为正方形  M=a;%代搜索图像尺寸,默认搜索图像为正方形  %%  dst=zeros(M-N,M-N);  for i=1:M-N         %子图选取,每次滑动一个像素      for j=1:M-N          temp=src(i:i+N-1,j:j+N-1);%当前子图        dst(i,j)=dst(i,j)+(sum(sum(abs(temp-mask))))/(N*N);        %dst(i,j)=dst(i,j)+sum(sum(abs(temp-mask)));        %dst(i,j)=dst(i,j)+sum(sum((temp-mask).^2));        %dst(i,j)=dst(i,j)+(sum(sum((temp-mask).^2)))/(N*N);     end  end[mmm,nnn] = size(dst);[Xedgemesh,Yedgemesh]=meshgrid(1:1:nnn,1:1:mmm);figure(1);% shading interp对曲面或图形对象的颜色着色进行色彩的插值处理,使色彩平滑过渡pcolor(Xedgemesh,Yedgemesh,dst);colormap(flipud(colormap('jet')));shading interpabs_min=min(min(dst));  [x,y]=find(dst==abs_min);  figure;  imshow(mask);title('模板');  figure;  imshow(src); cv.imwrite('lena_gray.png',src);hold on;  rectangle('position',[x,y,N-1,N-1],'edgecolor','r');  hold off;title('搜索图');[m, n, ~] = size(src);newsave_I2 = zeros(m,n,3);    newsave_I2(:,:,1) = src;newsave_I2(:,:,2) = src;newsave_I2(:,:,3) = src;result=cv.rectangle(newsave_I2,[x,y,N-1,N-1],'Color', [0, 255, 0], 'Thickness', 2);cv.imwrite('lena_result.png',result);

转载地址:http://czwlf.baihongyu.com/

你可能感兴趣的文章
图说C++对象模型:对象内存布局详解
查看>>
【Java基础】Java类的加载和对象创建流程的详细分析
查看>>
JAVA多线程之volatile 与 synchronized 的比较
查看>>
Java多线程知识点总结
查看>>
Java集合框架知识梳理
查看>>
java中IO流知识梳理
查看>>
word2010如何保持在公式后面键入空格后或添加文字不变小?
查看>>
笔试题(一)—— java基础
查看>>
笔试题(二)—— sql语句
查看>>
Redis学习笔记(二)— 在linux下搭建redis服务器
查看>>
Redis学习笔记(三)—— 使用redis客户端连接windows和linux下的redis并解决无法连接redis的问题
查看>>
Eclipse配置错误——An internal error occurred during: "Building workspace".GC overhead limit exceeded
查看>>
Intellij IDEA使用(一)—— 安装Intellij IDEA(ideaIU-2017.2.3)并完成Intellij IDEA的简单配置
查看>>
Intellij IDEA使用(二)—— 在Intellij IDEA中配置JDK(SDK)
查看>>
Intellij IDEA使用(三)——在Intellij IDEA中配置Tomcat服务器
查看>>
Intellij IDEA使用(四)—— 使用Intellij IDEA创建静态的web(HTML)项目
查看>>
Intellij IDEA使用(五)—— Intellij IDEA在使用中的一些其他常用功能或常用配置收集
查看>>
Intellij IDEA使用(六)—— 使用Intellij IDEA创建Java项目并配置jar包
查看>>
Eclipse配置错误 —— Syntax error, annotations are only available if source level is 1.5 or greater
查看>>
Eclipse使用(十)—— 使用Eclipse创建简单的Maven Java项目
查看>>