2011-04-25 6.6.9-7 Anthony Thyssen <A.Thyssen@griffith...>
* Separate simple image operations from 'region' wrappers.
-
+ * Added Inverse method for Sparse Color Interpolation
2011-04-24 6.6.9-6 Cristy <quetzlzacatenango@image...>
* New version 6.6.9-6.
break;
case ShepardsDistortion:
case VoronoiColorInterpolate:
+ case InverseColorInterpolate:
number_coeff=1; /* not used, but provide some type of return */
break;
case ArcDistortion:
return(coeff);
}
case ShepardsDistortion:
+ case InverseColorInterpolate:
case VoronoiColorInterpolate:
{
/* Shepards Distortion input arguments are the coefficents!
break;
}
case ShepardsColorInterpolate:
+ case InverseColorInterpolate:
{ /* Shepards Method, uses its own input arguments as coefficients.
*/
size_t
double weight =
((double)i-arguments[ k ])*((double)i-arguments[ k ])
+ ((double)j-arguments[k+1])*((double)j-arguments[k+1]);
- if ( weight != 0 )
- weight = 1/weight;
- else
- weight = 1;
+ if ( method == InverseColorInterpolate )
+ weight = sqrt(weight); /* inverse, not inverse squared */
+ weight = ( weight < 1 ) ? 1 : 1/weight;
if ( channel & RedChannel )
pixel.red += arguments[x++]*weight;
if ( channel & GreenChannel )
/*
Methods unique to SparseColor().
*/
- VoronoiColorInterpolate = SentinelDistortion
+ VoronoiColorInterpolate = SentinelDistortion,
+ InverseColorInterpolate
} SparseColorMethod;
extern MagickExport Image
{ "Undefined", UndefinedDistortion, UndefinedOptionFlag, MagickTrue },
{ "Barycentric", BarycentricColorInterpolate, UndefinedOptionFlag, MagickFalse },
{ "Bilinear", BilinearColorInterpolate, UndefinedOptionFlag, MagickFalse },
+ { "Inverse", InverseColorInterpolate, UndefinedOptionFlag, MagickFalse },
{ "Shepards", ShepardsColorInterpolate, UndefinedOptionFlag, MagickFalse },
{ "Voronoi", VoronoiColorInterpolate, UndefinedOptionFlag, MagickFalse },
{ (char *) NULL, UndefinedResource, UndefinedOptionFlag, MagickFalse }