/** * Rescales the input image and writes the results into the output image. The scale * factor is determined independently of the width and height. * @param input Input image. Not modified. * @param output Rescaled input image. Modified. * @param borderType Describes how pixels outside the image border should be handled. * @param interpType Which interpolation algorithm should be used. */ @Deprecated public static <T extends ImageBase<T>> void scale(T input, T output, BorderType borderType, InterpolationType interpType) { PixelTransformAffine_F32 model = DistortSupport.transformScale(output, input, null); if( input instanceof ImageGray) { distortSingle((ImageGray) input, (ImageGray) output, model, interpType, borderType); } else if( input instanceof Planar) { distortPL((Planar) input, (Planar) output, model, borderType, interpType); } }
distortSingle((ImageGray) input, (ImageGray) output, model, interpType, borderType); } else if( input instanceof Planar) { distortPL((Planar) input, (Planar) output, model,borderType, interpType);
@Override public void process(T input) { super.initialize(input.width,input.height); if( isSaveOriginalReference() ) throw new IllegalArgumentException("The original reference cannot be saved"); for( int i = 0; i < scale.length; i++ ) { T prev = i == 0 ? input : getLayer(i-1); T layer = getLayer(i); PixelTransformAffine_F32 model = DistortSupport.transformScale(layer,prev, null); DistortImageOps.distortSingle(prev,layer, true, model,interpolate); } }
distortSingle((ImageGray)input, (ImageGray)output, model, interpType, borderType); } else if( input instanceof Planar) { distortPL((Planar) input, (Planar) output, model, borderType, interpType);
@Override public void process(T input) { super.initialize(input.width,input.height); if( isSaveOriginalReference() ) throw new IllegalArgumentException("The original reference cannot be saved"); if( tempImage == null ) { tempImage = (T)input.createNew(input.width,input.height); } for( int i = 0; i < scale.length; i++ ) { T prev = i == 0 ? input : getLayer(i-1); T layer = getLayer(i); // Apply the requested blur to the previous layer BlurStorageFilter<T> blur = (BlurStorageFilter<T>) FactoryBlurFilter.gaussian(layer.getImageType(), sigmaLayers[i],-1); tempImage.reshape(prev.width,prev.height); blur.process(prev,tempImage); // Resample the blurred image if( scale[i] == 1 ) { layer.setTo(tempImage); } else { PixelTransformAffine_F32 model = DistortSupport.transformScale(layer,tempImage, null); DistortImageOps.distortSingle(tempImage,layer, true, model,interpolate); } } }