Integrované Výpočetní Systémy
Příklady


Úloha obrazové registrace v Matlabu

function [C,pos_x,pos_y] = registrace_2(refer,temp)
%cross corelation
% prekryvam vetsi obrayek mensim a pocitam jak moc se lisi

st=size(temp);
sr=size(refer);

%stredni hodnota
mt=mean(mean(temp)');
C=refer;
%pocitani cross korelace pro kazdy bod - vysledek je matice
for x=1:sr(1)-st(1),
    for y=1:sr(2)-st(2),
         
        R=refer(x:(x+st(1)-1),y:(y+st(2)-1));
        mR=mean(mean(R)');
                
        Z1=temp-mt;
        Z2=R-mR;
        
        C(x,y)=sum(sum((Z1.*Z2))')/
         sqrt(sum(sum(Z1.*Z1)')*sum(sum(Z2.*Z2)'));        
    end;
    x/((sr(1)-st(1))/100) 
end;
    
%hledani pozice maxima v cross matici
[A,pos_A]=max(C);
[B,pos_B]=max(A);

pos_x=pos_B;
pos_y=pos_A(pos_B);

%vsazeni zpet
out=refer;
out(pos_x:(pos_x+st(1)-1) , pos_y:(pos_y+st(2)-1)) = temp;
figure;
colormap(gray);
imagesc(out);