internal override void Range(Image originalImage, KernelFunction kernelFunction, uint neighborhoodSize, uint x, uint y, Image outputImage) { ImageHSV <T> castedOriginalImage = (ImageHSV <T>)originalImage; ImageHSV <T> castedOutputImage = (ImageHSV <T>)outputImage; castedOutputImage.H.Range(castedOriginalImage.H, kernelFunction, x, y, neighborhoodSize); castedOutputImage.S.Range(castedOriginalImage.S, kernelFunction, x, y, neighborhoodSize); castedOutputImage.V.Range(castedOriginalImage.V, kernelFunction, x, y, neighborhoodSize); }
public override Image Clone() { ImageHSV <T> clone = (ImageHSV <T>)ImageFactory.Create(Width, Height, ColorModel.HSV, GetDataType()); clone.H = (GenericChannel <T>)H.Clone(); clone.S = (GenericChannel <T>)S.Clone(); clone.V = (GenericChannel <T>)V.Clone(); return(clone); }
internal override GenericImage <T> Add(GenericImage <T> other) { ImageHSV <T> outcome = (ImageHSV <T>)ImageFactory.Create(Width, Height, GetColorModel(), GetDataType()); ImageHSV <T> otherHSV = (ImageHSV <T>)other.ToHSV(); outcome.H = H.Add(otherHSV.H); outcome.S = S.Add(otherHSV.S); outcome.V = V.Add(otherHSV.V); return(outcome); }