資源簡介
攝影測量學 模板匹配法 采用二元二次多項式擬合相關曲面函數
代碼片段和文件信息
clear;clc;close?all;
%%?1.模板制作
x1=[0?0?1];y1=[0?2?1];
x2=[0?1?2];y2=[0?1?0];
x3=[0?1?2];y3=[2?1?2];
x4=[1?2?2];y4=[1?0?2];
fill(x1y1‘w‘);hold?on;
fill(x2y2‘k‘);hold?on;
fill(x3y3‘k‘);hold?on;
fill(x4y4‘w‘);hold?on;
axis?off;axis?square;axis?fill;
%%?2.導入圖像
I=imread(‘標志.bmp‘);
[I_heightI_width]=size(I);%獲取原圖象的大小尺寸,其值為[長,寬]
%?figure;?
%?imshow(I);
muban=imread(‘muban.bmp‘);
muban=rgb2gray(muban);
%?figure;?
%?imshow(muban);
%%?3.粗定位
n=I_height-9;%移動次數
r=zeros(591591);
%掃描,計算相關系數
for?k=0:17
%?k=0;
????mubanr=imrotate(mubank*10);%旋轉圖像
????[mubanr_heightmubanr_width]=size(mubanr);%旋轉后的尺寸
????mubanr=imcrop(mubanr[mubanr_height/2-50mubanr_width/2-50100100]);%提取中心區域
????mubanr=imresize(mubanr[1010]);%縮放至合適尺寸上面9已限定模板尺寸
????for?i=1:n
????????for?j=1:n
????????????temp_picture=imcrop(I[ji99]);%以ij為坐標起點裁割與模板等大的圖像
????????????r(ij)=corr2(temp_picturemubanr);%計算相關系數矩陣
????????end
????end
????a(1:nk*n+1:(k+1)*n)=r;?%依次放至矩陣a中??
%?????a(::k+1)=r;
end
a_nan=a;
a_nan(isnan(a_nan)==1)=0;%去除無效值
b=zeros(591591);
%每個位置的最大值放到b中
for?i=1:n
????for?j=1:n
????????if?a_nan(ij+n)>a_nan(ij)
????????????b(ij)=a_nan(ij+n);
????????else
????????????b(ij)=a_nan(ij);
????????end
????end
end
%?[xy]=find(b>0.5);
%?x(:)=x(:)+4;%此處坐標為a中坐標,需要轉換成I的
%?y(:)=y(:)+4;
%?plot(x(:)y(:)‘*‘);axis?square;
%提取每個區域最大值整像素位置
x=zeros(55);
y=zeros(55
- 上一篇:基于直方圖統計特性的灰度圖像水印算法
- 下一篇:APF和SVG的聯合仿真
評論
共有 條評論