1 function varargout = cvadaptivethreshold(varargin)
\r
2 %CVADAPTIVETHRESHOLD Apply adaptive threshold
\r
3 % IMAGE dst = cvAdaptiveThreshold(IMAGE src,
\r
4 % DOUBLE maxVal, type, neighborhoodSize, minVariance);
\r
6 % maxValue - the maximum value of the image pixel
\r
8 % 'binary' - val = (val>thresh? maxValue:0)
\r
9 % 'binary_inv' - val = (val>thresh? 0:maxValue)
\r
10 % 'trunc' - val = (val>thresh? thresh:val)
\r
11 % 'tozero' - val = (val>thresh? val:0)
\r
12 % 'tozero_inv' - val = (val>thresh? 0:val)
\r
13 % neighborhoodSize - 3, 5 or 7
\r
14 % minVariance - value of the minimum variance
\r
16 % dst - destination image
\r
19 error 'Invalid number of parameters';
\r
23 varargin{5} = [(varargin{4} - 1) / 2, varargin{5}]; %parameters
\r
25 if ~ischar(varargin{3})
\r
26 error 'Invalid parameter ''type''';
\r
30 type_t = {'binary', 'binary_inv', 'trunc', 'tozero', 'tozero_inv'};
\r
31 type_i = [0, 1, 2, 3, 4];
\r
32 idx = strmatch(varargin{3}, type_t, 'exact');
\r
34 error 'Invalid parameter ''type''';
\r
37 varargin{4} = type_i(idx(1)); % type
\r
38 varargin{3} = 0; % method. CV_STDDEV_ADAPTIVE_THRESH
\r
41 error 'Too many output parameters'
\r
45 [varargout{1}] = feval('cvwrap', 'AdaptiveThreshold', varargin{:});
\r