Package net.imglib2.type.numeric

Examples of net.imglib2.type.numeric.RealType


    final long[] offset = new long[ n ];
    interval.min( offset );
    interval.max( max );
    for ( int d = 0; d < n; ++d )
      max[ d ] -= offset[ d ];
    final MixedTransform t = new MixedTransform( n, n );
    t.setTranslation( offset );
    return interval( new MixedTransformView< T >( interval, t ), min, max );
  }
View Full Code Here


   */
  public static < T > MixedTransformView< T > hyperSlice( final RandomAccessible< T > view, final int d, final long pos )
  {
    final int m = view.numDimensions();
    final int n = m - 1;
    final MixedTransform t = new MixedTransform( n, m );
    final long[] translation = new long[ m ];
    translation[ d ] = pos;
    final boolean[] zero = new boolean[ m ];
    final int[] component = new int[ m ];
    for ( int e = 0; e < m; ++e )
    {
      if ( e < d )
      {
        zero[ e ] = false;
        component[ e ] = e;
      }
      else if ( e > d )
      {
        zero[ e ] = false;
        component[ e ] = e - 1;
      }
      else
      {
        zero[ e ] = true;
        component[ e ] = 0;
      }
    }
    t.setTranslation( translation );
    t.setComponentZero( zero );
    t.setComponentMapping( component );
    return new MixedTransformView< T >( view, t );
  }
View Full Code Here

   */
  public static < T > MixedTransformView< T > addDimension( final RandomAccessible< T > randomAccessible )
  {
    final int m = randomAccessible.numDimensions();
    final int n = m + 1;
    final MixedTransform t = new MixedTransform( n, m );
    return new MixedTransformView< T >( randomAccessible, t );
  }
View Full Code Here

  public static < T > MixedTransformView< T > invertAxis( final RandomAccessible< T > randomAccessible, final int d )
  {
    final int n = randomAccessible.numDimensions();
    final boolean[] inv = new boolean[ n ];
    inv[ d ] = true;
    final MixedTransform t = new MixedTransform( n, n );
    t.setComponentInversion( inv );
    return new MixedTransformView< T >( randomAccessible, t );
  }
View Full Code Here

    }
    else
    {
      this.source = source;
      final int sourceDim = this.source.numDimensions();
      this.transformToSource = new MixedTransform( n, sourceDim );
      this.transformToSource.set( transformToSource );
    }

    fullViewRandomAccessible = null;
  }
