protected void updatePosition(Matrix transform) { position = position.transform(transform); }
@Override public Polygon asPolygon() { final Polygon e = new Polygon(); final Matrix transformMatrix = this.transformMatrix(); final Point2dImpl circlePoint = new Point2dImpl(0, 0); for (double t = -Math.PI; t < Math.PI; t += Math.PI / 360) { circlePoint.x = (float) Math.cos(t); circlePoint.y = (float) Math.sin(t); e.points.add(circlePoint.transform(transformMatrix)); } return e; }
/** * {@inheritDoc} * @see org.openimaj.vis.DataUnitsTransformer#calculatePosition(java.lang.Object) */ @Override public int[] calculatePosition( final double[] units ) { Point2dImpl p = new Point2dImpl( (float)units[0], (float)units[1] ); p = p.transform( this.dataTransformMatrix ); return new int[] { Math.round(p.getX()), Math.round(p.getY()) }; // final double[] dx = this.xAxisRenderer.calculatePosition( units[0] ); // final double[] dy = this.yAxisRenderer.calculatePosition( units[1] ); // // System.out.println( "units[0] = "+units[0]+" --> "+Arrays.toString( dx ) ); // System.out.println( "units[1] = "+units[1]+" --> "+Arrays.toString( dy ) ); // // return new int[] { (int) dx[0], (int)dy[1] }; // //(int)(dx[0]+dy[0]), (int)(dx[1]+dy[1]) }; }
private Point2dImpl findActualPoint(PixelSet c) { final double[] centroidDouble = c.calculateCentroid(); final Point2dImpl centroid = new Point2dImpl((float) centroidDouble[0], (float) centroidDouble[1]); final Point2dImpl actualPoint = centroid.transform(this.homography.getTransform()); return actualPoint; }
private Point2dImpl findActualPoint(PixelSet c) { final double[] centroidDouble = c.calculateCentroid(); final Point2dImpl centroid = new Point2dImpl((float) centroidDouble[0], (float) centroidDouble[1]); final Point2dImpl actualPoint = centroid.transform(this.homography.getTransform()); return actualPoint; }
private void updateEllipse() { ipd.findInterestPoints(Transforms.calculateIntensityNTSC(this.image)); final Point2dImpl np = this.point.transform(transform); final Matrix sm = ipd.getSecondMomentsAt((int) np.x, (int) np.y); ellipseToDraw = EllipseUtilities.ellipseFromSecondMoments(np.x, np.y, sm, 5 * 2); }
private void updateEllipse() { ipd.findInterestPoints(Transforms.calculateIntensityNTSC(this.image)); final Point2dImpl np = this.point.transform(transform); final Matrix sm = ipd.getSecondMomentsAt((int) np.x, (int) np.y); ellipseToDraw = EllipseUtilities.ellipseFromSecondMoments(np.x, np.y, sm, 5 * 2); }
protected FacialKeypoint[] getActualPoints(FacialKeypoint[] keys, Matrix tf0) { final FacialKeypoint[] points = new FacialKeypoint[AffineAligner.Pmu[0].length]; for (int i = 0; i < points.length; i++) { points[i] = new FacialKeypoint(FacialKeypointType.valueOf(i)); points[i].position = new Point2dImpl( FacialKeypoint.getKeypoint(keys, FacialKeypointType.valueOf(i)).position.transform(tf0)); } return points; }
@Override public void beforeUpdate(MBFImage frame) { if (frame == null) return; final List<KEDetectedFace> faces = detector.detectFaces(frame.flatten()); if (faces.size() <= 0) return; final KEDetectedFace face = faces.get(0); DisplayUtilities.displayName(aligner.align(face), "aligned"); for (final FacialKeypoint kp : face.getKeypoints()) { frame.drawPoint( kp.position.transform(TransformUtilities.translateMatrix(face.getBounds().x, face.getBounds().y)), RGBColour.RED, 3); } DisplayUtilities.displayName(frame, "tracked"); }
Point2dImpl pt = new Point2dImpl(Pmu[0][i], Pmu[1][i]); pt = pt.transform(TransformUtilities.scaleMatrixAboutPoint(1 / sc, 1 / sc, new Point2dImpl(Pmu[0][0], Pmu[1][0]))); kpt.position.transform(TransformUtilities.translateMatrix(face.getBounds().x, face.getBounds().y)), 1f, 3); model = model.inverse();
@Override public void beforeUpdate(MBFImage frame) { if (frame == null) return; final List<KEDetectedFace> faces = detector.detectFaces(frame.flatten()); if (faces.size() <= 0) return; final KEDetectedFace face = faces.get(0); DisplayUtilities.displayName(aligner.align(face), "aligned"); for (final FacialKeypoint kp : face.getKeypoints()) { frame.drawPoint( kp.position.transform(TransformUtilities.translateMatrix(face.getBounds().x, face.getBounds().y)), RGBColour.RED, 3); } DisplayUtilities.displayName(frame, "tracked"); }
Point2dImpl pt = new Point2dImpl(Pmu[0][i], Pmu[1][i]); pt = pt.transform(TransformUtilities.scaleMatrixAboutPoint(1 / sc, 1 / sc, new Point2dImpl(Pmu[0][0], Pmu[1][0]))); kpt.position.transform(TransformUtilities.translateMatrix(face.getBounds().x, face.getBounds().y)), 1f, 3); model = model.inverse();
/** * Draw the shape */ public void drawShape() { this.image.fill(RGBColour.WHITE); this.image.createRenderer().drawShapeFilled( this.rectangle.transform(transform), RGBColour.BLACK); this.image = image.process(new FGaussianConvolve(5)); this.image.createRenderer().drawPoint(this.point.transform(transform), RGBColour.RED, 1); }
/** * Draw the shape */ public void drawShape() { this.image.fill(RGBColour.WHITE); this.image.createRenderer().drawShapeFilled( this.rectangle.transform(transform), RGBColour.BLACK); this.image = image.process(new FGaussianConvolve(5)); this.image.createRenderer().drawPoint(this.point.transform(transform), RGBColour.RED, 1); }
for (int x = 0; x < patchSize; x++) { final Point2dImpl pt = new Point2dImpl((x - halfSize) / halfSize, (y - halfSize) / halfSize); final Point2dImpl tpt = pt.transform(tf); patch.pixels[y][x] = image.getPixelInterpNative(tpt.x, tpt.y, 0);
for (int x = 0; x < patchSize; x++) { final Point2dImpl pt = new Point2dImpl((x - halfSize) / halfSize, (y - halfSize) / halfSize); final Point2dImpl tpt = pt.transform(tf); patch.pixels[y][x] = image.getPixelInterpNative(tpt.x, tpt.y, 0);