@Override public RandomAccessibleOnRealRandomAccessible<T> calculate(RealRandomAccessible<T> input) { return Views.raster(input); }
@Override public RandomAccessibleInterval< T > getSource( final int t, final int level ) { return Views.interval( Views.raster( accessible ), getInterval( t, level ) ); }
private static <T> IterableInterval<T> iterableInterval( final RealRandomAccessibleRealInterval<T> realInterval) { final RandomAccessibleOnRealRandomAccessible<T> raster = Views.raster(realInterval); final IntervalView<T> interval = Views.interval(raster, findMin(realInterval), findMax(realInterval)); return Views.iterable(interval); }
@Override public RandomAccessibleInterval<T> calculate(RandomAccessibleInterval<T> input) { final long[] newDims = Intervals.dimensionsAsLongArray(in()); for (int i = 0; i < Math.min(scaleFactors.length, in().numDimensions()); i++) { newDims[i] = Math.round(in().dimension(i) * scaleFactors[i]); } IntervalView<T> interval = Views.interval(Views.raster(RealViews.affineReal( Views.interpolate(Views.extendMirrorSingle(input), interpolator), new Scale(scaleFactors))), new FinalInterval(newDims)); return interval; }
public RandomAccessibleInterval< FloatType > getRandomAccessibleInterval() { // InverseDistanceWeightingInterpolatorFactory final NearestNeighborSearch< FloatType > search = new NearestNeighborSearchOnKDTree<>( new KDTree<>( qualityList ) ); final RealRandomAccessible< FloatType > realRandomAccessible = Views.interpolate( search, new NearestNeighborSearchInterpolatorFactory< FloatType >() ); final RandomAccessible< FloatType > randomAccessible = Views.raster( realRandomAccessible ); final RandomAccessibleInterval< FloatType > rai = Views.interval( randomAccessible, interval ); return Views.interval( Views.extendZero( rai ), interval ); }
public RandomAccessibleInterval< FloatType > getRandomAccessibleInterval( final int numPoints, final double power ) { final KNearestNeighborSearch< FloatType > search = new KNearestNeighborSearchOnKDTree<>( new KDTree<>( qualityList ), numPoints ); final RealRandomAccessible< FloatType > realRandomAccessible = Views.interpolate( search, new InverseDistanceWeightingInterpolatorFactory< FloatType >( power ) ); final RandomAccessible< FloatType > randomAccessible = Views.raster( realRandomAccessible ); final RandomAccessibleInterval< FloatType > rai = Views.interval( randomAccessible, interval ); return Views.interval( Views.extendZero( rai ), interval ); }
Views.raster( RealViews.transform( RealViews.transform(
@Override public ImageRoi convert(final RealMaskRealInterval mask) { // Wrap mask as RRARI final RealRandomAccessibleRealInterval<BoolType> rrari = Masks .toRealRandomAccessibleRealInterval(mask); // Convert the RRARI to a RAI whose min is (0, 0), this will ensure it // displays properly final RandomAccessible<BoolType> raster = Views.raster(rrari); final RandomAccessible<BoolType> translate = Views.translate(raster, new long[] { (long) -mask.realMin(0), (long) -mask.realMin(1) }); final RandomAccessibleInterval<BoolType> rai = Views.interval(translate, new long[] { 0, 0 }, new long[] { (long) (mask.realMax(0) - mask.realMin( 0)), (long) (mask.realMax(1) - mask.realMin(1)) }); // Convert RAI to ImagePlus final Dataset d = datasetService.create(rai); final ImagePlus ip = convertService.convert(d, ImagePlus.class); return new ImageRoi((int) mask.realMin(0), (int) mask.realMin(1), ip .getBufferedImage()); }
@Test public void defaultRasterTest() { Img<DoubleType> img = new ArrayImgFactory<DoubleType>().create(new int[]{10, 10}, new DoubleType()); MersenneTwisterFast r = new MersenneTwisterFast(SEED); for (DoubleType d : img) { d.set(r.nextDouble()); } RealRandomAccessible<DoubleType> realImg = Views.interpolate(img, new FloorInterpolatorFactory<DoubleType>()); RandomAccessibleOnRealRandomAccessible<DoubleType> il2 = Views.raster(realImg); RandomAccessibleOnRealRandomAccessible<DoubleType> opr = ops.transform().rasterView(realImg); Cursor<DoubleType> il2C = Views.interval(il2, img).localizingCursor(); RandomAccess<DoubleType> oprRA = Views.interval(opr, img).randomAccess(); while (il2C.hasNext()) { il2C.next(); oprRA.setPosition(il2C); assertEquals(il2C.get().get(), oprRA.get().get(), 1e-10); } } }