View Full Code Here

        if ( iterableSource.supportsOptimizedCursor( interval ) )
          return new SubInterval( iterableSource );
      }
      else if ( transforms.size() == 1 && SlicingTransform.class.isInstance( transforms.get( 0 ) ) )
      {
        final SlicingTransform t = ( SlicingTransform ) transforms.get( 0 );
        final int m = t.numTargetDimensions();
        final int n = t.numSourceDimensions();

        // Check whether the slicing can be potentially optimized.
        boolean optimizable = true;

        // 1.) Slice dimensions must be mapped to a contiguous range of
        // target dimensions starting with dimension 0.
        int firstZeroDim = 0;
        for ( ; firstZeroDim < m && !t.getComponentZero( firstZeroDim ); ++firstZeroDim );
        for ( int d = firstZeroDim + 1; d < m && optimizable; ++d )
          if ( !t.getComponentZero( d ) )
            optimizable = false;

        // 2.) All slice dimensions must be mapped to a target dimension
        final int[] sourceComponent = new int[ n ];
        if ( optimizable )
        {
          Arrays.fill( sourceComponent, -1 );
          for ( int d = 0; d < m; ++d )
            if ( !t.getComponentZero( d ) )
              sourceComponent[ t.getComponentMapping( d ) ] = d;
          for ( int d = 0; d < n && optimizable; ++d )
            if ( sourceComponent[ d ] < 0 )
              optimizable = false;
        }

        if ( optimizable )
        {
//          System.out.println( "interval = " + Util.printInterval( interval ) );
          final Interval sliceInterval = t.transform( new BoundingBox( interval ) ).getInterval();
//          System.out.println( "transformed interval = " + Util.printInterval( sliceInterval ) );
          if ( iterableSource.supportsOptimizedCursor( sliceInterval ) )
          {
            // check for FlatIterationOrder
            boolean flat = FlatIterationOrder.class.isInstance( iterableSource.subIntervalIterationOrder( sliceInterval ) );
View Full Code Here

   * array will update the {@link Image}.
   */
  public ARGBScreenImage( final int width, final int height, final int[] data )
  {
    super( new IntArray( data ), new long[]{ width, height }, new Fraction() );
    setLinkedType( new ARGBType( this ) );
    this.data = data;

    final SampleModel sampleModel = ARGB_COLOR_MODEL.createCompatibleWritableRaster( 1, 1 ).getSampleModel()
        .createCompatibleSampleModel( width, height );
    final DataBuffer dataBuffer = new DataBufferInt( data, width * height, 0 );
View Full Code Here

      mapSingle( sourceRandomAccess, currentConverters[ 0 ] );
      return;
    }

    final Cursor< ARGBType > targetCursor = target.localizingCursor();
    final ARGBType bi = new ARGBType();

    while ( targetCursor.hasNext() )
    {
      targetCursor.fwd();
      sourceRandomAccess.setPosition( targetCursor.getLongPosition( 0 ), 0 );
      sourceRandomAccess.setPosition( targetCursor.getLongPosition( 1 ), 1 );
      int aSum = 0, rSum = 0, gSum = 0, bSum = 0;
      for ( int i = 0; i < size; i++ )
      {
        sourceRandomAccess.setPosition( currentPositions[ i ], dimIndex );
        currentConverters[ i ].convert( sourceRandomAccess.get(), bi );

        // accumulate converted result
        final int value = bi.get();
        final int a = ARGBType.alpha( value );
        final int r = ARGBType.red( value );
        final int g = ARGBType.green( value );
        final int b = ARGBType.blue( value );
        aSum += a;
View Full Code Here

      sourceRandomAccess.setPosition( currentPositions[ 0 ], dimIndex );
      mapSingle( sourceRandomAccess, currentConverters[ 0 ] );
      return;
    }

    final ARGBType bi = new ARGBType();

    final RandomAccess< ARGBType > targetRandomAccess = target.randomAccess();

    targetRandomAccess.setPosition( min[ 1 ], 1 );
    while ( targetRandomAccess.getLongPosition( 1 ) <= max[ 1 ] )
    {
      sourceRandomAccess.setPosition( min[ 0 ], 0 );
      targetRandomAccess.setPosition( min[ 0 ], 0 );
      while ( targetRandomAccess.getLongPosition( 0 ) <= max[ 0 ] )
      {
        int aSum = 0, rSum = 0, gSum = 0, bSum = 0;
        for ( int i = 0; i < size; i++ )
        {
          sourceRandomAccess.setPosition( currentPositions[ i ], dimIndex );
          currentConverters[ i ].convert( sourceRandomAccess.get(), bi );

          // accumulate converted result
          final int value = bi.get();
          final int a = ARGBType.alpha( value );
          final int r = ARGBType.red( value );
          final int g = ARGBType.green( value );
          final int b = ARGBType.blue( value );
          aSum += a;
View Full Code Here

  {

    if ( ByteType.class.isAssignableFrom( type.getClass() ) )
    {
      final ByteArray array = new ByteArray( numElements( dims ) );
      final ArrayImgAWTScreenImage< ByteType, ByteArray > container = new ByteAWTScreenImage( new ByteType( array ), array, dims );
      container.setLinkedType( new ByteType( container ) );
      return ( ArrayImgAWTScreenImage ) container;
    }

    if ( UnsignedByteType.class.isAssignableFrom( type.getClass() ) )
    {
View Full Code Here

TOP

Related Classes of net.imglib2.type.numeric.RealType

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.