Example usage for org.opencv.core Mat get

List of usage examples for org.opencv.core Mat get

Introduction

In this page you can find the example usage for org.opencv.core Mat get.

Prototype

public int get(int row, int col, double[] data) 

Source Link

Usage

From source file:com.trandi.opentld.tld.Util.java

License:Apache License

static int getInt(final int row, final int col, final Mat mat) {
    if (CvType.CV_32SC1 != mat.type())
        throw new IllegalArgumentException(
                "Expected type is CV_32SC1, we found: " + CvType.typeToString(mat.type()));

    mat.get(row, col, _intBuff1);
    return _intBuff1[0];
}

From source file:com.trandi.opentld.tld.Util.java

License:Apache License

static float getFloat(final int row, final int col, final Mat mat) {
    if (CvType.CV_32F != mat.type())
        throw new IllegalArgumentException(
                "Expected type is CV_32F, we found: " + CvType.typeToString(mat.type()));

    mat.get(row, col, _floatBuff1);
    return _floatBuff1[0];
}

From source file:com.trandi.opentld.tld.Util.java

License:Apache License

static double getDouble(final int row, final int col, final Mat mat) {
    if (CvType.CV_64F != mat.type())
        throw new IllegalArgumentException(
                "Expected type is CV_64F, we found: " + CvType.typeToString(mat.type()));

    mat.get(row, col, _doubleBuff1);
    return _doubleBuff1[0];
}

From source file:com.ttolley.pongbot.controller.CvPanel.java

/**
 * Converts/writes a Mat into a BufferedImage.
 *
 * @param matrix Mat of type CV_8UC3 or CV_8UC1
 * @return BufferedImage of type TYPE_3BYTE_BGR or TYPE_BYTE_GRAY
 *//*from  w ww.  jav a 2 s  .c  o  m*/
public BufferedImage matToBufferedImage(Mat matrix) {
    int cols = matrix.cols();
    int rows = matrix.rows();
    int elemSize = (int) matrix.elemSize();
    byte[] data = new byte[cols * rows * elemSize];
    int type;
    matrix.get(0, 0, data);
    switch (matrix.channels()) {
    case 1:
        type = BufferedImage.TYPE_BYTE_GRAY;
        break;
    case 3:
        type = BufferedImage.TYPE_3BYTE_BGR;
        // bgr to rgb  
        byte b;
        for (int i = 0; i < data.length; i = i + 3) {
            b = data[i];
            data[i] = data[i + 2];
            data[i + 2] = b;
        }
        break;
    default:
        return null;
    }
    BufferedImage image2 = new BufferedImage(cols, rows, type);
    image2.getRaster().setDataElements(0, 0, cols, rows, data);
    return image2;
}

From source file:com.untref.gui.Editar.java

public static BufferedImage matToBufferedImage(Mat matrix) {
    BufferedImage bimg = new BufferedImage(1, 1, 1);
    if (matrix != null) {
        int cols = matrix.cols();
        int rows = matrix.rows();
        int elemSize = (int) matrix.elemSize();
        byte[] data = new byte[cols * rows * elemSize];
        int type;
        matrix.get(0, 0, data);
        switch (matrix.channels()) {
        case 1:/*from  ww  w.  j  ava2  s  .  c  om*/
            type = BufferedImage.TYPE_BYTE_GRAY;
            break;
        case 3:
            type = BufferedImage.TYPE_3BYTE_BGR;
            // bgr to rgb  
            byte b;
            for (int i = 0; i < data.length; i = i + 3) {
                b = data[i];
                data[i] = data[i + 2];
                data[i + 2] = b;
            }
            break;
        default:
            return null;
        }

        // Reuse existing BufferedImage if possible
        if (bimg == null || bimg.getWidth() != cols || bimg.getHeight() != rows || bimg.getType() != type) {
            bimg = new BufferedImage(cols, rows, type);
        }
        bimg.getRaster().setDataElements(0, 0, cols, rows, data);
    } else { // mat was null
        bimg = null;
    }
    return bimg;
}

From source file:cv.FaceDetector.java

License:Open Source License

