@Override final public int getScaledSum( final int xMin, final int yMin, final int xMax, final int yMax, final float scale ) { final int y1w = yMin * w + w1; final int y2w = yMax * w + w1; return Util.roundPos( ( sum[ y1w + xMin ] + sum[ y2w + xMax ] - sum[ y1w + xMax ] - sum[ y2w + xMin ] ) * scale ); } }
final public void compose( final int[] src, final int[] dst, final float alpha ) { final float srcAlpha = src[ 3 ] / 255.0f * alpha; dst[ 0 ] = Math.min( 255, Util.round( src[ 0 ] * srcAlpha + dst[ 0 ] ) ); dst[ 1 ] = Math.min( 255, Util.round( src[ 1 ] * srcAlpha + dst[ 1 ] ) ); dst[ 2 ] = Math.min( 255, Util.round( src[ 2 ] * srcAlpha + dst[ 2 ] ) ); dst[ 3 ] = 255; } }
final long d = Util.pow( g, min.length );
/** * Create a new {@link RealSum}. The fields for intermediate sums is * initialized with a given number of elements and will only be expanded * on demand as new elements are added and the number of existing elements * is not sufficient. This may be faster in cases where the required * number of elements is known in prior. * * @param capacity */ public RealSum( final int capacity ) { final int ldu = Util.ldu( capacity ) + 1; flags = new boolean[ ldu ]; sums = new double[ ldu ]; }
mpicbg.util.Util.memset( maskPixels, ( byte )255 );
final long d = Util.pow( g, min.length );
/** * Create a new {@link RealSum}. The fields for intermediate sums is * initialized with a given number of elements and will only be expanded * on demand as new elements are added and the number of existing elements * is not sufficient. This may be faster in cases where the required * number of elements is known in prior. * * @param capacity */ public RealSum( final int capacity ) { final int ldu = Util.ldu( capacity ) + 1; flags = new boolean[ ldu ]; sums = new double[ ldu ]; }
mpicbg.util.Util.memset( maskPixels, ( byte )255 );
@Override final public int getScaledSum( final int xMin, final int yMin, final int xMax, final int yMax, final float scale ) { final int y1w = yMin * w + w1; final int y2w = yMax * w + w1; return Util.roundPos( ( sum[ y1w + xMin ] + sum[ y2w + xMax ] - sum[ y1w + xMax ] - sum[ y2w + xMin ] ) * scale ); } }
Util.min( rMin, f ); Util.max( rMax, f ); f[ 2 ] = min[ 2 ]; applyInPlace( f ); Util.min( rMin, f ); Util.max( rMax, f ); f[ 2 ] = min[ 2 ]; applyInPlace( f ); Util.min( rMin, f ); Util.max( rMax, f ); f[ 2 ] = min[ 2 ]; applyInPlace( f ); Util.min( rMin, f ); Util.max( rMax, f ); f[ 2 ] = max[ 2 ]; applyInPlace( f ); Util.min( rMin, f ); Util.max( rMax, f ); f[ 2 ] = max[ 2 ]; applyInPlace( f ); Util.min( rMin, f ); Util.max( rMax, f ); f[ 2 ] = max[ 2 ];
final long d = Util.pow( g, min.length );
final public void compose( final int[] src, final int[] dst, final float alpha ) { dst[ 0 ] = Math.min( 255, Util.round( src[ 0 ] * alpha + dst[ 0 ] ) ); dst[ 1 ] = Math.min( 255, Util.round( src[ 0 ] * alpha + dst[ 1 ] ) ); dst[ 2 ] = Math.min( 255, Util.round( src[ 0 ] * alpha + dst[ 2 ] ) ); dst[ 3 ] = 255; } }
@Override final public int getScaledSum( final int xMin, final int yMin, final int xMax, final int yMax, final float scale ) { final int y1w = yMin * w + w1; final int y2w = yMax * w + w1; return Util.roundPos( ( sum[ y1w + xMin ] + sum[ y2w + xMax ] - sum[ y1w + xMax ] - sum[ y2w + xMin ] ) * scale ); } }
Util.min( rMin, f ); Util.max( rMax, f ); f[ 2 ] = min[ 2 ]; applyInverseInPlace( f ); Util.min( rMin, f ); Util.max( rMax, f ); f[ 2 ] = min[ 2 ]; applyInverseInPlace( f ); Util.min( rMin, f ); Util.max( rMax, f ); f[ 2 ] = min[ 2 ]; applyInverseInPlace( f ); Util.min( rMin, f ); Util.max( rMax, f ); f[ 2 ] = max[ 2 ]; applyInverseInPlace( f ); Util.min( rMin, f ); Util.max( rMax, f ); f[ 2 ] = max[ 2 ]; applyInverseInPlace( f ); Util.min( rMin, f ); Util.max( rMax, f ); f[ 2 ] = max[ 2 ];
final long d = Util.pow( g, min.length );
final public void compose( final int[] src, final int[] dst, final float alpha ) { final float srcAlpha = src[ 3 ] / 255.0f * alpha; dst[ 0 ] = Math.max( 0, Util.round( dst[ 0 ] - src[ 0 ] * srcAlpha ) ); dst[ 1 ] = Math.max( 0, Util.round( dst[ 1 ] - src[ 1 ] * srcAlpha ) ); dst[ 2 ] = Math.max( 0, Util.round( dst[ 2 ] - src[ 2 ] * srcAlpha ) ); dst[ 3 ] = 255; } }
@Override final public int getScaledSum( final int xMin, final int yMin, final int xMax, final int yMax, final float scale ) { final int y1w = yMin * w + w1; final int y2w = yMax * w + w1; return Util.roundPos( ( sum[ y1w + xMin ] + sum[ y2w + xMax ] - sum[ y1w + xMax ] - sum[ y2w + xMin ] ) * scale ); } }