www.gusucode.com > 指纹识别源代码 > 指纹识别源代码/指纹识别的matlab源码/Cropping.m

    function [CroppedPrint] = cropping(XofCenter,YofCenter,CentralizedPrint)
% Modified by Luigi Rosa
global immagine n_bands h_bands n_arcs h_radius h_lato n_sectors matrice


N = h_lato;
M=size(CentralizedPrint,1);

imgN=size(CentralizedPrint,1);
imgM=size(CentralizedPrint,2);
%----------------------------------------------
% ELIMINATO
%  
%if (YofCenter+30) <= M
%   YofCenter = YofCenter + 20;
%else
%   YofCenter = M;
%end
%-----------------------------------------------
%center point can be shown on command line
%         ----------------
%         |              |
%         |              |
%         |       .      | y=row
%         |              |
%         |              |
%         ----------------
%                x=column
%XofCenter%   column of matrix
%YofCenter%   row of matrix
  
%-------------------------------------------------------------
%          if A= 1 2 3
%                4 5 6
%                7 8 9
%             B=A(1:2,2:3)
%              = 2 3
%                5 6
%       creates B by extracting the first twos and last two 
%       columns of A
%-------------------------------------------------------------
if (YofCenter-floor(N/2)<1)||(YofCenter+floor(N/2)>imgN)||(XofCenter-floor(N/2)<1)||(XofCenter+floor(N/2)>imgM)
    %message='Cropping error: when the input image is cropped an error occurs: a possible error during center point determination.';
    %msgbox(message,'Cropping Error','warn');
    % gestisco caso in cui il CroppedPrint esce fuori
    temp=zeros(imgN+2*h_lato,imgM+2*h_lato);
    temp(h_lato+1:h_lato+imgN,h_lato+1:h_lato+imgM)=CentralizedPrint;
    CroppedPrint=temp(YofCenter-floor(N/2)+h_lato:YofCenter+floor(N/2)+h_lato,XofCenter-floor(N/2)+h_lato:XofCenter+floor(N/2)+h_lato);
    return;
else
    CroppedPrint=CentralizedPrint(YofCenter-floor(N/2):YofCenter+floor(N/2),XofCenter-floor(N/2):XofCenter+floor(N/2));
    return;
end