package ie.dcu.image.binary; import ie.dcu.image.dt.DistanceTransform; import ie.dcu.matrix.*; import ie.dcu.matrix.Matrix.Type; /** * Distance transform operation. This class is a {@link BinaryImageOp} wrapper * for the {@link DistanceTransform} object. * * @author Kevin McGuinness */ public class DistanceTransformOp extends AbstractBinaryImageOp { private boolean computeSquareTransform; public DistanceTransformOp() { setRequestInputCopy(false); computeSquareTransform = false; } @Override protected Matrix processImage(ByteMatrix input) { DistanceTransform transform = new DistanceTransform(); transform.init(input, foregroundValue); if (computeSquareTransform) { return transform.computeSquareTransform(); } return transform.computeTransform(); } public Type getDefaultMatrixType() { return Matrix.Type.Double; } }