3 template <
typename TPIXEL,
typename TCHANNEL>
class TLoGSharpen;
5 #ifndef TLOGSHARPEN_HPP_
6 #define TLOGSHARPEN_HPP_
15 #include "../typedefs.hpp"
16 #include "../bitmaps/TBitmap.hpp"
20 template <
typename TPIXEL,
typename TCHANNEL>
34 force = (force + 1) / (1.0000001 - force);
37 if (this->
kernel == NULL) {
return; }
39 double sig2 = sigma * sigma;
42 double k3 = force * -k2 / (0.3141592654e1 * sig2 * sig2);
57 tmp = k3 * exp(-k2 * (r2)) * (-k1 + r2);
58 if (tmp >= 0) { posSum += tmp; }
else { negSum += tmp; }
59 this->
kernel[j + this->kernelWidth * i] = tmp;
65 double normDelta = (area) ? -(posSum + negSum - 1) / posSum : -(posSum + negSum) / posSum;
66 double * ptr = this->
kernel;
68 while (ptr < ptrEnd) {
70 *ptr += *ptr * normDelta;