基于灰度的图像配准matlab源程序

基于灰度的图像配准matlab源程序

ID:47478108

大小:25.00 KB

页数:3页

时间:2020-01-11

基于灰度的图像配准matlab源程序_第1页
基于灰度的图像配准matlab源程序_第2页
基于灰度的图像配准matlab源程序_第3页
资源描述:

《基于灰度的图像配准matlab源程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、function[I_SSD,I_NCC]=template_matching(T,I)%图像配准%[I_SSD,I_NCC]=template_matching(T,I)%输入:T-模板I-输入的原始图像%I_SSD采用像素差平方和法(SSD)的匹配结果%I_NCC采用标准化互相关匹配法的匹配结果%将图像转换为双精度型T=double(T);I=double(I);if(size(T,3)==3)%如果是彩色图像,则按照彩色图像匹配方法[I_SSD,I_NCC]=template_matching_color(T,I);else%如果是灰度图像,则按照

2、灰度图像匹配方法进行匹配[I_SSD,I_NCC]=template_matching_gray(T,I);endfunction[I_SSD,I_NCC]=template_matching_color(T,I)%子函数%功能:对彩色图像进行匹配子函数,其核心原理是从R、G、B三个子色调进行匹配[I_SSD_R,I_NCC_R]=template_matching_gray(T(:,:,1),I(:,:,1));[I_SSD_G,I_NCC_G]=template_matching_gray(T(:,:,2),I(:,:,2));[I_SSD_B,I_

3、NCC_B]=template_matching_gray(T(:,:,3),I(:,:,3));%融合三次匹配结果[I_SSD]=(I_SSD_R+I_SSD_G+I_SSD_B)/3;[I_NCC]=(I_NCC_R+I_NCC_G+I_NCC_B)/3;function[I_SSD,I_NCC]=template_matching_gray(T,I)%子函数%功能:对灰度图像进行匹配子函数T_size=size(T);I_size=size(I);outsize=I_size+T_size-1;%在频域内进行相关计算if(length(T_size

4、)==2)FT=fft2(rot90(T,2),outsize(1),outsize(2));FI=fft2(I,outsize(1),outsize(2));Icorr=real(ifft2(F1.*FT));elseFT=fftn(rot90_3D(T),outsize);FI=fftn(I,outsize);Icorr=real(ifftn(FI.*FT));endLocalQSumI=local_sum(I.*I,T_size);QSumT=sum(T(:).^2);%计算模板和图像的像素差平方和I_SSD=LocalQSumI+QSumT-*I

5、corr;%将其皈依化到0和1之间I_SSD=I_SSD-min(I_SSD(:));I_SSD=1-(I_SSD./max(I_SSD(:));I_SSD=unpsdsrray(I_SSD,size(I));if(nargout>1)LocalSumI=local_sum(I,T,size);stdI=sqrt(maxa(LocalQSumI-(LocalSumI.^2)/numel(T),0));stdT=sqrt(numel(T)-1)*Std(T(:));meanIT=LocalSumI*Sum(T(:))/numel(T);I_NCC=0.5+

6、(Icorr-meanIT)./(2*stdT*max(stdT/le5));I_NCC=unpadarray(I_NCC,size(I));endfunctionT=rot90_3D(T)%子函数T=flip(flip(T,1),2),3);functionB=unpadarry(A,Bsize)%子函数Bstart=ceil((size(A)-Bsize)/2)+1;Bend=Bstart+Bsize-1;if(ismatrix(A))B=A(Bstart(1):Bend(1).Bstart(2),Bend(2));elseif(ndims(A)==

7、3)B=A(Bstart(1):Bend(1),Bstart(2),Bend(2),Bstart(2),Bend(3));endfunctionlocal_sum_I=local_sum(I,T_size)%子函数B=padartay(I,T_size);if(length(T_size)==2)s=cumsum(B,1);c=s(1+T_size(1):end-1,:)-s(1:end-T_size(1)-1,:);s=cumsum(c,2);local_sum_I=s(:,1+T_size(2):end-1)-s(:,1:end-T_size(2)-

8、1);elses=cumsum(B,1);c=s(1+T_size(1):end

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。