@Override public Runnable create( final double[] halfkernel, final RandomAccess< S > in, final RandomAccess< T > out, final int d, final long lineLength ) { return new DoubleConvolverRealType< S, T >( halfkernel, in, out, d, lineLength ); } };
private static < S extends RealType< S >, T extends RealType< T > > void convolveRealTypeDouble( final double[][] halfkernels, final RandomAccessible< S > source, final RandomAccessibleInterval< T > target, final int numThreads ) { final DoubleType type = new DoubleType(); final ImgFactory< DoubleType > imgfac = getImgFactory( target, halfkernels, type ); if ( canUseBufferedConvolver( target, halfkernels ) ) convolve( halfkernels, source, target, DoubleConvolverRealTypeBuffered.< S, DoubleType >factory(), DoubleConvolverRealTypeBuffered.< DoubleType, DoubleType >factory(), DoubleConvolverRealTypeBuffered.< DoubleType, T >factory(), DoubleConvolverRealTypeBuffered.< S, T >factory(), imgfac, type, numThreads ); else convolve( halfkernels, source, target, DoubleConvolverRealType.< S, DoubleType >factory(), DoubleConvolverRealType.< DoubleType, DoubleType >factory(), DoubleConvolverRealType.< DoubleType, T >factory(), DoubleConvolverRealType.< S, T >factory(), imgfac, type, numThreads ); }
private static < S extends RealType< S >, T extends RealType< T > > void convolveRealTypeDouble( final double[][] halfkernels, final RandomAccessible< S > source, final RandomAccessibleInterval< T > target, final ExecutorService service ) { final DoubleType type = new DoubleType(); final ImgFactory< DoubleType > imgfac = getImgFactory( target, halfkernels, type ); if ( canUseBufferedConvolver( target, halfkernels ) ) convolve( halfkernels, source, target, DoubleConvolverRealTypeBuffered.< S, DoubleType >factory(), DoubleConvolverRealTypeBuffered.< DoubleType, DoubleType >factory(), DoubleConvolverRealTypeBuffered.< DoubleType, T >factory(), DoubleConvolverRealTypeBuffered.< S, T >factory(), imgfac, service ); else convolve( halfkernels, source, target, DoubleConvolverRealType.< S, DoubleType >factory(), DoubleConvolverRealType.< DoubleType, DoubleType >factory(), DoubleConvolverRealType.< DoubleType, T >factory(), DoubleConvolverRealType.< S, T >factory(), imgfac, service ); }
@Override public Runnable create( final double[] halfkernel, final RandomAccess< S > in, final RandomAccess< T > out, final int d, final long lineLength ) { return new DoubleConvolverRealType< S, T >( halfkernel, in, out, d, lineLength ); } };
/** * @return a {@link ConvolverFactory} producing {@link DoubleConvolverRealType}. */ public static < S extends RealType< S >, T extends RealType< T > > ConvolverFactory< S, T > factory() { return new ConvolverFactory< S, T >() { @Override public Runnable create( final double[] halfkernel, final RandomAccess< S > in, final RandomAccess< T > out, final int d, final long lineLength ) { return new DoubleConvolverRealType< S, T >( halfkernel, in, out, d, lineLength ); } }; }
/** * @return a {@link ConvolverFactory} producing * {@link DoubleConvolverRealType}. */ public static < S extends RealType< S >, T extends RealType< T > > ConvolverFactory< S, T > factory() { return new ConvolverFactory< S, T >() { @Override public Runnable create( final double[] halfkernel, final RandomAccess< S > in, final RandomAccess< T > out, final int d, final long lineLength ) { return new DoubleConvolverRealType< S, T >( halfkernel, in, out, d, lineLength ); } }; }