• 大小: 3KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-18
  • 语言: Matlab
  • 标签: 图像测量  

资源简介

摄影测量学 模板匹配法 采用二元二次多项式拟合相关曲面函数

资源截图

代码片段和文件信息

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

评论

共有 条评论