centralizing.m

来自「matlab平台上的图像处理源代码」· M 代码 · 共 53 行

M
53
字号
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% find the core point of the fingerprint 
% written by zhang_rui at Chinese Academy of Science
% E-mail:zhangrui05@mails.gucas.ac.cn
% 2006/6/3
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function [XofCenter,YofCenter]=centralizing(fingerprint)
img=fingerprint;
img=double(img);
[M,N]=size(img);
all=zeros(M,N);
for i=1:8
    H=gabor2d_sub((i-1)*pi/8,3);
    g=imfilter(img,H,'symmetric','same');
    %figure
    %imshow(g,[]);
    g=varpic(g);
    g=mat2gray(g);
    g=im2bw(g,graythresh(g));
    %figure
    %imshow(g,[]);
    all=all+g;
end
%figure
%imshow(all,[]);
%--------------------------------not used-------------------------------
if 0==1
    maxi=max(all(:));
    for i=1:M
        for j=1:N
            if(all(i,j)==maxi)
                XofCenter=i;
                YofCenter=j;
            end
        end
    end
end
%-----------------------------------------------------------------------
M00=0;
M10=0;
M01=0;
for i=1:M
    for j=1:N
        if(all(i,j)>0)
            M00=M00+all(i,j);
            M10=M10+i*all(i,j);
            M01=M01+j*all(i,j);
        end
    end
end
XofCenter=M10/M00;
YofCenter=M01/M00;

⌨️ 快捷键说明

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