www.gusucode.com > 图像识别 人脸识别和虹膜识别 > code7/gabor_all.m

    % 批量计算Gabor编码,并保存在recd中
% 相关文件:mygabor.m,gabor_encode.m,get_all_gaborcoef.m,gabor_eer.m
function [recd, result2, frr, far]= gabor_all();
gabor = get_all_gaborcoef();
tic;
n=1;
for i=0:59
    for j=0:19
%         if (n<=600)%只试验前600幅图
            if (i<=9&j<=9)
                name = strcat('000',int2str(i) ,'_00' ,int2str(j),'.bmp');
                code = gabor_encode(name,gabor);
                %recd(1,n) = {name};
                recd(i+1,j+1) = {code};
                n=n+1;
            elseif (i<=9&j>=10)
                name = strcat('000',int2str(i) ,'_0' ,int2str(j) ,'.bmp');
                code = gabor_encode(name,gabor);
                %recd(1,n) = {name};
                recd(i+1,j+1) = {code};
                n=n+1;
            elseif (i>=10&j<=9) 
                name = strcat('00',int2str(i) ,'_00' ,int2str(j) ,'.bmp');
                code = gabor_encode(name,gabor);
                %recd(1,n) = {name};
                recd(i+1,j+1) = {code};
                n=n+1;
            elseif (i>=10&j>=10)
                name = strcat('00',int2str(i) ,'_0' ,int2str(j) ,'.bmp');
                code = gabor_encode(name,gabor);
                %recd(1,n) = {name};
                recd(i+1,j+1) = {code};
                n=n+1;
            end
%         end
    end
end
average_encode_time = toc/1200
%----------------------------------------------
%hamming
for j=1:60      %第j人
    for i=j:60
        for k=1:20  %第k图
            for l=k:20
                template = recd{j,k};   %第j人,第k图
                putin = recd{i,l};      %第i人,第l图
                result(k,l)=mean(xor(template,putin));                       %Hamming distance
%                 result(k,l) = mean2(abs(template - putin));                     %Manhatten distance
%                 [mm nn] = size(putin);
%                 result(k,l) = sqrt(sum(sum((template - putin).^2)))/(mm*nn);  %Euclidian distance
            end
        end
        result2{j,i}=result;
    end
end
%--------------------------------------------
%eer
thr=0:0.01:1;
numthr = numel(thr);
for t=1:numthr;
thrd=thr(t);
[frr(t),far(t)]=gabor_eer(thrd,result2);
end
plot(thr,frr,thr,far)
figure;plot(far,frr)
ee=0:0.01:1;hold on;plot(ee,ee)