Update the changelog
[opencv] / interfaces / matlab / toolbox / opencv / cvdisttransform.m
1 function varargout = cvdisttransform(varargin)\r
2 %CVDISTTRANSFORM     Calculate distance transform of binary image\r
3 %   IMAGE dst = cvDistTransform(IMAGE src, dist, maskSize);\r
4 %   src      - source image\r
5 %   dist     - 'l1' | {'l2'} | 'c' | 'l12' | 'fair' | 'welsch'\r
6 %   maskSize - {3} | 5\r
7 %\r
8 %   dst - destination image\r
9 %\r
10 %   IMAGE dst = cvDistTransform(IMAGE src, dist);\r
11 %   src      - source image\r
12 %   dist     - array of 2 (for 3x3 mask) or 3 numbers (for 5x5 mask)\r
13 %              that characterizes metric\r
14 %\r
15 %   dst - destination image\r
16 \r
17 if nargin < 1 | nargin > 3\r
18     error 'Invalid number of parameters';\r
19     return;\r
20 end\r
21 \r
22 if nargin > 1\r
23     if ischar(varargin{2})\r
24                 dist_t = {'l1', 'l2', 'c', 'l12', 'fair', 'welsch'};\r
25                 dist_i = [1, 2, 3, 4, 5, 6];\r
26         idx = strmatch(varargin{2}, dist_t, 'exact');\r
27         if isempty(idx)\r
28             error 'Invalid parameter ''dist''';\r
29             return;\r
30                 end\r
31         varargin{2} = dist_i(idx(1));\r
32     end\r
33 else\r
34     varargin{2} = 2; % default 'l2'\r
35 end\r
36 \r
37 if nargin < 3\r
38     varargin{3} = 3; % default maskSize\r
39 end\r
40 \r
41 out = nargout;\r
42 if out < 1\r
43     out = 1;\r
44 end\r
45 \r
46 if out > 1\r
47     error 'Too many output parameters'\r
48     return;\r
49 end;\r
50 \r
51 [varargout{1:out}] = feval('cvwrap', 'DistTransform', varargin{:});\r
52 \r
53 return;