net.imglib2.view.Views.translate()方法的使用及代码示例

x33g5p2x  于2022-02-01 转载在 其他  
字(11.6k)|赞(0)|评价(0)|浏览(110)

本文整理了Java中net.imglib2.view.Views.translate()方法的一些代码示例,展示了Views.translate()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Views.translate()方法的具体详情如下:
包路径:net.imglib2.view.Views
类名称:Views
方法名:translate

Views.translate介绍

[英]Translate the source view by the given translation vector. Pixel x in the source view has coordinates (x + translation) in the resulting view.
[中]按给定的转换向量转换源代码视图。源视图中的像素x在结果视图中具有坐标*(x+平移)*。

代码示例

代码示例来源:origin: imagej/imagej-ops

  1. @Override
  2. public IntervalView<T> calculate(final RandomAccessibleInterval<T> input) {
  3. return Views.translate(input, translation);
  4. }

代码示例来源:origin: imagej/imagej-ops

  1. @Override
  2. public MixedTransformView<T> calculate(RandomAccessible<T> input) {
  3. return Views.translate(input, translation);
  4. }

代码示例来源:origin: net.imglib2/imglib2

  1. /**
  2. * Translate the source view by the given translation vector. Pixel
  3. * <em>x</em> in the source view has coordinates <em>(x + translation)</em>
  4. * in the resulting view.
  5. *
  6. * @param interval
  7. * the source
  8. * @param translation
  9. * translation vector of the source view. The pixel at <em>x</em>
  10. * in the source view becomes <em>(x + translation)</em> in the
  11. * resulting view.
  12. */
  13. public static < T > IntervalView< T > translate( final RandomAccessibleInterval< T > interval, final long... translation )
  14. {
  15. return Views.interval(
  16. Views.translate( ( RandomAccessible< T > ) interval, translation ),
  17. Intervals.translate( interval, translation ) );
  18. }

代码示例来源:origin: imglib/imglib2

  1. /**
  2. * Translate the source view by the given translation vector. Pixel
  3. * <em>x</em> in the source view has coordinates <em>(x + translation)</em>
  4. * in the resulting view.
  5. *
  6. * @param interval
  7. * the source
  8. * @param translation
  9. * translation vector of the source view. The pixel at <em>x</em>
  10. * in the source view becomes <em>(x + translation)</em> in the
  11. * resulting view.
  12. */
  13. public static < T > IntervalView< T > translate( final RandomAccessibleInterval< T > interval, final long... translation )
  14. {
  15. return Views.interval(
  16. Views.translate( ( RandomAccessible< T > ) interval, translation ),
  17. Intervals.translate( interval, translation ) );
  18. }

代码示例来源:origin: net.imglib2/imglib2

  1. /**
  2. * Creates an image with randomized content.
  3. * @param type Pixel type
  4. * @param interval Interval
  5. */
  6. public < T extends NativeType< T > > RandomAccessibleInterval< T > nextImage( final T type, Interval interval )
  7. {
  8. long[] sizes = Intervals.dimensionsAsLongArray( interval );
  9. long[] min = Intervals.minAsLongArray( interval );
  10. return Views.translate( nextImage( type, sizes ), min );
  11. }

代码示例来源:origin: imagej/imagej-ops

  1. @Override
  2. public void compute(final RandomAccessibleInterval<T> in1, final Shape in2,
  3. final IterableInterval<T> output)
  4. {
  5. final RandomAccessibleInterval<T> shifted;
  6. if (isFull) {
  7. final long[] offset = MorphologyUtils
  8. .computeTargetImageDimensionsAndOffset(in1, in2)[1];
  9. shifted = Views.translate(in1, offset);
  10. }
  11. else {
  12. shifted = in1;
  13. }
  14. final ExtendedRandomAccessibleInterval<T, RandomAccessibleInterval<T>> extended =
  15. Views.extend(shifted, f);
  16. Dilation.dilate(extended, output, in2, minVal, Runtime.getRuntime()
  17. .availableProcessors());
  18. }
  19. }

