protected internal Binarizer(LuminanceSource source) { if (source == null) { throw new System.ArgumentException("Source must be non-null."); } this.source = source; }
/// <summary> Creates a new object with the same type as this Binarizer implementation, but with pristine /// state. This is needed because Binarizer implementations may be stateful, e.g. keeping a cache /// of 1 bit data. See Effective Java for why we can't use Java's clone() method. /// /// </summary> /// <param name="source">The LuminanceSource this Binarizer will operate on. /// </param> /// <returns> A new concrete Binarizer implementation object. /// </returns> public abstract Binarizer createBinarizer(LuminanceSource source);