数学建模社区-数学中国

标题: 请各位大师帮我解释几段程序命令含义 [打印本页]

作者: hzlhm    时间: 2011-6-19 12:36
标题: 请各位大师帮我解释几段程序命令含义
请各位大师帮我解释几段程序命令含义,在此先感谢了喽。
I=imread('Empreinte.bmp');
subplot(221);
imshow(I);看图片
set(gcf,'position',[1 1 600 600]);
J=I(:,:,1)>160;
subplot(222);imshow(J)
set(gcf,'position',[1 1 600 600])
K=bwmorph(~J,'thin','inf'); BWMORPH Perform morphological operations on binary image.
subplot(223);imshow(~K)
set(gcf,'position',[1 1 600 600]);
L = nlfilter(K,[3 3],fun); NLFILTER Perform general sliding-neighborhood operations.
------------------------------------------------
D=6;
%% Process 1
Distance=DistEuclidian(CentroidBif,CentroidTerm);
SpuriousMinutae=Distance<D;
[i,j]=find(SpuriousMinutae);
CentroidBif(i,=[];
CentroidTerm(j,=[];
%% Process 2
Distance=DistEuclidian(CentroidBif);
SpuriousMinutae=Distance<D;
[i,j]=find(SpuriousMinutae);
CentroidBif(i,=[];
%% Process 3
Distance=DistEuclidian(CentroidTerm);
SpuriousMinutae=Distance<D;
[i,j]=find(SpuriousMinutae);
CentroidTerm(i,=[];
[m,n]=size(I(:,:,1));
indTerm=sub2ind([m,n],CentroidTerm(:,1),CentroidTerm(:,2));
Z=zeros(m,n);
Z(indTerm)=1;
ZTerm=Z.*ROI';
[CentroidTermX,CentroidTermY]=find(ZTerm);

indBif=sub2ind([m,n],CentroidBif(:,1),CentroidBif(:,2));
Z=zeros(m,n);
Z(indBif)=1;
ZBif=Z.*ROI';
[CentroidBifX,CentroidBifY]=find(ZBif);

figure
imshow(I)
set(gcf,'position',[1 1 600 600]);
hold on
plot(CentroidTermX,CentroidTermY,'ro','linewidth',2)
plot(CentroidBifX,CentroidBifY,'go','linewidth',2)

hold on
plot(CentroidTermX,CentroidTermY,'ro','linewidth',2)
plot([CentroidTermX CentroidTermX+dyTerm]',...
    [CentroidTermY CentroidTermY-dxTerm]','r','linewidth',2)
-------------------------------------------------------------------
function D=DistEuclidian(dataset1,dataset2)
h = waitbar(0,'Distance Computation');
switch nargin
    case 1
        [m1,n1]=size(dataset1);
        m2=m1;
        D=zeros(m1,m2);
        for i=1:m1
            waitbar(i/m1)
            for j=1:m2
                if i==j
                    D(i,j)=NaN;
                else
                    D(i,j)=sqrt((dataset1(i,1)-dataset1(j,1))^2+(dataset1(i,2)-dataset1(j,2))^2);
                end
            end
        end
    case 2
        [m1,n1]=size(dataset1);
        [m2,n2]=size(dataset2);
        D=zeros(m1,m2);
        for i=1:m1
            waitbar(i/m1)
            for j=1:m2
                D(i,j)=sqrt((dataset1(i,1)-dataset2(j,1))^2+(dataset1(i,2)-dataset2(j,2))^2);
            end
        end
    otherwise
        error('only one or two input arguments')
end

close(h)
  
-----------------------------------------------------
I=imread('Empreinte.bmp');
subplot(421);
imshow(I);
set(gcf,'position',[1 1 600 600]);
J=I(:,:,1)>160;
subplot(322);imshow(J)
set(gcf,'position',[1 1 600 600])
K=bwmorph(~J,'thin','inf');
subplot(323);imshow(~K)
set(gcf,'position',[1 1 600 600]);
fun=@minutie;
L = nlfilter(K,[3 3],fun);
%LTerm=(L==1);
%subplot(324);
%imshow(LTerm);
LTermLab=bwlabel(J);
subplot(324);
imshow(LTermLab)





欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5