|
|
@ -1254,7 +1254,7 @@ void edge(image &im, double radius)
|
|
|
|
|
|
|
|
|
|
|
|
double *kernel;
|
|
|
|
double *kernel;
|
|
|
|
int width;
|
|
|
|
int width;
|
|
|
|
register long i;
|
|
|
|
long i;
|
|
|
|
rgba *dest = 0;
|
|
|
|
rgba *dest = 0;
|
|
|
|
|
|
|
|
|
|
|
|
width = getOptimalKernelWidth(radius, 0.5);
|
|
|
|
width = getOptimalKernelWidth(radius, 0.5);
|
|
|
@ -1298,7 +1298,7 @@ void emboss(image &im, double radius, double sigma)
|
|
|
|
|
|
|
|
|
|
|
|
double alpha, *kernel;
|
|
|
|
double alpha, *kernel;
|
|
|
|
int j, width;
|
|
|
|
int j, width;
|
|
|
|
register long i, u, v;
|
|
|
|
long i, u, v;
|
|
|
|
rgba *dest = 0;
|
|
|
|
rgba *dest = 0;
|
|
|
|
|
|
|
|
|
|
|
|
if(sigma == 0.0)
|
|
|
|
if(sigma == 0.0)
|
|
|
@ -1360,7 +1360,7 @@ void sharpen(image &im, double radius, double sigma)
|
|
|
|
|
|
|
|
|
|
|
|
double alpha, normalize, *kernel;
|
|
|
|
double alpha, normalize, *kernel;
|
|
|
|
int width;
|
|
|
|
int width;
|
|
|
|
register long i, u, v;
|
|
|
|
long i, u, v;
|
|
|
|
rgba *dest = 0;
|
|
|
|
rgba *dest = 0;
|
|
|
|
|
|
|
|
|
|
|
|
if(sigma == 0.0)
|
|
|
|
if(sigma == 0.0)
|
|
|
@ -1570,8 +1570,8 @@ static bool convolveImage(image *image, rgba **dest, const unsigned int order,
|
|
|
|
double red, green, blue;
|
|
|
|
double red, green, blue;
|
|
|
|
u8 alpha;
|
|
|
|
u8 alpha;
|
|
|
|
double normalize, *normal_kernel;
|
|
|
|
double normalize, *normal_kernel;
|
|
|
|
register const double *k;
|
|
|
|
const double *k;
|
|
|
|
register rgba *q;
|
|
|
|
rgba *q;
|
|
|
|
int x, y, mx, my, sx, sy;
|
|
|
|
int x, y, mx, my, sx, sy;
|
|
|
|
long i;
|
|
|
|
long i;
|
|
|
|
int mcx, mcy;
|
|
|
|
int mcx, mcy;
|
|
|
@ -1917,7 +1917,7 @@ static u32 generateNoise(u32 pixel, NoiseType noise_type)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
case PoissonNoise:
|
|
|
|
case PoissonNoise:
|
|
|
|
{
|
|
|
|
{
|
|
|
|
register s32
|
|
|
|
s32
|
|
|
|
i;
|
|
|
|
i;
|
|
|
|
|
|
|
|
|
|
|
|
for (i=0; alpha > exp(-SigmaPoisson*pixel); i++)
|
|
|
|
for (i=0; alpha > exp(-SigmaPoisson*pixel); i++)
|
|
|
@ -1959,10 +1959,10 @@ static inline void scaleDown(T &val, T min, T max)
|
|
|
|
|
|
|
|
|
|
|
|
static void blurScanLine(double *kernel, s32 width, rgba *src, rgba *dest, s32 columns)
|
|
|
|
static void blurScanLine(double *kernel, s32 width, rgba *src, rgba *dest, s32 columns)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
register double *p;
|
|
|
|
double *p;
|
|
|
|
rgba *q;
|
|
|
|
rgba *q;
|
|
|
|
register s32 x;
|
|
|
|
s32 x;
|
|
|
|
register long i;
|
|
|
|
long i;
|
|
|
|
double red, green, blue, alpha;
|
|
|
|
double red, green, blue, alpha;
|
|
|
|
double scale = 0.0;
|
|
|
|
double scale = 0.0;
|
|
|
|
|
|
|
|
|
|
|
@ -2123,7 +2123,7 @@ static s32 getBlurKernel(s32 width, double sigma, double **kernel)
|
|
|
|
#define KernelRankQ 18.0
|
|
|
|
#define KernelRankQ 18.0
|
|
|
|
|
|
|
|
|
|
|
|
double alpha, normalize;
|
|
|
|
double alpha, normalize;
|
|
|
|
register long i;
|
|
|
|
long i;
|
|
|
|
s32 bias;
|
|
|
|
s32 bias;
|
|
|
|
|
|
|
|
|
|
|
|
if(sigma == 0.0)
|
|
|
|
if(sigma == 0.0)
|
|
|
@ -2256,7 +2256,7 @@ static int getOptimalKernelWidth(double radius, double sigma)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
double normalize, value;
|
|
|
|
double normalize, value;
|
|
|
|
long width;
|
|
|
|
long width;
|
|
|
|
register long u;
|
|
|
|
long u;
|
|
|
|
|
|
|
|
|
|
|
|
if(sigma == 0.0)
|
|
|
|
if(sigma == 0.0)
|
|
|
|
sigma = 0.01;
|
|
|
|
sigma = 0.01;
|
|
|
|