⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filt_get_c_layer.m

📁 Standard model object recognition matlab code
💻 M
字号:
function f = filt_get_C_layer (prev_layer,varargin)% FUNCTION f = filt_get_C_layer (prev_layer,varargin)% % Create a typical C-layer filter, whose size is determined by the% size of the previous layer.  The first arguement can be given as% a structure (of previous layer's responses) or as 3xnum_scale% matrix, specifying the sizes (x,y,features) by number of scales.% It will, in turn, invoke get_sized function to build the filters% of ones.  % The varargin{1} may specify the shift values for each scale.  The% default value is 1, for shift.f = [];% Get sizesif isstruct(prev_layer)  num_scale = length(fieldnames(prev_layer));  for i = 1:num_scale    scale_tag  = ['s' num2str(i)];    layer_size(:,i) = size(getfield(prev_layer,scale_tag));  endelse % The input arguement prev_layer is the size.  num_scale  = size(prev_layer,2);  layer_size = prev_layer;  if size(prev_layer,1) ~= 3    error('Size was not specified correctly.');  endend% Get shiftsif length(varargin) > 0  shifts = varargin{1};  if length(shifts) ~= num_scale    disp('Parameter shifts is not well defined.  Use 1.');    shifts = ones(num_scale,1);  endelse % no other input  shifts = ones(num_scale,1);end% Now compute the C-layer filters.for i = 1:num_scale  scale_tag  = ['s' num2str(i)];  f = filt_get_sized(f,layer_size(:,i)',shifts(i),scale_tag);  % It is a memory waste to copy 1's into different scales, so here for  % higher scales 's2' and beyond, save [].  if i > 1     f = setfield(f, ['f1_' scale_tag], []);     f = setfield(f, ['f2_' scale_tag], []);     f = setfield(f, ['i1_' scale_tag], []);     f = setfield(f, ['i2_' scale_tag], []);     f = setfield(f, ['i3_' scale_tag], []);       end  end

⌨️ 快捷键说明

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