]> granicus.if.org Git - imagemagick/blobdiff - MagickWand/compare.c
Fixed compiler warning.
[imagemagick] / MagickWand / compare.c
index fd6c963694a31cfab1ae66d896ed02d8f425ba59..1a49cb5a669f817e992eb35e8faad70e545fdd70 100644 (file)
@@ -13,7 +13,7 @@
 %                         Image Comparison Methods                            %
 %                                                                             %
 %                              Software Design                                %
-%                                John Cristy                                  %
+%                                   Cristy                                    %
 %                               December 2003                                 %
 %                                                                             %
 %                                                                             %
@@ -950,13 +950,19 @@ WandExport MagickBooleanType CompareImagesCommand(ImageInfo *image_info,
         ThrowCompareException(ImageError,"ImagesTooDissimilar",image->filename);
     }
   if ((reconstruct_image->columns == image->columns) &&
-      (reconstruct_image->rows == image->rows))
+       (reconstruct_image->rows == image->rows))
     difference_image=CompareImages(image,reconstruct_image,metric,&distortion,
       exception);
   else
     if (similarity_image == (Image *) NULL)
-      ThrowCompareException(OptionError,"ImageWidthsOrHeightsDiffer",
-        image->filename)
+      {
+        if (metric == PerceptualHashErrorMetric)
+          difference_image=CompareImages(image,reconstruct_image,metric,
+            &distortion,exception);
+        else
+          ThrowCompareException(OptionError,"ImageWidthsOrHeightsDiffer",
+            image->filename);
+      }
     else
       {
         Image
@@ -1026,42 +1032,34 @@ WandExport MagickBooleanType CompareImagesCommand(ImageInfo *image_info,
             case FuzzErrorMetric:
             case MeanAbsoluteErrorMetric:
             case MeanSquaredErrorMetric:
-            case RootMeanSquaredErrorMetric:
             case PeakAbsoluteErrorMetric:
+            case RootMeanSquaredErrorMetric:
             {
               (void) FormatLocaleFile(stderr,"%g (%g)",QuantumRange*distortion,
                 (double) distortion);
-              if ((reconstruct_image->columns != image->columns) ||
-                  (reconstruct_image->rows != image->rows))
-                (void) FormatLocaleFile(stderr," @ %.20g,%.20g",(double)
-                  difference_image->page.x,(double) difference_image->page.y);
               break;
             }
             case AbsoluteErrorMetric:
             case NormalizedCrossCorrelationErrorMetric:
-            case PeakSignalToNoiseRatioMetric:
+            case PeakSignalToNoiseRatioErrorMetric:
+            case PerceptualHashErrorMetric:
             {
               (void) FormatLocaleFile(stderr,"%g",distortion);
-              if ((reconstruct_image->columns != image->columns) ||
-                  (reconstruct_image->rows != image->rows))
-                (void) FormatLocaleFile(stderr," @ %.20g,%.20g",(double)
-                  difference_image->page.x,(double) difference_image->page.y);
               break;
             }
-            case MeanErrorPerPixelMetric:
+            case MeanErrorPerPixelErrorMetric:
             {
               (void) FormatLocaleFile(stderr,"%g (%g, %g)",distortion,
                 image->error.normalized_mean_error,
                 image->error.normalized_maximum_error);
-              if ((reconstruct_image->columns != image->columns) ||
-                  (reconstruct_image->rows != image->rows))
-                (void) FormatLocaleFile(stderr," @ %.20g,%.20g",(double)
-                  difference_image->page.x,(double) difference_image->page.y);
               break;
             }
             case UndefinedErrorMetric:
               break;
           }
+          if (subimage_search != MagickFalse)
+            (void) FormatLocaleFile(stderr," @ %.20g,%.20g",(double)
+              difference_image->page.x,(double) difference_image->page.y);
         }
       else
         {
@@ -1082,8 +1080,8 @@ WandExport MagickBooleanType CompareImagesCommand(ImageInfo *image_info,
             case FuzzErrorMetric:
             case MeanAbsoluteErrorMetric:
             case MeanSquaredErrorMetric:
-            case RootMeanSquaredErrorMetric:
             case PeakAbsoluteErrorMetric:
+            case RootMeanSquaredErrorMetric:
             {
               switch (image->colorspace)
               {
@@ -1144,7 +1142,8 @@ WandExport MagickBooleanType CompareImagesCommand(ImageInfo *image_info,
             }
             case AbsoluteErrorMetric:
             case NormalizedCrossCorrelationErrorMetric:
-            case PeakSignalToNoiseRatioMetric:
+            case PeakSignalToNoiseRatioErrorMetric:
+            case PerceptualHashErrorMetric:
             {
               switch (image->colorspace)
               {
@@ -1191,7 +1190,7 @@ WandExport MagickBooleanType CompareImagesCommand(ImageInfo *image_info,
                 channel_distortion[MaxPixelChannels]);
               break;
             }
-            case MeanErrorPerPixelMetric:
+            case MeanErrorPerPixelErrorMetric:
             {
               (void) FormatLocaleFile(stderr,"    %g (%g, %g)\n",
                 channel_distortion[MaxPixelChannels],
@@ -1204,6 +1203,9 @@ WandExport MagickBooleanType CompareImagesCommand(ImageInfo *image_info,
           }
           channel_distortion=(double *) RelinquishMagickMemory(
             channel_distortion);
+          if (subimage_search != MagickFalse)
+            (void) FormatLocaleFile(stderr,"   Offset: %.20g,%.20g\n",(double)
+              difference_image->page.x,(double) difference_image->page.y);
         }
       status&=WriteImages(image_info,difference_image,argv[argc-1],exception);
       if ((metadata != (char **) NULL) && (format != (char *) NULL))