代码示例来源:origin: imagej/imagej-ops

  1. @Override
  2. public void compute(final RandomAccessibleInterval<T> in1, final Shape in2,
  3. final IterableInterval<T> output)
  4. {
  5. final RandomAccessibleInterval<T> shifted;
  6. if (isFull) {
  7. final long[] offset = MorphologyUtils
  8. .computeTargetImageDimensionsAndOffset(in1, in2)[1];
  9. shifted = Views.translate(in1, offset);
  10. }
  11. else {
  12. shifted = in1;
  13. }
  14. final ExtendedRandomAccessibleInterval<T, RandomAccessibleInterval<T>> extended =
  15. Views.extend(shifted, f);
  16. Erosion.erode(extended, output, in2, maxVal, Runtime.getRuntime()
  17. .availableProcessors());
  18. }
  19. }

代码示例来源:origin: imglib/imglib2

  1. /**
  2. * Creates an image with randomized content.
  3. * @param type Pixel type
  4. * @param interval Interval
  5. */
  6. public < T extends NativeType< T > > RandomAccessibleInterval< T > nextImage( final T type, Interval interval )
  7. {
  8. long[] sizes = Intervals.dimensionsAsLongArray( interval );
  9. long[] min = Intervals.minAsLongArray( interval );
  10. return Views.translate( nextImage( type, sizes ), min );
  11. }

代码示例来源:origin: net.preibisch/multiview-reconstruction

  1. public static < T > RandomAccessibleInterval< T > translateIfNecessary( final Interval original, final RandomAccessibleInterval< T > copy )
  2. {
  3. if ( Views.isZeroMin( original ) )
  4. {
  5. return copy;
  6. }
  7. else
  8. {
  9. final long[] min = new long[ original.numDimensions() ];
  10. original.min( min );
  11. return Views.translate( copy, min );
  12. }
  13. }

代码示例来源:origin: net.imglib2/imglib2-algorithm

  1. private static < T extends NativeType< T > > RandomAccessibleInterval< T > createImage( final T targetType, final Interval targetInterval )
  2. {
  3. final long[] dimensions = Intervals.dimensionsAsLongArray( targetInterval );
  4. final Img< T > ts = Util.getArrayOrCellImgFactory( targetInterval, targetType ).create( dimensions );
  5. return Views.translate( ts, Intervals.minAsLongArray( targetInterval ) );
  6. }

代码示例来源:origin: imglib/imglib2

  1. private RandomAccessibleInterval< IntType > randomImage( final int randomSeed )
  2. {
  3. final Img< IntType > result = ArrayImgs.ints( 3, 2, 5 );
  4. final Random random = new Random( randomSeed );
  5. result.forEach( x -> x.set( random.nextInt() ) );
  6. return Views.translate( result, random.nextInt(), random.nextInt(), random.nextInt() );
  7. }

代码示例来源:origin: imagej/imagej-ops

  1. @Override
  2. public void compute(final RandomAccessibleInterval<T> in1,
  3. final List<Shape> in2, final IterableInterval<T> out)
  4. {
  5. final long[][] minSize = Morphologies.computeMinSize(in1, in2);
  6. final Interval interval = new FinalInterval(minSize[1]);
  7. Img<T> upstream = imgCreator.calculate(interval);
  8. Img<T> downstream = imgCreator.calculate(interval);
  9. Img<T> tmp;
  10. dilateComputer.compute(in1, in2.get(0), Views.translate(downstream,
  11. minSize[0]));
  12. for (int i = 1; i < in2.size(); i++) {
  13. // Ping-ponging intermediate results between upstream and downstream to
  14. // avoid repetitively creating new Imgs.
  15. tmp = downstream;
  16. downstream = upstream;
  17. upstream = tmp;
  18. dilateComputer.compute(upstream, in2.get(i), downstream);
  19. }
  20. if (isFull) copyImg.compute(downstream, out);
  21. else copyImg.compute(Views.interval(Views.translate(downstream,
  22. minSize[0]), out), out);
  23. }
  24. }

