logo资料库

基于MATLAB的图像灰度化和图像匹配程序源代码.doc

第1页 / 共2页
第2页 / 共2页
资料共2页,全文预览结束
附 录1 彩色图像的灰度化
附 录 1 彩色图像的灰度化 A=imread('hua.tif');% 读取图片文件中的数据 [m,n,r]=size(A);% 直接显示出 A 大小 B=zeros(m,n);% 产生 m×n 的零矩阵 B = uint8(B); %表示 256 级灰度 for i = 1:m for j = 1:n sum = 0; for k = 1:r sum = sum +A(i,j,k)/3; end B(i , j) = sum; end end figure(1);%控制窗口的数量,即每次只能显示一个窗口 imshow(B);% 显示图像的函数 title('平均值法-中北大学'); 附 录2 MAD算法源代码¨ [FileName2,PathName2] = uigetfile('*.bmp');%获取所选文件的信息 pic= imread(FileName2); [FileName,PathName] = uigetfile('*.bmp'); moban=imread(FileName); pic=im2double(pic);% 把图像数据类型转换为双精度浮点类型 moban=im2double(moban); subplot(2,2,1);% 将多个图画到一个平面上的工具 imshow(pic);% 显示图像的函数 subplot(2,2,2); imshow(moban); pic1=pic; [M,N]=size(pic); % 直接显示出pic的大小 [m,n]=size(moban); d=zeros(M-m,N-n); % 产生(M-m)×(N-n)的零矩阵 tic; for x=1:M-m for y=1:N-n c=abs(pic(x:x+m-1,y:y+n-1)-moban(:,:)); mean=sum(c(:))/numel(c(:)); d(x,y)=mean; end end
subplot(2,2,3); surf(d),shading flat %表示成图形输出出来 [min_d, icmin] = min(d(:)); [p,q] = ind2sub(size(d),icmin(1));% 把数组中元素索引值转换为该元素在数组中对应的下标 toc; pic1(:,:)=255; pic1(p:p+m,q:q+n)=pic(p:p+m,q:q+n); msgbox(num2str([p,q]), 'location');% 可以实现提示窗口 subplot(2,2,4); imshow(pic1);
分享到:
收藏