MagickExport Image *EmbossImage(const Image *image,const double radius,
const double sigma,ExceptionInfo *exception)
{
+ double
+ gamma,
+ normalize;
+
Image
*emboss_image;
}
k--;
}
+ normalize=0.0;
+ for (i=0; i < (ssize_t) (kernel_info->width*kernel_info->height); i++)
+ normalize+=kernel_info->values[i];
+ gamma=PerceptibleReciprocal(normalize);
+ for (i=0; i < (ssize_t) (kernel_info->width*kernel_info->height); i++)
+ kernel_info->values[i]*=gamma;
emboss_image=MorphologyImage(image,ConvolveMorphology,1,kernel_info,
exception);
kernel_info=DestroyKernelInfo(kernel_info);
const double sigma,ExceptionInfo *exception)
{
double
+ gamma,
normalize;
Image
}
}
kernel_info->values[i/2]=(double) ((-2.0)*normalize);
- if (sigma < MagickEpsilon)
- kernel_info->values[i/2]=1.0;
normalize=0.0;
- for (i=0; i < width*width; i++)
+ for (i=0; i < (ssize_t) (kernel_info->width*kernel_info->height); i++)
normalize+=kernel_info->values[i];
- kernel_info->values[i/2]+=1.0-normalize;
- sharp_image=ConvolveImage(image,kernel_info,exception);
+ gamma=PerceptibleReciprocal(normalize);
+ for (i=0; i < (ssize_t) (kernel_info->width*kernel_info->height); i++)
+ kernel_info->values[i]*=gamma;
+ sharp_image=MorphologyImage(image,ConvolveMorphology,1,kernel_info,exception);
kernel_info=DestroyKernelInfo(kernel_info);
return(sharp_image);
}