代码示例来源:origin: imagej/imagej-ops

  1. @Override
  2. public void compute(final RandomAccessibleInterval<T> in1,
  3. final List<Shape> in2, final IterableInterval<T> out)
  4. {
  5. final long[][] minSize = Morphologies.computeMinSize(in1, in2);
  6. final Interval interval = new FinalInterval(minSize[1]);
  7. Img<T> upstream = imgCreator.calculate(interval);
  8. Img<T> downstream = imgCreator.calculate(interval);
  9. Img<T> tmp;
  10. erodeComputer.compute(in1, in2.get(0), Views.translate(downstream,
  11. minSize[0]));
  12. for (int i = 1; i < in2.size(); i++) {
  13. // Ping-ponging intermediate results between upstream and downstream to
  14. // avoid repetitively creating new Imgs.
  15. tmp = downstream;
  16. downstream = upstream;
  17. upstream = tmp;
  18. erodeComputer.compute(Views.interval(Views.extendValue(upstream, maxVal),
  19. interval), in2.get(i), downstream);
  20. }
  21. if (isFull) copyImg.compute(downstream, out);
  22. else copyImg.compute(Views.interval(Views.translate(downstream,
  23. minSize[0]), out), out);
  24. }
  25. }

代码示例来源:origin: imagej/imagej-ops

  1. /**
  2. * Adjusts the given {@link Img} to match the bounds of the specified
  3. * {@link Interval}.
  4. *
  5. * @param img An image whose min/max bounds might need adjustment.
  6. * @param minMax An {@link Interval} whose min/max bounds to use when
  7. * adjusting the image. If the provided {@code minMax} object is not
  8. * an {@link Interval}, no adjustment is performed.
  9. * @return A wrapped version of the input {@link Img} with bounds adjusted to
  10. * match the provided {@link Interval}, if any; or the input image
  11. * itself if no adjustment was needed/possible.
  12. */
  13. public static <T extends Type<T>> Img<T> adjustMinMax(final Img<T> img,
  14. final Object minMax)
  15. {
  16. if (!(minMax instanceof Interval)) return img;
  17. final Interval interval = (Interval) minMax;
  18. final long[] min = new long[interval.numDimensions()];
  19. interval.min(min);
  20. for (int d = 0; d < min.length; d++) {
  21. if (min[d] != 0) {
  22. return ImgView.wrap(Views.translate(img, min), img.factory());
  23. }
  24. }
  25. return img;
  26. }

代码示例来源:origin: imagej/imagej-ops

  1. @Override
  2. public void compute(final RandomAccessibleInterval<T> input,
  3. final RandomAccessibleInterval<T> output)
  4. {
  5. // input may potentially be translated
  6. final long[] translation = new long[input.numDimensions()];
  7. input.min(translation);
  8. final IntervalView<T> tmpInterval = Views.interval(Views.translate(
  9. (RandomAccessible<T>) tmpCreator.calculate(input), translation), output);
  10. gauss1.compute(input, tmpInterval);
  11. gauss2.compute(input, output);
  12. // TODO: Match the Subtract Op in initialize() once we have BinaryOp
  13. ops().run(Ops.Math.Subtract.class, output, output, tmpInterval);
  14. }

代码示例来源:origin: net.imagej/imagej-legacy

  1. @Override
  2. public ImageRoi convert(final RealMaskRealInterval mask) {
  3. // Wrap mask as RRARI
  4. final RealRandomAccessibleRealInterval<BoolType> rrari = Masks
  5. .toRealRandomAccessibleRealInterval(mask);
  6. // Convert the RRARI to a RAI whose min is (0, 0), this will ensure it
  7. // displays properly
  8. final RandomAccessible<BoolType> raster = Views.raster(rrari);
  9. final RandomAccessible<BoolType> translate = Views.translate(raster,
  10. new long[] { (long) -mask.realMin(0), (long) -mask.realMin(1) });
  11. final RandomAccessibleInterval<BoolType> rai = Views.interval(translate,
  12. new long[] { 0, 0 }, new long[] { (long) (mask.realMax(0) - mask.realMin(
  13. 0)), (long) (mask.realMax(1) - mask.realMin(1)) });
  14. // Convert RAI to ImagePlus
  15. final Dataset d = datasetService.create(rai);
  16. final ImagePlus ip = convertService.convert(d, ImagePlus.class);
  17. return new ImageRoi((int) mask.realMin(0), (int) mask.realMin(1), ip
  18. .getBufferedImage());
  19. }

