correlation.m

来自「to find the correlation of the image」· M 代码 · 共 55 行

M
55
字号
function correlation(mask,pic)
    picsize=size(pic);
    masksize=size(mask);
    
    % change size of mask to odd
    if(mod(masksize(1,1),2)==0)
        mask2=zeros(masksize(1)-1,masksize(2));
        mask2(:,:)=mask([1:masksize(1)-1],:);
        mask=0;
        mask=mask2;
    end
    masksize=size(mask);
     if(mod(masksize(1,2),2)==0)
        mask2=zeros(masksize(1),masksize(2)-1);
        mask2(:,:)=mask(:,[1:masksize(2)-1]);
        mask=0;
        mask=mask2;
    end
    masksize=size(mask)
    
    %padding
    padx=floor(masksize(1)/2);
    pady=floor(masksize(2)/2);
    
    picpad=zeros(picsize(1,1)+padx*2,picsize(1,2)+pady*2);
    picpad([padx+1:picsize(1,1)+padx],[pady+1:picsize(1,2)+pady])=pic(:,:);
    picsize=size(picpad);
    
    picco=zeros(size(pic,1),size(pic,2));
    picarray=zeros(masksize(1),masksize(2));
    
    for(i=1:picsize(1)-padx*2)
        for(j=1:picsize(2)-pady*2)
            picarray(:,:)=picpad([i:i+masksize(1)-1],[j:j+masksize(2)-1]);
            picarray2=picarray.*mask;
            %picco(i,j)=sum(sum(picarray2));
            picco(i,j)=sum(sum(picarray2))/sqrt(sum(dot(picarray,picarray))*sum(dot(mask,mask)));
        end
    end
    mesh(picco);
    
    [value,column]=max(max(picco))
    [value,row]=max(max(transpose(picco)))
    
    x=pic([row-padx:row+padx],[column-pady:column+pady]);
    figure;imshow(x/255);
    
    
    
    
    
    

    
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?