36 #ifndef AIMS_SIGNALFILTER_GGRADIENT_H 37 #define AIMS_SIGNALFILTER_GGRADIENT_H 63 template<
class T >
inline 65 : sigx( sx ), sigy( sy ), sigz( sz )
67 ASSERT( sigx >= 0.1f && sigx <= 100.0f );
68 ASSERT( sigy >= 0.1f && sigy <= 100.0f );
69 ASSERT( sigz >= 0.1f && sigz <= 100.0f );
77 float sx = sigx / data.
sizeX();
78 float sy = sigy / data.
sizeY();
79 float sz = sigz / data.
sizeZ();
89 for (
int i=0; i<3; i++ )
104 gsli.doit( res[ 0 ],
GCoef( sz ) );
109 gsli.doit( res[ 1 ],
GCoef( sz ) );
116 for (z=0; z< data.
dimZ(); z++)
117 for (y=0; y< data.
dimY(); y++)
118 for(x=0; x< data.
dimX(); x++)
120 grad(x,y,z)=sqrt ( (res[0](x,y,z)*res[0](x,y,z))
121 + (res[1](x,y,z)*res[1](x,y,z))
122 + (res[2](x,y,z)*res[2](x,y,z)) );
131 float sx = sigx / data.
sizeX();
132 float sy = sigy / data.
sizeY();
133 float sz = sigz / data.
sizeZ();
143 for (
int i=0; i<3; i++ )
158 gsli.doit( res[ 0 ],
GCoef( sz ) );
163 gsli.doit( res[ 1 ],
GCoef( sz ) );
AimsVector< AimsData< float >, 3 > doitGradientVector(const AimsData< T > &data)
void doit(AimsData< float > &)
GaussianGradient(float sx=1.0f, float sy=1.0f, float sz=1.0f)
virtual ~GaussianGradient()
virtual void convert(const INP &in, OUTP &out) const
AimsData< float > clone() const
void doit(AimsData< float > &)
AimsData< float > doit(const AimsData< T > &)