Commit 7f22f9f82 for imagemagick.org

commit 7f22f9f82f51eedaffbe7ac3e9b291717d984754
Author: Cristy <urban-warrior@imagemagick.org>
Date:   Sat May 30 22:43:41 2026 -0400

    normalize each channel independently

diff --git a/MagickCore/statistic.c b/MagickCore/statistic.c
index 2714153d3..39796b863 100644
--- a/MagickCore/statistic.c
+++ b/MagickCore/statistic.c
@@ -1761,10 +1761,6 @@ MagickExport ChannelPerceptualHash *GetImagePerceptualHash(const Image *image,
     ChannelMoments
       *moments;

-    double
-      mn = DBL_MAX,
-      mx = -DBL_MAX;
-
     Image
       *hash_image;

@@ -1796,6 +1792,11 @@ MagickExport ChannelPerceptualHash *GetImagePerceptualHash(const Image *image,
     if (moments == (ChannelMoments *) NULL)
       break;
     for (channel=0; channel <= MaxPixelChannels; channel++)
+    {
+      double
+        mn =DBL_MAX,
+        mx = -DBL_MAX;
+
       for (j=0; j < MaximumNumberOfImageMoments; j++)
       {
         double x = moments[channel].invariant[j];
@@ -1807,7 +1808,6 @@ MagickExport ChannelPerceptualHash *GetImagePerceptualHash(const Image *image,
         if (alpha > mx)
           mx=alpha;
       }
-    for (channel=0; channel <= MaxPixelChannels; channel++)
       for (j=0; j < MaximumNumberOfImageMoments; j++)
       {
         double x = moments[channel].invariant[j];
@@ -1817,6 +1817,7 @@ MagickExport ChannelPerceptualHash *GetImagePerceptualHash(const Image *image,
         perceptual_hash[channel].phash[i][j]=MagickMin(MagickMax(scaled,0.0),
           255.0);
       }
+    }
     moments=(ChannelMoments *) RelinquishMagickMemory(moments);
   }
   colorspaces=DestroyString(colorspaces);