Commit 11c97e201 for imagemagick.org

commit 11c97e201e20f5032deffb608737ccfb097cece6
Author: Cristy <urban-warrior@imagemagick.org>
Date:   Tue Jul 1 20:09:05 2025 -0400

    correct DSSIM metric

diff --git a/MagickCore/compare.c b/MagickCore/compare.c
index d3fcc59d6..dbb37d075 100644
--- a/MagickCore/compare.c
+++ b/MagickCore/compare.c
@@ -3996,6 +3996,7 @@ static double GetSimilarityMetric(const Image *image,const Image *reconstruct,
   switch (metric)
   {
     case NormalizedCrossCorrelationErrorMetric:
+    case StructuralDissimilarityErrorMetric:
     case StructuralSimilarityErrorMetric:
     {
       similarity=1.0-similarity;
@@ -4168,9 +4169,6 @@ MagickExport Image *SimilarityImage(const Image *image,const Image *reconstruct,
       }
     for (x=0; x < (ssize_t) similarity_image->columns; x++)
     {
-      MagickBooleanType
-        update = MagickFalse;
-
       ssize_t
         i;

@@ -4183,23 +4181,23 @@ MagickExport Image *SimilarityImage(const Image *image,const Image *reconstruct,
         case PhaseCorrelationErrorMetric:
         case StructuralSimilarityErrorMetric:
         {
-          if (similarity > channel_info.similarity)
-            update=MagickTrue;
+          if (similarity <= channel_info.similarity)
+            break;
+          channel_info.similarity=similarity;
+          channel_info.x=x;
+          channel_info.y=y;
           break;
         }
         default:
         {
-          if (similarity < channel_info.similarity)
-            update=MagickTrue;
-          break;
-        }
-      }
-      if (update != MagickFalse)
-        {
+          if (similarity >= channel_info.similarity)
+            break;
           channel_info.similarity=similarity;
           channel_info.x=x;
           channel_info.y=y;
+          break;
         }
+      }
       for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
       {
         PixelChannel channel = GetPixelChannelChannel(image,i);