Class MeanDifference

java.lang.Object
net.sourceforge.jiu.ops.Operation
net.sourceforge.jiu.color.analysis.MeanDifference

public class MeanDifference extends Operation
This operation determines the mean difference between two images. It requires two images of the same resolution and adds the absolute difference of all samples. Then it divides by the number of samples in the image (width times height times number of channels).

Supported combinations of image types

Usage example

Double meanDifference = MeanDifference.compute(image1, image2);
Since:
0.11.0
Author:
Marco Schmidt
  • Field Details

  • Constructor Details

    • MeanDifference

      public MeanDifference()
  • Method Details

    • compute

      public static Double compute(PixelImage image1, PixelImage image2)
      Compute the mean difference between two images.
      Parameters:
      image1 - first image to be examined
      image2 - second image to be examined
      Returns:
      sum of all differences divided by number of pixels as Double or null on failure (image types are incompatible)
      Since:
      0.15.0
    • computeDiff

      private static int computeDiff(int a, int b)
      Returns abs(a - b).
      Parameters:
      a - first number
      b - second number
      Returns:
      abs(a - b)
    • getDifference

      public double getDifference()
      After a call to process, returns the determined mean difference value.
      Returns:
      difference value, 0.0 or larger
    • process

      public void process() throws MissingParameterException, WrongParameterException
      Description copied from class: Operation
      This method does the actual work of the operation. It must be called after all parameters have been given to the operation object.
      Overrides:
      process in class Operation
      Throws:
      MissingParameterException - if any mandatory parameter was not given to the operation
      WrongParameterException - if at least one of the input parameters was not initialized appropriately (values out of the valid interval, etc.)
    • process

      private void process(GrayIntegerImage image1, GrayIntegerImage image2)
    • process

      private void process(RGB24Image image1, Paletted8Image image2)
    • process

      private void process(RGBIntegerImage image1, RGBIntegerImage image2)
    • setDifference

      private void setDifference(double newValue)
    • setImages

      public void setImages(PixelImage firstImage, PixelImage secondImage)
      Sets the two images for which the mean difference is to be determined.
      Parameters:
      firstImage - first image
      secondImage - second image
      Throws:
      IllegalArgumentException - if either of the images is null, if their resolution is different or if their types are not supported by this operation