private BufferedImage matToBufferedImage(Mat matImage) {
    BufferedImage image = new BufferedImage(matImage.width(), matImage.height(), BufferedImage.TYPE_3BYTE_BGR);
    WritableRaster raster = image.getRaster();
    DataBufferByte dataBuffer = (DataBufferByte) raster.getDataBuffer();
    byte[] data = dataBuffer.getData();
    matImage.get(0, 0, data);
    return image;
}

From source file:cv.recon.util.MatFXUtils.java

License:Open Source License

/**
 * Convert from OpenCV Mat to JavaFX WritableImage to be displayed in
 * ImageView./*from www.  j av a  2s .  c  o  m*/
 * @param mat Mat to be converted
 * @param writableImage Optional WritableImage, if non-null, the Mat will be
 * written in this WritableImage
 * @return A WritableImage to be used for JavaFX, return null if already
 * supplied with WritableImage
 */
public static WritableImage toFXImage(Mat mat, WritableImage writableImage) {
    int width = mat.width();
    int height = mat.height();
    int channels = mat.channels();
    byte[] sourcePixels = new byte[width * height * channels];
    mat.get(0, 0, sourcePixels);

    BufferedImage bufferedImage;
    if (mat.channels() > 1) {
        bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_3BYTE_BGR);
    } else {
        bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_BYTE_GRAY);
    }

    final byte[] targetPixels = ((DataBufferByte) bufferedImage.getRaster().getDataBuffer()).getData();
    System.arraycopy(sourcePixels, 0, targetPixels, 0, sourcePixels.length);

    if (writableImage == null) {
        WritableImage outputImage = SwingFXUtils.toFXImage(bufferedImage, null);
        return outputImage;
    } else {
        SwingFXUtils.toFXImage(bufferedImage, writableImage);
        return null;
    }
}

From source file:depthDataFromStereoCamsOpenCV.ProcessImages.java

/**
 * Mat2BufferedImage//from  w w  w. j a  va  2  s  . c  o m
 * @param Mat m
 * @return BufferedImage
 */

public static BufferedImage Mat2BufferedImage(Mat m) {
    // source: http://answers.opencv.org/question/10344/opencv-java-load-image-to-gui/
    // Fastest code
    // The output can be assigned either to a BufferedImage or to an Image

    int type = BufferedImage.TYPE_BYTE_GRAY;
    if (m.channels() > 1) {
        type = BufferedImage.TYPE_3BYTE_BGR;
    }
    int bufferSize = m.channels() * m.cols() * m.rows();
    byte[] b = new byte[bufferSize];
    m.get(0, 0, b); // get all the pixels
    BufferedImage image = new BufferedImage(m.cols(), m.rows(), type);
    final byte[] targetPixels = ((DataBufferByte) image.getRaster().getDataBuffer()).getData();
    System.arraycopy(b, 0, targetPixels, 0, b.length);
    return image;

}

From source file:detectiontest.ImageDisplayer.java

public static BufferedImage toBufferedImage(Mat m) {
    int type = BufferedImage.TYPE_BYTE_GRAY;
    if (m.channels() > 1) {
        type = BufferedImage.TYPE_3BYTE_BGR;
    }/*  w w  w . j  a  v a2  s  . c om*/
    int bufferSize = m.channels() * m.cols() * m.rows();
    byte[] b = new byte[bufferSize];
    m.get(0, 0, b); // get all the pixels
    BufferedImage image = new BufferedImage(m.cols(), m.rows(), type);
    final byte[] targetPixels = ((DataBufferByte) image.getRaster().getDataBuffer()).getData();
    System.arraycopy(b, 0, targetPixels, 0, b.length);
    return image;
}

From source file:dfmDrone.examples.fitEllipseExample.java

public static Image toBufferedImage(Mat m) {
    int type = BufferedImage.TYPE_BYTE_GRAY;
    if (m.channels() > 1)
        type = BufferedImage.TYPE_3BYTE_BGR;

    int bufferSize = m.channels() * m.cols() * m.rows();
    byte[] b = new byte[bufferSize];
    m.get(0, 0, b); // get all the pixels
    BufferedImage image = new BufferedImage(m.cols(), m.rows(), type);
    final byte[] targetPixels = ((DataBufferByte) image.getRaster().getDataBuffer()).getData();
    System.arraycopy(b, 0, targetPixels, 0, b.length);
    return image;
}