@Test public void basic() { ImageUInt8 image = new ImageUInt8(400, 500); int value = 200; ImageMiscOps.fillRectangle(image, value, 20, 30, 40, 40); PolygonEdgeScore<ImageUInt8> alg = new PolygonEdgeScore<ImageUInt8>(2, 2, 10, value * 0.9, ImageUInt8.class); Polygon2D_F64 polygon = new Polygon2D_F64(4); UtilPolygons2D_F64.convert(new Rectangle2D_F64(20, 30, 60, 70), polygon); alg.setImage(image); assertTrue(alg.validate(polygon)); assertEquals(value, alg.getAverageEdgeIntensity(), 1e-8); UtilPolygons2D_F64.convert(new Rectangle2D_F64(24, 30, 60, 70), polygon); // test a negative case assertFalse(alg.validate(polygon)); assertEquals(value * 3.0 / 4.0, alg.getAverageEdgeIntensity(), 1e-8); }
public synchronized void setTarget(RectangleLength2D_I32 rect, boolean visible) { if (quad != null) UtilPolygons2D_F64.convert(rect, quad); mode = Mode.TRACKING; targetVisible = visible; repaint(); }