diff --git a/magick/feature.c b/magick/feature.c
index 23ba962..d1f9876 100644
--- a/magick/feature.c
+++ b/magick/feature.c
@@ -892,7 +892,30 @@
       if (image->colorspace == CMYKColorspace)
         sum_squares.direction[i].index+=sum_average[x].direction[i].index*
           sum_average[x].direction[i].index;
+      /*
+        Difference entropy.
+      */
+      channel_features[RedChannel].difference_entropy[i]-=
+        sum_average[x].direction[i].red*
+        log10(sum_average[x].direction[i].red+MagickEpsilon);
+      channel_features[GreenChannel].difference_entropy[i]-=
+        sum_average[x].direction[i].green*
+        log10(sum_average[x].direction[i].green+MagickEpsilon);
+      channel_features[BlueChannel].difference_entropy[i]-=
+        sum_average[x].direction[i].blue*
+        log10(sum_average[x].direction[i].blue+MagickEpsilon);
+      if (image->matte != MagickFalse)
+        channel_features[OpacityChannel].difference_entropy[i]-=
+          sum_average[x].direction[i].opacity*
+          log10(sum_average[x].direction[i].opacity+MagickEpsilon);
+      if (image->colorspace == CMYKColorspace)
+        channel_features[IndexChannel].difference_entropy[i]-=
+          sum_average[x].direction[i].index*
+          log10(sum_average[x].direction[i].index+MagickEpsilon);
     }
+    /*
+      Difference variance.
+    */
     channel_features[RedChannel].difference_variance[i]=
       (((double) number_grays*number_grays*sum_squares.direction[i].red)-
       (variance.direction[i].red*variance.direction[i].red))/