maxNormalizeLocalMax - normalization based on local maxima. result = maxNormalizeLocalMax(data) Normalize data by multiplying it with (max(data) - avg(localMaxima))^2 as described in: L. Itti, C. Koch, E. Niebur, A Model of Saliency-Based Visual Attention for Rapid Scene Analysis, IEEE PAMI, Vol. 20, No. 11, pp. 1254-1259, Nov 1998. result = maxNormalizeLocalMax(data,minmax) Specify a dynamic range for the initial maximum normalization of the input data (default: [0 10]). The special value minmax = [0 0] means that initial maximum normalization is omitted. See also maxNormalize, maxNormalizeIterative, makeSaliencyMap.
0001 % maxNormalizeLocalMax - normalization based on local maxima. 0002 % 0003 % result = maxNormalizeLocalMax(data) 0004 % Normalize data by multiplying it with 0005 % (max(data) - avg(localMaxima))^2 as described in: 0006 % L. Itti, C. Koch, E. Niebur, A Model of Saliency-Based 0007 % Visual Attention for Rapid Scene Analysis, IEEE PAMI, 0008 % Vol. 20, No. 11, pp. 1254-1259, Nov 1998. 0009 % 0010 % result = maxNormalizeLocalMax(data,minmax) 0011 % Specify a dynamic range for the initial maximum 0012 % normalization of the input data (default: [0 10]). 0013 % The special value minmax = [0 0] means that initial 0014 % maximum normalization is omitted. 0015 % 0016 % See also maxNormalize, maxNormalizeIterative, makeSaliencyMap. 0017 0018 % This file is part of the SaliencyToolbox - Copyright (C) 2006-2007 0019 % by Dirk B. Walther and the California Institute of Technology. 0020 % See the enclosed LICENSE.TXT document for the license agreement. 0021 % More information about this project is available at: 0022 % http://www.saliencytoolbox.net 0023 0024 function result = maxNormalizeLocalMax(data,varargin) 0025 0026 if (length(varargin) >= 1) minmax = varargin{1}; 0027 else minmax = [0 10]; end 0028 0029 data = normalizeImage(clamp(data,0),minmax); 0030 thresh = minmax(1) + (minmax(2) - minmax(1)) / 10; 0031 0032 [lm_avg,lm_num,lm_sum] = mexLocalMaxima(data,thresh); 0033 0034 if (lm_num > 1) 0035 result = data * (minmax(2) - lm_avg)^2; 0036 elseif (lm_num == 1) 0037 result = data * minmax(2)^2; 0038 else 0039 fatal('Could not find any local maxima.'); 0040 end