• 大小: 1.09MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-09-27
  • 语言: 其他
  • 标签: image  proces  

资源简介

摄影测量必备程序代码之一,用于角点检测,根据不同的原始训练数据需要有不同的阈值调整!

资源截图

代码片段和文件信息

function[TZ]=Forstern(imgn)
[hw]=size(img);
imgs=img;
figure(1);
imshow(img[]);
hold on;
result=zeros(hw);
Qq=zeros(hw);
Nn=zeros(hw);
gu = zeros (hw);
gv = zeros(hw);
% 计算gugv
for i=1:h-1
    for j=1:w-1
        gu(ij)=imgs(i+1j+1)-imgs(ij);
        gv(ij)=imgs(ij+1)-imgs(i+1j); 
    end
end
% 5*5窗口计算协方差矩阵
z=2;
for i = 1+z:h-z
    for j = 1+z:w-z
        gu_w=gu(i-z:i+zj-z:j+z);
        gv_w=gv(i-z:i+zj-z:j+z);
        gu2=gu_w.^2;
        gv2=gv_w.^2;
        sum_gu2=sum(gu2(:));
        sum_gv2=sum(gv2(:));
        guv=gu_w.*gv_w;
        sum_guv=sum(guv(:));
        N=[gu2guv;guvgv2];
        Q=-N;
        q=4*det(N)/trace(N)^2;
        omg=det(N)/trace(N);
        Qq(ij)=q;
        Nn(ij)=omg;
    end
end
% 将值为NaN数组置零
Z=find(isnan(Qq));
Qq(Z)=[0];
X=find(isnan(Nn));
Nn(X)=[0];
Tq=0.75;
Tw=mean(Nn(:));
% 获取候选点
for i = 1+z:h-z
    for j = 1+z:w-z
        if Qq(ij)<=Tq&&Nn(ij)<=0.5*Tw
            Nn(ij)=0;
        end
    end
end
% 选取特征点
k=1;
TZ=zeros(k2);
for i = 1+n:h-n
    for j = 1+n:w-n
             tempiv=Nn(i-n:i+nj-n:j+n);
             if max(tempiv(:))==Nn(ij)&&max(tempiv(:))~=0
                 TZ(k1)=i;
                 TZ(k2)=j;
                 k=k+1;
             end
    end
end
end

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        1340  2018-06-22 17:07  F.m
     文件      584744  2018-06-21 22:59  left.tif
     文件        2391  2018-07-24 23:17  matching.m
     文件      560712  2018-06-21 23:46  right.tif

评论

共有 条评论