/*
Alpha blending.
*/
+ gamma=0.0;
for (v=0; v < (ssize_t) kernel->height; v++)
{
for (u=0; u < (ssize_t) kernel->width; u++)
{
alpha=(double) (QuantumScale*GetPixelAlpha(image,pixels));
pixel+=(*k)*alpha*pixels[i];
+ gamma+=(*k)*alpha;
count++;
}
k--;
}
if (fabs(pixel-p[center+i]) > MagickEpsilon)
changes[id]++;
- gamma=(double) kernel->height*kernel->width/count;
+ gamma=PerceptibleReciprocal(gamma);
+ gamma*=(double) kernel->height*kernel->width/count;
SetPixelChannel(morphology_image,channel,ClampToQuantum(gamma*
pixel),q);
}
}
default: pixel=0; break;
}
+ gamma=1.0;
switch (method)
{
case ConvolveMorphology:
{
alpha=(double) (QuantumScale*GetPixelAlpha(image,pixels));
pixel+=(*k)*alpha*pixels[i];
+ gamma+=(*k)*alpha;
count++;
}
k--;
}
if (fabs(pixel-p[center+i]) > MagickEpsilon)
changes[id]++;
- gamma=(double) kernel->height*kernel->width/count;
+ gamma=PerceptibleReciprocal(gamma);
+ gamma*=(double) kernel->height*kernel->width/count;
SetPixelChannel(morphology_image,channel,ClampToQuantum(gamma*pixel),q);
}
p+=GetPixelChannels(image);