From 043a981a1f6b2393520e911594ce29ef5b060ee5 Mon Sep 17 00:00:00 2001 From: cristy Date: Thu, 25 Dec 2014 02:03:01 +0000 Subject: [PATCH] Color fuzz is max of two images squared. --- MagickCore/color.c | 6 ++++-- MagickCore/compare.c | 13 +++---------- MagickCore/pixel.c | 17 ++++++----------- 3 files changed, 13 insertions(+), 23 deletions(-) diff --git a/MagickCore/color.c b/MagickCore/color.c index dba7d75aa..e80b3312f 100644 --- a/MagickCore/color.c +++ b/MagickCore/color.c @@ -1679,7 +1679,8 @@ MagickPrivate MagickBooleanType IsEquivalentAlpha(const Image *image, return(MagickTrue); if (p->alpha == q->alpha) return(MagickTrue); - fuzz=MagickMax(image->fuzz,MagickSQ1_2)*MagickMax(image->fuzz,MagickSQ1_2); + fuzz=MagickMax(image->fuzz,MagickSQ1_2); + fuzz*=fuzz; pixel=(double) p->alpha-(double) q->alpha; distance=pixel*pixel; if (distance > fuzz) @@ -1853,7 +1854,8 @@ MagickPrivate MagickBooleanType IsEquivalentIntensity(const Image *image, if (GetPixelInfoIntensity(p) == GetPixelInfoIntensity(q)) return(MagickTrue); - fuzz=MagickMax(image->fuzz,MagickSQ1_2)*MagickMax(image->fuzz,MagickSQ1_2); + fuzz=MagickMax(image->fuzz,MagickSQ1_2); + fuzz*=fuzz; pixel=GetPixelInfoIntensity(p)-GetPixelInfoIntensity(q); distance=pixel*pixel; if (distance > fuzz) diff --git a/MagickCore/compare.c b/MagickCore/compare.c index fae8a333b..ff100733f 100644 --- a/MagickCore/compare.c +++ b/MagickCore/compare.c @@ -365,16 +365,9 @@ static MagickBooleanType GetAbsoluteDistortion(const Image *image, Compute the absolute difference in pixels between two images. */ status=MagickTrue; - if (image->fuzz == 0.0) - fuzz=MagickMax(reconstruct_image->fuzz,MagickSQ1_2)* - MagickMax(reconstruct_image->fuzz,MagickSQ1_2); - else - if (reconstruct_image->fuzz == 0.0) - fuzz=MagickMax(image->fuzz,MagickSQ1_2)* - MagickMax(image->fuzz,MagickSQ1_2); - else - fuzz=MagickMax(image->fuzz,MagickSQ1_2)* - MagickMax(reconstruct_image->fuzz,MagickSQ1_2); + fuzz=(double) MagickMax(MagickMax(image->fuzz,reconstruct_image->fuzz), + (MagickRealType) MagickSQ1_2); + fuzz*=fuzz; image_view=AcquireVirtualCacheView(image,exception); reconstruct_view=AcquireVirtualCacheView(reconstruct_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) diff --git a/MagickCore/pixel.c b/MagickCore/pixel.c index c776d24c8..16dd9cec8 100644 --- a/MagickCore/pixel.c +++ b/MagickCore/pixel.c @@ -5919,8 +5919,9 @@ MagickExport MagickBooleanType IsFuzzyEquivalencePixel(const Image *source, distance, scale; - fuzz=(double) MagickMax(source->fuzz,(MagickRealType) MagickSQ1_2)*MagickMax( - destination->fuzz,(MagickRealType) MagickSQ1_2); + fuzz=(double) MagickMax(MagickMax(source->fuzz,destination->fuzz), + (MagickRealType) MagickSQ1_2); + fuzz*=fuzz; scale=1.0; distance=0.0; if (source->alpha_trait != UndefinedPixelTrait) @@ -6030,15 +6031,9 @@ MagickExport MagickBooleanType IsFuzzyEquivalencePixelInfo(const PixelInfo *p, if ((p->fuzz == 0.0) && (q->fuzz == 0.0)) return(IsPixelInfoEquivalent(p,q)); - if (p->fuzz == 0.0) - fuzz=MagickMax(q->fuzz,(MagickRealType) MagickSQ1_2)* - MagickMax(q->fuzz,(MagickRealType) MagickSQ1_2); - else if (q->fuzz == 0.0) - fuzz=MagickMax(p->fuzz,(MagickRealType) MagickSQ1_2)* - MagickMax(p->fuzz,(MagickRealType) MagickSQ1_2); - else - fuzz=MagickMax(p->fuzz,(MagickRealType) MagickSQ1_2)* - MagickMax(q->fuzz,(MagickRealType) MagickSQ1_2); + fuzz=(double) MagickMax(MagickMax(p->fuzz,q->fuzz),(MagickRealType) + MagickSQ1_2); + fuzz*=fuzz; scale=1.0; distance=0.0; if ((p->alpha_trait != UndefinedPixelTrait) || -- 2.40.0