/** Simple constructor since no preprocessing is necessary. */ public MinIntensity(FloatProcessor fp) { fpixels = (float[])fp.getPixels(); len = fpixels.length; for (int i=0; i<len; i++) fpixels[i] = Float.MAX_VALUE; }
/** Simple constructor since no preprocessing is necessary. */ public MaxIntensity(FloatProcessor fp) { fpixels = (float[])fp.getPixels(); len = fpixels.length; for (int i=0; i<len; i++) fpixels[i] = -Float.MAX_VALUE; }
final static public void fillWithNaN( final FloatProcessor fp ) { final float[] data = ( float[] )fp.getPixels(); for ( int i = 0; i < data.length; ++i ) data[ i ] = Float.NaN; }
/** Constructor requires number of slices to be projected. This is used to determine average at each pixel. */ public AverageIntensity(FloatProcessor fp, int num) { fpixels = (float[])fp.getPixels(); len = fpixels.length; this.num = num; }
public StandardDeviation(FloatProcessor fp, int num) { result = (float[])fp.getPixels(); len = result.length; this.num = num; sum = new double[len]; sum2 = new double[len]; }
private void loadPixels(float [][] i, FloatProcessor fp, int width, int height) { float [] f = (float []) fp.getPixels(); for (int y = 0; y < height; y++) { int offset = y * width; for (int x = 0; x < width; x++) i[y][x] = f[offset + x]; } } /**
/** Constructor requires number of slices to be projected. This is used to determine average at each pixel. */ public AverageIntensity(FloatProcessor fp, int num) { fpixels = (float[])fp.getPixels(); len = fpixels.length; this.num = num; }
protected void toByte( final byte[] bytes ) { final float[] fs = ( float[] )fps[ 0 ].getPixels(); for ( int i = 0; i < bytes.length; ++i ) bytes[ i ] = ( byte )Math.max( 0, Math.min( 255, Math.round( fs[ i ] ) ) ); }
final static public void fillWithNoise( final FloatProcessor fp ) { final float[] data = ( float[] )fp.getPixels(); final Random random = new Random( System.nanoTime() ); for ( int i = 0; i < data.length; ++i ) data[ i ] = random.nextFloat(); }
/** Sets the pixels, and min&max values from a FloatProcessor. * Also the values are taken from the FloatProcessor. * @param channelNumber Ignored (needed for compatibility with ColorProcessor.toFloat) * @param fp The FloatProcessor where the image data are read from. */ public void setPixels(int channelNumber, FloatProcessor fp) { if (fp.getPixels() != getPixels()) setPixels(fp.getPixels()); setMinAndMax(fp.getMin(), fp.getMax()); }
/** Sets the pixels, and min&max values from a FloatProcessor. * Also the values are taken from the FloatProcessor. * @param channelNumber Ignored (needed for compatibility with ColorProcessor.toFloat) * @param fp The FloatProcessor where the image data are read from. */ public void setPixels(int channelNumber, FloatProcessor fp) { if (fp.getPixels() != getPixels()) setPixels(fp.getPixels()); setMinAndMax(fp.getMin(), fp.getMax()); }
/** Constructs a FloatBlitter from a FloatProcessor. */ public FloatBlitter(FloatProcessor ip) { this.ip = ip; width = ip.getWidth(); height = ip.getHeight(); pixels = (float[])ip.getPixels(); }
public FloatProcessorChunk(FloatProcessor fp) { processor = fp; width = processor.getWidth(); height = processor.getHeight(); pixels = (float[])processor.getPixels(); }
/** Constructs a FloatBlitter from a FloatProcessor. */ public FloatBlitter(FloatProcessor ip) { this.ip = ip; width = ip.getWidth(); height = ip.getHeight(); pixels = (float[])ip.getPixels(); }
private void resetMasked(FloatProcessor floatEdm, ImageProcessor mask, int resetOnThis) { int width = mask.getWidth(); int height = mask.getHeight(); byte[] mPixels = (byte[])mask.getPixels(); float[] fPixels = (float[])floatEdm.getPixels(); for (int i=0; i<width*height; i++) if (mPixels[i] == resetOnThis) fPixels[i] = 0; }
private void byteFromFloat(ImageProcessor ip, FloatProcessor floatEdm) { int width = ip.getWidth(); int height = ip.getHeight(); byte[] bPixels = (byte[])ip.getPixels(); float[] fPixels = (float[])floatEdm.getPixels(); for (int i=0; i<width*height; i++) { float v = fPixels[i]; bPixels[i] = v<255f ? (byte)(v+0.5) : (byte)255; } }
import ij.process.FloatProcessor; public class SimpleTest { public static float[] func(float []bm, int nx, int ny) { FloatProcessor p = new FloatProcessor(nx,ny); p.setPixels(bm); float[] kernel = new float[{0.111f,0.111f,0.111f,0.111f, 0.111f,0.111f,0.111f,0.111f,0.111f}; p.convolve(kernel, 3, 3); return (float[]) p.getPixels(); } }
private void resetMasked(FloatProcessor floatEdm, ImageProcessor mask, int resetOnThis) { int width = mask.getWidth(); int height = mask.getHeight(); byte[] mPixels = (byte[])mask.getPixels(); float[] fPixels = (float[])floatEdm.getPixels(); for (int i=0; i<width*height; i++) if (mPixels[i] == resetOnThis) fPixels[i] = 0; }
protected BufferedImage makeImage( final ImageProcessor ip, final FloatProcessor mask ) { final BufferedImage transformedImage = new BufferedImage( ip.getWidth(), ip.getHeight(), null == mask ? BufferedImage.TYPE_INT_RGB : BufferedImage.TYPE_INT_ARGB ); final Image img = ip.createImage(); transformedImage.createGraphics().drawImage( img, 0, 0, null ); img.flush(); if (null != mask) { transformedImage.getAlphaRaster().setPixels( 0, 0, ip.getWidth(), ip.getHeight(), ( float[] )mask.getPixels() ); } return transformedImage; }
public static FloatProcessor toProcessor( final Img< ? extends RealType< ? > > img ) { final FloatProcessor fp = new FloatProcessor( (int)img.dimension( 0 ), (int)img.dimension( 1 ) ); final float[] array = (float[])fp.getPixels(); final Cursor< ? extends RealType< ? > > c = img.cursor(); for ( int i = 0; i < array.length; ++ i) array[ i ] = c.next().getRealFloat(); return fp; }