List of usage examples for org.opencv.imgcodecs Imgcodecs imencode
public static boolean imencode(String ext, Mat img, MatOfByte buf)
From source file:app.device.manager.Source.java
/** * /*from w w w. j av a2 s.com*/ * @return * @throws IOException */ public BufferedImage getFrame() throws IOException { if (!this.device.grab()) return null; this.device.retrieve(this.frame); Imgcodecs.imencode(".bmp", this.frame, this.buffer); return (BufferedImage) ImageIO.read(new ByteArrayInputStream(this.buffer.toArray())); }
From source file:bikecalibration.Utils.java
/** * Convert OpenCV Mat to JavaFX Image (using bmp) * * @param img/*from www .j av a2 s .c om*/ * @return */ public static Image matToImage(Mat img) { MatOfByte byteMat = new MatOfByte(); Imgcodecs.imencode("*.bmp", img, byteMat); return new Image(new ByteArrayInputStream(byteMat.toArray())); }
From source file:br.com.prj.TelaPrincipal.java
/** * Converte um Mat em Image/*from w w w .j a v a 2s . co m*/ * * @param m * @return new Image() */ public Image convertMatToImage(Mat m) { MatOfByte bytemat = new MatOfByte(); Imgcodecs.imencode(".jpg", m, bytemat); byte[] bytes = bytemat.toArray(); InputStream in = new ByteArrayInputStream(bytes); try { return ImageIO.read(in); } catch (IOException ex) { Logger.getLogger(TelaPrincipal.class.getName()).log(Level.SEVERE, null, ex); return null; } }
From source file:camviewer.VideoThread.java
@Override public void run() { synchronized (this) { while (runnable) { if (webSource.grab()) { try { webSource.retrieve(frame); Imgcodecs.imencode(".bmp", frame, mem); Image im = ImageIO.read(new ByteArrayInputStream(mem.toArray())); BufferedImage buff = (BufferedImage) im; Graphics g = panel.getGraphics(); if (g.drawImage(buff, 1, 1, panel.getWidth() - 1, panel.getHeight() - 1, 0, 0, buff.getWidth(), buff.getHeight(), null)) if (runnable == false) { System.out.println("Going to wait()"); this.wait(); }/*from ww w. ja v a2s . co m*/ g.drawRect(0, 0, panel.getWidth() - 1, panel.getHeight() - 1); } catch (IOException | InterruptedException ex) { System.out.println("Error" + ex); } } } } }
From source file:carmelo.CameraTask.java
private Image createImageFromMat(Mat src) { MatOfByte dst = new MatOfByte(); Imgcodecs.imencode(".bmp", src, dst); return new Image(new ByteArrayInputStream(dst.toArray())); }
From source file:cctvanalization.FXMLDocumentController.java
private Image grabFrame() { if (applicationShouldClose) { if (videoCapture.isOpened()) { videoCapture.release();/*from w ww . j av a 2s . c o m*/ } scheduledExecutorService.shutdown(); } Image imageToShow = null; Mat frame = new Mat(); // Mat prevFrame = new Mat(grabbedImagesPrev.get(grabbedImagesPrev.size() - 1)); int frameNum = 0; if (videoCapture.isOpened()) { try { videoCapture.read(frame); if (!frame.empty()) { Imgproc.cvtColor(frame, frame, Imgproc.COLOR_BGR2GRAY); MatOfByte buffer = new MatOfByte(); Imgcodecs.imencode(".png", frame, buffer); imageToShow = new Image(new ByteArrayInputStream(buffer.toArray())); grabbedFramesTemp.removeAll(grabbedFramesTemp); if (grabbedFramesPrev.size() < 10) { grabbedFramesPrev.add(frame); } else { for (int i = 1; i < grabbedFramesPrev.size(); i++) { grabbedFramesTemp.add(grabbedFramesPrev.get(i)); } grabbedFramesPrev.removeAll(grabbedFramesPrev); for (int i = 0; i < grabbedFramesTemp.size(); i++) { grabbedFramesPrev.add(grabbedFramesTemp.get(i)); } grabbedFramesPrev.add(frame); } } } catch (Exception e) { System.err.println(e); } } return imageToShow; }
From source file:com.armeniopinto.stress.control.vision.VisionAgent.java
public byte[] getCapturedFrame() { final MatOfByte frameBytes = new MatOfByte(); synchronized (capturedFrame) { Imgcodecs.imencode(".jpg", capturedFrame, frameBytes); }//from w ww.j a v a 2s . c o m final byte[] bytes = frameBytes.toArray(); frameBytes.release(); return bytes; }
From source file:com.jeremydyer.nifi.CropImageProcessor.java
License:Apache License
final public void cropImage(final ProcessSession session, ProcessContext context, FlowFile original, final Mat image) { final int x = context.getProperty(X_POINT).evaluateAttributeExpressions(original).asInteger(); final int y = context.getProperty(Y_POINT).evaluateAttributeExpressions(original).asInteger(); final int width = context.getProperty(CROP_WIDTH).evaluateAttributeExpressions(original).asInteger(); final int height = context.getProperty(CROP_HEIGHT).evaluateAttributeExpressions(original).asInteger(); FlowFile croppedImage = session.write(session.create(original), new OutputStreamCallback() { @Override/*w w w. j a v a2 s. c om*/ public void process(OutputStream outputStream) throws IOException { Rect rectCrop = new Rect(x, y, width, height); Mat croppedImage = new Mat(image, rectCrop); MatOfByte updatedImage = new MatOfByte(); Imgcodecs.imencode(".jpg", croppedImage, updatedImage); outputStream.write(updatedImage.toArray()); } }); Map<String, String> atts = new HashMap<>(); atts.put("image.width", new Integer(width).toString()); atts.put("image.height", new Integer(height).toString()); croppedImage = session.putAllAttributes(croppedImage, atts); session.transfer(croppedImage, REL_CROPPED_IMAGE); }
From source file:com.jeremydyer.nifi.GetCameraFrame.java
License:Apache License
@Override public void onTrigger(final ProcessContext context, final ProcessSession session) throws ProcessException { MatOfByte image = new MatOfByte(); MatOfByte bytemat = new MatOfByte(); camera.read(image);// ww w. ja v a2 s. c o m Imgcodecs.imencode(".png", image, bytemat); byte[] bytes = bytemat.toArray(); InputStream in = new ByteArrayInputStream(bytes); try { final BufferedImage img = ImageIO.read(in); FlowFile flowFile = session.create(); flowFile = session.write(flowFile, new OutputStreamCallback() { @Override public void process(final OutputStream out) throws IOException { ImageIO.write(img, "PNG", out); } }); session.getProvenanceReporter().create(flowFile); session.transfer(flowFile, REL_SUCCESS); } catch (IOException e) { } }
From source file:com.jeremydyer.nifi.ObjectDetectionProcessor.java
License:Apache License
final public Mat detectObjects(final ProcessSession session, FlowFile original, final JSONObject dd, final Mat image) { CascadeClassifier objectDetector = new CascadeClassifier(dd.getString("opencv_xml_cascade_path")); MatOfRect objectDetections = new MatOfRect(); objectDetector.detectMultiScale(image, objectDetections); //getLogger().error("Detected " + objectDetections.toArray().length + " " + dd.getString("name") + " objects in the input flowfile"); final AtomicReference<Mat> croppedImageReference = new AtomicReference<>(); int counter = 0; for (int i = 0; i < objectDetections.toArray().length; i++) { final Rect rect = objectDetections.toArray()[i]; FlowFile detection = session.write(session.create(original), new OutputStreamCallback() { @Override/*w w w . j av a 2 s . c om*/ public void process(OutputStream outputStream) throws IOException { Mat croppedImage = null; //Should the image be cropped? If so there is no need to draw bounds because that would be the same as the cropping if (dd.getBoolean("crop")) { Rect rectCrop = new Rect(rect.x, rect.y, rect.width, rect.height); croppedImage = new Mat(image, rectCrop); MatOfByte updatedImage = new MatOfByte(); Imgcodecs.imencode(".jpg", croppedImage, updatedImage); croppedImageReference.set(croppedImage); outputStream.write(updatedImage.toArray()); } else { //Should the image have a border drawn around it? if (dd.getBoolean("drawBounds")) { Mat imageWithBorder = image.clone(); Imgproc.rectangle(imageWithBorder, new Point(rect.x, rect.y), new Point(rect.x + rect.width, rect.y + rect.height), new Scalar(255, 255, 255)); MatOfByte updatedImage = new MatOfByte(); Imgcodecs.imencode(".jpg", imageWithBorder, updatedImage); outputStream.write(updatedImage.toArray()); } else { MatOfByte updatedImage = new MatOfByte(); Imgcodecs.imencode(".jpg", image, updatedImage); outputStream.write(updatedImage.toArray()); } } } }); Map<String, String> atts = new HashMap<>(); atts.put("object.detection.name", dd.getString("name")); atts.put("object.detection.id", new Long(System.currentTimeMillis() + counter).toString()); counter++; detection = session.putAllAttributes(detection, atts); session.transfer(detection, REL_OBJECT_DETECTED); } Mat childResponse = null; if (croppedImageReference.get() != null) { childResponse = croppedImageReference.get(); } else { childResponse = image; } if (dd.has("children")) { JSONArray children = dd.getJSONArray("children"); if (children != null) { for (int i = 0; i < children.length(); i++) { JSONObject ddd = children.getJSONObject(i); childResponse = detectObjects(session, original, ddd, childResponse); } } } return childResponse; }