package edu.stanford.rsl.conrad.metric; import ij.ImagePlus; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; import edu.stanford.rsl.apps.gui.Citeable; public abstract class ImageMetric implements Serializable, Citeable { /** * */ protected ImagePlus testImage = null; protected ImagePlus referenceImage = null; public ImagePlus getTestImage() { return testImage; } public void setTestImage(ImagePlus recon) { this.testImage = recon; } public ImagePlus getReferenceImage() { return referenceImage; } public void setReferenceImage(ImagePlus idealRecon) { this.referenceImage = idealRecon; } private static final long serialVersionUID = 6626577275910593598L; public abstract double evaluate(); public void writeObject(ObjectOutputStream ois){ } public abstract String toString(); public void readObject(ObjectInputStream oos){ } public static ImageMetric [] getMetrics(){ ImageMetric [] metrics = {new MeanSquareErrorMetric(), new RootMeanSquareErrorMetric(), new NormalizedImprovement()}; return metrics; } @Override public boolean equals (Object another){ return another.toString().equals(toString()); } public void prepareForSerialization() { testImage = null; referenceImage = null; } } /* * Copyright (C) 2010-2014 Andreas Maier * CONRAD is developed as an Open Source project under the GNU General Public License (GPL). */