• 大小: 86KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-12
  • 语言: Matlab
  • 标签: Gabor  

资源简介

Gabor特征提取MATLAB函数 function gaborArray = gaborFilterBank(u,v,m,n) function featureVector = gaborFeatures(img,gaborArray,d1,d2)

资源截图

代码片段和文件信息

function featureVector = gaborFeatures(imggaborArrayd1d2)

% GABORFEATURES extracts the Gabor features of the image.
% It creates a column vector consisting of the image‘s Gabor features.
% The feature vectors are normalized to zero mean and unit variance.
%
%
% Inputs:
%       img         : Matrix of the input image 
%       gaborArray : Gabor filters bank created by the function gaborFilterBank
%       d1          : The factor of downsampling along rows.
%                       d1 must be a factor of n if n is the number of rows in img.
%       d2          : The factor of downsampling along columns.
%                       d2 must be a factor of m if m is the number of columns in img.
%               
% Output:
%       featureVector :   A column vector with length (m*n*u*v)/(d1*d2). 
%                           This vector is the Gabor feature vector of an 
%                           m by n image. u is the number of scales and
%                           v is the number of orientations in ‘gaborArray‘.
%
%
% Sample use:

% img = imread(‘cameraman.tif‘);
% gaborArray = gaborFilterBank(583939);  % Generates the Gabor filter bank
% featureVector = gaborFeatures(imggaborArray44);   % Extracts Gabor feature vector ‘featureVector‘ from the image ‘img‘.


%   Details can be found in:
%   
%   M. Haghighat S. Zonouz M. Abdel-Mottaleb “Identification Using 
%   Encrypted Biometrics“ Computer Analysis of Images and Patterns 
%   Springer Berlin Heidelberg pp. 440-448 2013.


% (C) Mohammad Haghighat University of Miami
%       haghighat@ieee.org
%       I WILL APPRECIATE IF YOU CITE OUR PAPER IN YOUR WORK.


if (nargin ~= 4)    % Check correct number of arguments
    error(‘Use correct number of input arguments!‘)
end

if size(img3) == 3 % Check if the input image is grayscale
    img = rgb2gray(img);
end

img = double(img);


%% Filtering

% Filter input image by each Gabor filter
[uv] = size(gaborArray);
gaborResult = cell(uv);
for i = 1:u
    for j = 1:v
        gaborResult{ij} = conv2(imggaborArray{ij}‘same‘);
        % J{uv} = filter2(G{uv}I);
    end
end


%% Feature Extraction

% Extract feature vector from input image
[nm] = size(img);
s = (n*m)/(d1*d2);
l = s*u*v;
featureVector = zeros(l1);
c = 0;
for i = 1:u
    for j = 1:v
        
        c = c+1;
        gaborAbs = abs(gaborResult{ij});
        gaborAbs = downsample(gaborAbsd1);
        gaborAbs = downsample(gaborAbs.‘d2);
        gaborAbs = reshape(gaborAbs.‘[]1);
        
        % Normalized to zero mean and unit variance. (if not applicable please comment this line)
        gaborAbs = (gaborAbs-mean(gaborAbs))/std(gaborAbs1);
        
        featureVector(((c-1)*s+1):(c*s)) = gaborAbs;
        
    end
end


%% Show filtered images

% % Show real parts of Gabor-filtered images
% figure(‘Numbertitle‘‘Off‘‘Name‘‘Real parts of Gabor filters‘);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      97397  2014-11-12 18:06  Gabor\GaborArray.jpg

     文件       3411  2014-11-12 18:06  Gabor\gaborFeatures.m

     文件       2509  2014-11-12 18:06  Gabor\gaborFilterBank.m

     目录          0  2015-03-23 20:42  Gabor

----------- ---------  ---------- -----  ----

               103317                    4


评论

共有 条评论