资源简介
摄影测量学 模板匹配法 采用二元二次多项式拟合相关曲面函数
代码片段和文件信息
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的联合仿真
评论
共有 条评论