package ini.trakem2.imaging.filters;
import ij.measure.Measurements;
import ij.plugin.ContrastEnhancer;
import ij.process.ImageProcessor;
import ij.process.ImageStatistics;
import java.util.Map;
/** Uses the @{link {@link ContrastEnhancer#stretchHistogram(ImageProcessor, double, ImageStatistics)} function. */
public class EnhanceContrast implements IFilter
{
/** Percent of saturated pixels to leave outside the min, max range. */
protected double s = 0.4;
public EnhanceContrast() {}
public EnhanceContrast(Map<String,String> params) {}
@Override
public ImageProcessor process(ImageProcessor ip) {
// Will not alter ip, no need to duplicate
new ContrastEnhancer().stretchHistogram(ip, s, ImageStatistics.getStatistics(ip, Measurements.MIN_MAX, null));
return ip;
}
@Override
public String toXML(String indent) {
return new StringBuilder(indent)
.append("<t2_filter class=\"").append(getClass().getName())
.append("\" s=\"").append(s)
.append("\" />\n").toString();
}
@Override
public boolean equals(final Object o) {
if (null == o) return false;
if (o.getClass() == EnhanceContrast.class) {
return ((EnhanceContrast)o).s == this.s;
}
return false;
}
}