final static private void processColor(final ColorProcessor ip, final int value, final int min, final int max) { final int scale = max - min + 1; final Random rnd = new Random(); final int n = ip.getWidth() * ip.getHeight(); for (int i =0; i < n; ++i) { final int v = ip.get(i); if (v == value) { final int r = rnd.nextInt(scale) + min; final int g = rnd.nextInt(scale) + min; final int b = rnd.nextInt(scale) + min; ip.set(i, (((((0xff << 8) | r) << 8) | g) << 8) | b); } } }
/** * Assumes reference image contains a ColorProcessor. */ private final static ImageProcessor binaryOverlayRGB(ImageProcessor refImage, ImageProcessor mask, Color color) { int width = refImage.getWidth(); int height = refImage.getHeight(); ColorProcessor result = new ColorProcessor(width, height); int value; int rgbValue = color.getRGB(); // Iterate on image pixels, and choose result value depending on mask for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { if(mask.get(x, y) == 0) { // choose RGB value directly from reference image value = refImage.get(x, y); result.set(x, y, value); } else { // set value to chosen color result.set(x, y, rgbValue); } } } return result; }
final int b = crop( roundPositive( rgb1[ 2 ] * scale1 - rgb2[ 2 ] * scale2 ) + offset, 0, 255 ); ip.set( row + x, ( ( ( r << 8 ) | g ) << 8 ) | b );
final int b = crop( roundPositive( rgb1[ 2 ] * scale1 - rgb2[ 2 ] * scale2 ) + offset, 0, 255 ); ip.set( row + x, ( ( ( r << 8 ) | g ) << 8 ) | b );
target.set( x, y, v );
int b = blueSlice.get(x, y); int rgbCode = (r << 16) | (g << 8) | b; rgbSlice.set(x, y, rgbCode);
final int iyi = yi * w; for ( int xi = 0; xi < w; ++xi ) cp.set( iyi + xi, ic + ( xi * coefficientsWidth / w ) + 1 );