public OrientationGradientToImage(OrientationGradient<D> alg, ImageGradient<T, D> gradient, Class<T> inputType , Class<D> gradientType ) { this.alg = alg; this.gradient = gradient; this.inputType = inputType; derivX = GeneralizedImageOps.createSingleBand(gradientType,1,1); derivY = GeneralizedImageOps.createSingleBand(gradientType,1,1); }
public OrientationIntegralToImage(OrientationIntegral<II> alg, Class<T> inputType , Class<II> integralType ) { this.alg = alg; this.inputType = inputType; integralImage = GeneralizedImageOps.createSingleBand(integralType, 1, 1); }
public ImplSsdCornerBase( int windowRadius , Class<D2> secondDerivType ) { this.radius = windowRadius; horizXX = GeneralizedImageOps.createSingleBand(secondDerivType,1,1); horizXY = GeneralizedImageOps.createSingleBand(secondDerivType,1,1); horizYY = GeneralizedImageOps.createSingleBand(secondDerivType,1,1); }
/** * Creates a single band image of the specified type that will have the same * shape as this image */ public <B extends ImageGray<B>> B createSameShape( Class<B> type ) { return GeneralizedImageOps.createSingleBand(type,width,height); }
public EdgeIntensitiesApp(Class<T> imageType) { this.imageType = imageType; input = GeneralizedImageOps.createSingleBand(imageType, width, height); derivY = GeneralizedImageOps.createSingleBand(imageType, width, height); }
/** * If the output has not been declared a new instance is declared. If an instance of the output * is provided its bounds are checked. */ public static <In extends ImageGray,Out extends ImageGray> Out checkDeclare(In input, Out output , Class<Out> typeOut) { if (output == null) { output = (Out) GeneralizedImageOps.createSingleBand(typeOut,input.width, input.height); } else if (output.width != input.width || output.height != input.height) throw new IllegalArgumentException("Width and/or height of input and output do not match. "+input.width+"x"+input.height+" "+output.width+"x"+output.height); return output; }
public static <T extends ImageBase> T createImage(Class<T> type, int width, int height, int numBands ) { if( (Class)type == Planar.class ) throw new IllegalArgumentException("Can't use this function with planar because the data type needs to be specified too"); if( ImageGray.class.isAssignableFrom(type)) return (T)createSingleBand((Class)type,width,height); else if( ImageInterleaved.class.isAssignableFrom(type)) return (T)createInterleaved((Class)type,width,height,numBands); else throw new RuntimeException("Unknown"); } public static <T extends ImageGray<T>> T createSingleBand(Class<T> type, int width, int height) {
public FourierVisualizeApp(ImageDataType imageType) { this.imageType = imageType; image = GeneralizedImageOps.createSingleBand(imageType,1,1); transform = GeneralizedImageOps.createInterleaved(imageType, 1, 1, 2); magnitude = GeneralizedImageOps.createSingleBand(imageType,1,1); phase = GeneralizedImageOps.createSingleBand(imageType,1,1); fft = GDiscreteFourierTransformOps.createTransform(imageType); setMainGUI(panel); }
public SurfPlanar_to_DetectDescribePoint(DetectDescribeSurfPlanar<II> alg , Class<T> imageType, Class<II> integralType) { this.alg = alg; gray = GeneralizedImageOps.createSingleBand(imageType, 1, 1); grayII = GeneralizedImageOps.createSingleBand(integralType,1,1); bandII = new Planar<>(integralType, 1, 1, alg.getDescribe().getNumBands()); }
public SurfPlanar_to_DescribeRegionPoint(DescribePointSurfPlanar<II> alg, Class<T> imageType, Class<II> integralType ) { this.alg = alg; gray = GeneralizedImageOps.createSingleBand(imageType, 1, 1); grayII = GeneralizedImageOps.createSingleBand(integralType,1,1); bandII = new Planar<>(integralType, 1, 1, alg.getNumBands()); this.imageType = ImageType.pl(alg.getNumBands(), imageType); }
public DescribePointBrief(DescribePointBinaryCompare<T> describe, BlurFilter<T> filterBlur) { this.filterBlur = filterBlur; this.describe = describe; Class<T> imageType = filterBlur.getInputType().getImageClass(); blur = GeneralizedImageOps.createSingleBand(imageType, 1, 1); }
public void derivByGaussDeriv() { System.out.println("DxG*I"); T blurDeriv = GeneralizedImageOps.createSingleBand(imageType, width, height); for( int level = 1; level <= 3; level++ ) { ImageGradient<T,T> funcGaussDeriv = FactoryDerivative.gaussian(level,-1,imageType,imageType); funcGaussDeriv.process(input,blurDeriv,derivY); printIntensity("Sigma "+level,blurDeriv); } }
public void derivByGaussThenGausDeriv() { System.out.println("DxG*(G*I)"); T blur = GeneralizedImageOps.createSingleBand(imageType, width, height); T blurDeriv = GeneralizedImageOps.createSingleBand(imageType, width, height); for( int sigma = 1; sigma <= 3; sigma++ ) { ImageGradient<T,T> funcGaussDeriv = FactoryDerivative.gaussian(sigma,-1,imageType,imageType); BlurStorageFilter<T> funcBlur = FactoryBlurFilter.gaussian(ImageType.single(imageType),sigma,-1); funcBlur.process(input,blur); funcGaussDeriv.process(blur,blurDeriv,derivY); printIntensity("Sigma "+sigma,blurDeriv); } }
public void derivByDerivThenBlur() { System.out.println("G*(Dx*I)"); ImageGradient<T,T> funcDeriv = FactoryDerivative.three(imageType,imageType); T blur = GeneralizedImageOps.createSingleBand(imageType, width, height); T deriv = GeneralizedImageOps.createSingleBand(imageType, width, height); for( int sigma = 1; sigma <= 3; sigma++ ) { BlurStorageFilter<T> funcBlur = FactoryBlurFilter.gaussian(ImageType.single(imageType),sigma,-1); funcDeriv.process(input,deriv,derivY); funcBlur.process(deriv,blur); printIntensity("Sigma "+sigma,blur); } }
public void derivByBlurThenDeriv() { System.out.println("Dx*(G*I)"); ImageGradient<T,T> funcDeriv = FactoryDerivative.three(imageType,imageType); T blur = GeneralizedImageOps.createSingleBand(imageType, width, height); T blurDeriv = GeneralizedImageOps.createSingleBand(imageType, width, height); for( int sigma = 1; sigma <= 3; sigma++ ) { BlurStorageFilter<T> funcBlur = FactoryBlurFilter.gaussian(ImageType.single(imageType),sigma,-1); funcBlur.process(input,blur); funcDeriv.process(blur,blurDeriv,derivY); printIntensity("Sigma "+sigma,blurDeriv); } }
@Override public void setImage(I input) { this.originalImage = input; if( scaledImage == null ) { scaledImage = GeneralizedImageOps.createSingleBand(inputType, input.getWidth(), input.getHeight()); workImage = GeneralizedImageOps.createSingleBand(inputType, input.getWidth(), input.getHeight()); } else if( scaledImage.width != input.width || scaledImage.height != input.height ) { scaledImage.reshape(input.width,input.height); workImage.reshape(input.width,input.height); } }
private void createStorage() { if( inputType.getFamily() == ImageType.Family.PLANAR ) { storage = (T)GeneralizedImageOps.createSingleBand(inputType.getImageClass(),1,1); } else { storage = inputType.createImage(1,1); } }
@Override public void process(T imageLeft, T imageRight) { if( disparity == null || disparity.width != imageLeft.width || disparity.height != imageLeft.height ) { // make sure the image borders are marked as invalid disparity = GeneralizedImageOps.createSingleBand(alg.getDisparityType(),imageLeft.width,imageLeft.height); GImageMiscOps.fill(disparity, getMaxDisparity() + 1); } alg.process(imageLeft,imageRight,disparity); }
public DetectLineApp( List<PathLabel> examples , Class<T> imageType , Class<D> derivType ) { super(examples, ImageType.single(imageType)); this.imageType = imageType; this.derivType = derivType; blur = GeneralizedImageOps.createSingleBand(imageType, 1, 1); work = blur.createSameShape(); add(controls,BorderLayout.WEST); add(gui,BorderLayout.CENTER); declareDetector(); }
public BackgroundProcessing(BackgroundModelStationary<T> model ) { super(model.getImageType()); this.model = model; this.scaled = model.getImageType().createImage(1, 1); this.work = GeneralizedImageOps.createSingleBand(model.getImageType().getDataType(),1,1); }