private void process(ColorProcessor ip) { double[] feature = new double[binX * binY * binZ]; int processedPixels = 0; ImageProcessor mask = ip.getMask(); int numpixels = ip.getPixelCount(); float[] hsbvals = new float[3]; // Conversion buffer for (int i = 0; i < numpixels; i++) { if (mask == null || mask.get(i) != 0) { if (type == TYPE.HSB) { feature[getBinForHSB(ip.get(i), hsbvals)]++; } else if (type == TYPE.RGB) { feature[getBinForRGB(ip.get(i))]++; } processedPixels++; } } Arrays2.div(feature, processedPixels); addData(feature); }
public int[] setSphereColors(SphericalMaxProjection smp, ColorProcessor ip) { Point2f polar = new Point2f(); Point2D.Double out = new Point2D.Double(); int[] colors = new int[smp.getSphere().nVertices]; int idx = 0; for (Point3f v : smp.getSphere().getVertices()) { smp.getPolar(v, polar); projection.transformRadians(polar.x, polar.y, out); int x = (int) out.x - minx; int y = maxy - (int) out.y; colors[idx++] = ip.get(x, y); } return colors; }