source: proiecte/pmake3d/make3d_original/Make3dSingleImageStanford_version0.1/third_party/zisserman/vgg_numerics/vgg_gauss_mask.m @ 37

Last change on this file since 37 was 37, checked in by (none), 14 years ago

Added original make3d

  • Property svn:executable set to *
File size: 1.1 KB
Line 
1function Y = vgg_gauss_mask(a,der,X,flag)
2
3%VGG_GAUSS_MASK Univariate Gaussian function or its derivatives.
4%   Y = vgg_gausmask(sigma,der,X) yields der-th derivative of Gaussian.
5%   For der==0, plain Gaussian is yielded.
6%   If X is omitted, X=[-3*sigma:3*sigma] is used, giving reasonably small tail.
7%   If der is omitted too, der=0 is used.
8%
9% Try  plot(vgg_gauss_mask(10,6,-100:100))
10
11% Tom Werner, Oct 2001
12
13
14%%
15 % For computing derivatives, the following recurrent formulas are used:
16 %   gausmask(sigma,0,X) = exp(a*X.^2)/(sigma*sqrt(2*pi)),
17 %   gausmask(sigma,n,X) = 2*a*( (der-1)*gausmask(sigma,der-2,X) + X.*gausmask(sigma,der-1,X) ),
18 % where
19 %   a = -0.5/(a*a).
20 %%
21
22if nargin == 4
23  if der > 0
24    Y = 2*a*( (der-1)*vgg_gauss_mask(a,der-2,X,0) + X.*vgg_gauss_mask(a,der-1,X,0) );
25  elseif der == 0
26    Y = ones(size(X));
27  else
28    Y = zeros(size(X));
29  end
30else
31  if nargin < 3
32    X = ceil(3*a);
33    X = -X:X;
34  end
35  if nargin < 2
36    der = 0;
37  end
38  aa = -0.5/(a*a);
39  Y = exp(aa*X.^2)/(a*sqrt(2*pi)) .* vgg_gauss_mask(aa,der,X,0);
40end
41
42return
Note: See TracBrowser for help on using the repository browser.