net.sourceforge.jiu.color.analysis

Class 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);
Author:
Marco Schmidt
Since:
0.11.0

Field Summary

private double
diff
private PixelImage
image1
private PixelImage
image2

Fields inherited from class net.sourceforge.jiu.ops.Operation

abort, progressListeners

Method Summary

static Double
compute(PixelImage image1, PixelImage image2)
Compute the mean difference between two images.
private static int
computeDiff(int a, int b)
Returns abs(a - b).
double
getDifference()
After a call to process, returns the determined mean difference value.
void
process()
private void
process(GrayIntegerImage image1, GrayIntegerImage image2)
private void
process(RGB24Image image1, Paletted8Image image2)
private void
process(RGBIntegerImage image1, RGBIntegerImage image2)
private void
setDifference(double newValue)
void
setImages(PixelImage firstImage, PixelImage secondImage)
Sets the two images for which the mean difference is to be determined.

Methods inherited from class net.sourceforge.jiu.ops.Operation

addProgressListener, addProgressListeners, getAbort, process, removeProgressListener, setAbort, setProgress, setProgress

Field Details

diff

private double diff

image1

private PixelImage image1

image2

private PixelImage image2

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
Overrides:
process in interface Operation

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