代码示例来源:origin: imagej/imagej-ops

  1. @Test
  2. public void defaultZeroMinTest() {
  3. Img<DoubleType> img = new ArrayImgFactory<DoubleType>().create(new int[] { 10, 10 }, new DoubleType());
  4. IntervalView<DoubleType> imgTranslated = Views.interval(
  5. Views.translate((RandomAccessible<DoubleType>) img, 2, 5), new long[] { 2, 5 }, new long[] { 12, 15 });
  6. IntervalView<DoubleType> il2 = Views.zeroMin(imgTranslated);
  7. IntervalView<DoubleType> opr = ops.transform().zeroMinView(imgTranslated);
  8. assertTrue(Views.isZeroMin(il2) == Views.isZeroMin(opr));
  9. }
  10. }

代码示例来源:origin: imagej/imagej-ops

  1. @Test
  2. public void defaultTranslateTest() {
  3. Img<DoubleType> img = new ArrayImgFactory<DoubleType>().create(new int[] { 10, 10 }, new DoubleType());
  4. MixedTransformView<DoubleType> il2 = Views.translate( deinterval(img), 2, 5);
  5. MixedTransformView<DoubleType> opr = ops.transform().translateView( deinterval(img), 2, 5);
  6. for (int i = 0; i < il2.getTransformToSource().getMatrix().length; i++) {
  7. for (int j = 0; j < il2.getTransformToSource().getMatrix()[i].length; j++) {
  8. assertEquals(il2.getTransformToSource().getMatrix()[i][j], opr.getTransformToSource().getMatrix()[i][j],
  9. 1e-10);
  10. }
  11. }
  12. }

代码示例来源:origin: imagej/imagej-ops

  1. @Test
  2. public void testIntervalTranslate() {
  3. Img<DoubleType> img = ArrayImgs.doubles(10,10);
  4. IntervalView<DoubleType> expected = Views.translate(img, 2, 5);
  5. IntervalView<DoubleType> actual = ops.transform().translateView(img, 2, 5);
  6. for (int i = 0; i < ((MixedTransformView<DoubleType>) expected.getSource()).getTransformToSource().getMatrix().length; i++) {
  7. for (int j = 0; j < ((MixedTransformView<DoubleType>) expected.getSource()).getTransformToSource().getMatrix()[i].length; j++) {
  8. assertEquals(((MixedTransformView<DoubleType>) expected.getSource()).getTransformToSource().getMatrix()[i][j], ((MixedTransformView<DoubleType>) actual.getSource()).getTransformToSource().getMatrix()[i][j],
  9. 1e-10);
  10. }
  11. }
  12. assertTrue(Intervals.equals(expected, actual));
  13. }
  14. }

代码示例来源:origin: imglib/imglib2

  1. protected void testCursorIteration( Cursor< IntType > cursor, Interval i )
  2. {
  3. long[] position = new long[ cursor.numDimensions() ];
  4. long[] min = new long[ cursor.numDimensions() ];
  5. i.min( min );
  6. cursor.fwd();
  7. cursor.localize( position );
  8. cursor.reset();
  9. int ctr = 0;
  10. long sum = 0;
  11. final RandomAccess< BitType > check = Views.translate( new ArrayImgFactory<>( new BitType() ).create( i ), min ).randomAccess();
  12. while ( cursor.hasNext() )
  13. {
  14. cursor.fwd();
  15. cursor.localize( position );
  16. check.setPosition( position );
  17. assertFalse( check.get().get() );
  18. check.get().set( true );
  19. sum += cursor.get().get();
  20. ctr++;
  21. }
  22. assertEquals( "wrong number of elements accessed.", getIntervalSize( i ), ctr );
  23. assertEquals( "sum of elements incorrect.", sum, getSum( i ) );
  24. }

相关文章