📄 dohledej.m
字号:
function [odp,vzd]=dohledej(sour1,sour2,img1,img2,k,r,tp,ord);
% try to find best localization of corresponding point in close neighborhood of the reference CP
% B.Zitova, zitova@utia.cas.cz
vel1=size(img1);
vel2=size(img2);
pom=sour2(1)*ones(2*r+1,1);
pom=pom+(-r:1:r)';
pom2=sour2(2)*ones(2*r+1,1);
pom2=pom2+(-r:1:r)';
pr=min(min([(vel2(1)-pom-r) (vel2(2)-pom2-r),(pom-r),(pom2-r)]));
polomer=min([k,(vel1(1)-sour1(1)-r-1),(vel1(2)-sour1(2)-r-1),(sour1(1)-r-1),(sour1(2)-r-1) pr]);
k=polomer;
maska=kruh(2*k+1,k);
window=maska.*img1((sour1(1)-k):(sour1(1)+k),(sour1(2)-k):(sour1(2)+k));
switch (tp)
case ('Hu ')
invb=huc(window);
case ('Affine ')
invb=ami(window);
case ('Rotational ')
invb= rot(window,ord);
case ('Blur combined') %Blur combined
kin=kblmi(window,7);
invb=nkminv(kin);
end;
odp(1)=sour2(1);
odp(2)=sour2(2);
odp(3)=realmax;
for j=0:((2*r+1)^2-1),
Dc=(j-(2*r+1)*fix(j/(2*r+1)))-r;
Dr=fix(j/(2*r+1))-r;
window=maska.*img2((Dr+sour2(1)-k):(Dr+sour2(1)+k),(Dc+sour2(2)-k):(Dc+sour2(2)+k));
switch (tp)
case ('Hu ')
inva(j+1,:)=huc(window);
case ('Affine ')
inva(j+1,:)=ami(window);
case ('Rotational ')
inva(j+1,:)= rot(window,ord);
case ('Blur combined') %Blur combined
kin=kblmi(window,7);
inva(j+1,:)=nkminv(kin);
end;
vzd(j+1)=abs(((l2dist(invb,inva(j+1,:))))');
if vzd(j+1)<odp(3)
odp(3)=vzd(j+1);
odp(1)=sour2(1)+fix(j/(2*r+1))-r;
odp(2)=sour2(2)+j-fix(j/(2*r+1))*(2*r+1)-r;
end;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -