/** * returns the open circle * * @return */ public Letter getOpenCircle() { if (openCircle != null) { return openCircle; } // Graphics g = image.getGraphics(); // g.setColor(Color.black); // g.drawOval(55, 55, 18, 18); getCircles(); // if(true)return null; Letter best = null; int bestwda = Integer.MIN_VALUE; for (PixelObject pixelObject : objectArray) { Letter let = pixelObject.toColoredLetter(); int w = 0; for (int x = 0; x < let.getWidth(); x++) { for (int y = 0; y < let.getHeight(); y++) { if (isBackground(let.getPixelValue(x, y))) { w++; } else { break; } } } for (int y = 0; y < let.getHeight(); y++) { for (int x = 0; x < let.getWidth(); x++) { if (isBackground(let.getPixelValue(x, y))) { w++; } else { break; } } } for (int x = 0; x < let.getWidth(); x++) { for (int y = let.getHeight() - 1; y > 0; y--) { if (isBackground(let.getPixelValue(x, y))) { w++; } else { break; } } } for (int y = 0; y < let.getHeight(); y++) { for (int x = let.getWidth() - 1; x > 0; x--) { if (isBackground(let.getPixelValue(x, y))) { w++; } else { break; } } } int wda = w * 100 / let.getArea(); BasicWindow.showImage(pixelObject.toColoredLetter().getImage(), "" + wda); // TODO if (wda > bestwda && let.getArea() > minArea) { best = let; bestwda = wda; } } openCircle = best; return best; }