public Vector<Point> blob (Pixel px) { Vector<Point> v = new Vector<Point>(); Point p = new Point(px.getX(), px.getY()); v.add(p); }
final double x = p.getX() - centroid[0]; final double y = p.getY() - centroid[1];
final double x = p.getX() - centroid[0]; final double y = p.getY() - centroid[1];
@Override public void process(ConnectedComponent cc) { final int a = cc.calculateArea(); for (final Pixel p : cc.pixels) e90labelled.setPixel((int) p.getX(), (int) p.getY(), (float) a); } };
@Override public void process(ConnectedComponent cc) { final int a = cc.calculateArea(); for (final Pixel p : cc.pixels) e90labelled.setPixel((int) p.getX(), (int) p.getY(), (float) a); } };
@Override public Pixel transform(Matrix transform) { if (transform.getRowDimension() == 3) { float xt = (float) transform.get(0, 0) * getX() + (float) transform.get(0, 1) * getY() + (float) transform.get(0, 2); float yt = (float) transform.get(1, 0) * getX() + (float) transform.get(1, 1) * getY() + (float) transform.get(1, 2); final float zt = (float) transform.get(2, 0) * getX() + (float) transform.get(2, 1) * getY() + (float) transform.get(2, 2); xt /= zt; yt /= zt; return new Pixel(Math.round(xt), Math.round(yt)); } else if (transform.getRowDimension() == 2) { final float xt = (float) transform.get(0, 0) * getX() + (float) transform.get(0, 1) * getY(); final float yt = (float) transform.get(1, 0) * getX() + (float) transform.get(1, 1) * getY(); return new Pixel(Math.round(xt), Math.round(yt)); } throw new IllegalArgumentException("Transform matrix has unexpected size"); }
@Override public Pixel transform(Matrix transform) { if (transform.getRowDimension() == 3) { float xt = (float) transform.get(0, 0) * getX() + (float) transform.get(0, 1) * getY() + (float) transform.get(0, 2); float yt = (float) transform.get(1, 0) * getX() + (float) transform.get(1, 1) * getY() + (float) transform.get(1, 2); final float zt = (float) transform.get(2, 0) * getX() + (float) transform.get(2, 1) * getY() + (float) transform.get(2, 2); xt /= zt; yt /= zt; return new Pixel(Math.round(xt), Math.round(yt)); } else if (transform.getRowDimension() == 2) { final float xt = (float) transform.get(0, 0) * getX() + (float) transform.get(0, 1) * getY(); final float yt = (float) transform.get(1, 0) * getX() + (float) transform.get(1, 1) * getY(); return new Pixel(Math.round(xt), Math.round(yt)); } throw new IllegalArgumentException("Transform matrix has unexpected size"); }
/** * Inplace transform the point by the given matrix. * * @param transform * the transform * @return this */ public Pixel transformInplace(Matrix transform) { if (transform.getRowDimension() == 3) { float xt = (float) transform.get(0, 0) * getX() + (float) transform.get(0, 1) * getY() + (float) transform.get(0, 2); float yt = (float) transform.get(1, 0) * getX() + (float) transform.get(1, 1) * getY() + (float) transform.get(1, 2); final float zt = (float) transform.get(2, 0) * getX() + (float) transform.get(2, 1) * getY() + (float) transform.get(2, 2); xt /= zt; yt /= zt; this.x = Math.round(xt); this.y = Math.round(yt); return this; } else if (transform.getRowDimension() == 2) { final float xt = (float) transform.get(0, 0) * getX() + (float) transform.get(0, 1) * getY(); final float yt = (float) transform.get(1, 0) * getX() + (float) transform.get(1, 1) * getY(); this.x = Math.round(xt); this.y = Math.round(yt); return this; } throw new IllegalArgumentException("Transform matrix has unexpected size"); }
/** * Inplace transform the point by the given matrix. * * @param transform * the transform * @return this */ public Pixel transformInplace(Matrix transform) { if (transform.getRowDimension() == 3) { float xt = (float) transform.get(0, 0) * getX() + (float) transform.get(0, 1) * getY() + (float) transform.get(0, 2); float yt = (float) transform.get(1, 0) * getX() + (float) transform.get(1, 1) * getY() + (float) transform.get(1, 2); final float zt = (float) transform.get(2, 0) * getX() + (float) transform.get(2, 1) * getY() + (float) transform.get(2, 2); xt /= zt; yt /= zt; this.x = Math.round(xt); this.y = Math.round(yt); return this; } else if (transform.getRowDimension() == 2) { final float xt = (float) transform.get(0, 0) * getX() + (float) transform.get(0, 1) * getY(); final float yt = (float) transform.get(1, 0) * getX() + (float) transform.get(1, 1) * getY(); this.x = Math.round(xt); this.y = Math.round(yt); return this; } throw new IllegalArgumentException("Transform matrix has unexpected size"); }
/** * Affine transform the shape with the given transform matrix. Side-affects * this component. * * @param transform * The matrix containing the transform. */ public void transform(Matrix transform) { final Matrix p1 = new Matrix(3, 1); for (final Pixel p : pixels) { p1.set(0, 0, p.getX()); p1.set(1, 0, p.getY()); p1.set(2, 0, 1); final Matrix p2_est = transform.times(p1); p.x = (int) Math.rint(p2_est.get(0, 0)); p.y = (int) Math.rint(p2_est.get(1, 0)); } }
/** * Affine transform the shape with the given transform matrix. Side-affects * this component. * * @param transform * The matrix containing the transform. */ public void transform(Matrix transform) { final Matrix p1 = new Matrix(3, 1); for (final Pixel p : pixels) { p1.set(0, 0, p.getX()); p1.set(1, 0, p.getY()); p1.set(2, 0, 1); final Matrix p2_est = transform.times(p1); p.x = (int) Math.rint(p2_est.get(0, 0)); p.y = (int) Math.rint(p2_est.get(1, 0)); } }