/** * create a new image from a Sikuli ScreenImage (captured)<br> * can only be reused with the object reference * * @param img ScreenImage */ public Image(ScreenImage img) { this(img.getImage(), null); }
/** * create a new image from a Sikuli ScreenImage (captured)<br> * giving it a descriptive name for printout and logging <br> * can only be reused with the object reference * * @param img ScreenImage * @param name descriptive name */ public Image(ScreenImage img, String name) { this(img.getImage(), name); }
public static void screenClipUser() throws IOException{ org.sikuli.script.Screen screen = Screen.getPrimaryScreen(); org.sikuli.script.Region region = screen.selectRegion("Select Area to capture as Image"); ScreenImage clip = region.getLastScreenImage(); // screen.userCapture(); ScreenImage printScreen = region.getScreen().capture(); javax.imageio.ImageIO.write(clip.getImage(), "PNG", new File("D:\\SikuliImages\\Clip.png")); ImageIO.write(printScreen.getImage(), "PNG", new File("D:\\SikuliImages\\PrintScreen.png")); screenCaptureRegion(screen); } public static void screenCaptureRegion(Screen screen) throws IOException{ java.awt.Point point = MouseInfo.getPointerInfo().getLocation(); System.out.println("Mouse Location Co-Ordinates Previous Selected : " + point); //ScreenImage capturedRegion = screen.capture(point.x, point.y, 200, 200); ScreenImage capturedRegion = screen.capture(clip.x, clip.y, clip.w, clip.h); ImageIO.write(capturedRegion.getImage(), "PNG", new File("D:\\SikuliImages\\CapturedRegion.png")); }
/** * A Pattern from a ScreenImage * * @param simg ScreenImage */ public Pattern(ScreenImage simg) { image = new Image(simg.getImage()); }
@Override public Color getColorAt(int x, int y) { ScreenImage image = captureScreen(new Rectangle(x, y, 1, 1)); return new Color(image.getImage().getRGB(0, 0)); }
public String recognizeWord(ScreenImage simg) { BufferedImage img = simg.getImage(); return recognizeWord(img); }
public String recognize(ScreenImage simg) { BufferedImage img = simg.getImage(); return recognize(img); }
/** * internal use: exchange the source image in existing Finder * * @param simg ScreenImage */ protected void setScreenImage(ScreenImage simg) { _findInput.setSource(Image.convertBufferedImageToMat(simg.getImage())); }
private BufferedImage cropSelection() { int w = rectSelection.width, h = rectSelection.height; if (w <= 0 || h <= 0) { return null; } int x = rectSelection.x; int y = rectSelection.y; if (!isLocalScreen && scr_img_scale != 1) { x = (int) (x / scr_img_scale); y = (int) (y / scr_img_scale); w = (int) (w / scr_img_scale); h = (int) (h / scr_img_scale); } BufferedImage crop = new BufferedImage(w, h, scr_img_type); Graphics2D crop_g2d = crop.createGraphics(); try { crop_g2d.drawImage(scr_img_original.getImage().getSubimage(x, y, w, h), null, 0, 0); } catch (RasterFormatException e) { Debug.error("OverlayCapturePrompt: cropSelection: RasterFormatException", e.getMessage()); } crop_g2d.dispose(); return crop; }
private void captureScreen(int x, int y, int w, int h) { ScreenImage img = ((Screen)_scr).captureforHighlight(x, y, w, h); _screen = img.getImage(); float scaleFactor = .6f; RescaleOp op = new RescaleOp(scaleFactor, 0, null); _darker_screen = op.filter(_screen, null); }
public void prompt(String msg) { scr_img_original = scrOCP.capture(); scr_img = scr_img_original.getImage(); scr_img_darker = scr_img; scr_img_type = scr_img.getType();
lastImageMat = new org.opencv.core.Mat(); } else { lastImgMat = Image.convertBufferedImageToMat(img.getImage()); lastImageMat = Image.createMat(img.getImage()); return true; ImageFinder f = new ImageFinder(lastImageMat); f.setMinChanges(minChanges); org.opencv.core.Mat current = Image.createMat(img.getImage()); if (f.hasChanges(current)) { FindInput fin = new FindInput(); fin.setSource(lastImgMat); Mat target = Image.convertBufferedImageToMat(img.getImage()); fin.setTarget(target); fin.setSimilarity(minChanges);
public List<Match> listText(ScreenImage simg, Region parent, ListTextMode mode) { Mat mat = Image.convertBufferedImageToMat(simg.getImage()); OCRWords words = Vision.recognize_as_ocrtext(mat).getWords(); List<Match> ret = new LinkedList<Match>(); for (int i = 0; i < words.size(); i++) { OCRWord w = words.get(i); Match m = new Match(parent.x + w.getX(), parent.y + w.getY(), w.getWidth(), w.getHeight(), w.getScore(), parent.getScreen(), w.getString()); ret.add(m); } return ret; }
private static boolean doTestSetup(String testSetupSource, boolean silent) { Region r = Region.create(0, 0, 100, 100); Image img = new Image(r.getScreen().capture(r).getImage()); Pattern p = new Pattern(img); Finder f = new Finder(img);