Example usage for org.opencv.core Mat put

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

Introduction

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

Prototype

public int put(int row, int col, byte[] data) 

Source Link

Usage

From source file:io.appium.java_client.ScreenshotState.java

License:Apache License

private static Mat prepareImageForComparison(BufferedImage srcImage) {
    final BufferedImage normalizedBitmap = new BufferedImage(srcImage.getWidth(), srcImage.getHeight(),
            BufferedImage.TYPE_3BYTE_BGR);
    final Graphics2D g = normalizedBitmap.createGraphics();
    try {// www.j a  v  a  2 s .  c  om
        g.setComposite(AlphaComposite.Src);
        g.drawImage(srcImage, 0, 0, null);
    } finally {
        g.dispose();
    }
    final byte[] pixels = ((DataBufferByte) normalizedBitmap.getRaster().getDataBuffer()).getData();
    final Mat result = new Mat(normalizedBitmap.getHeight(), normalizedBitmap.getWidth(), CvType.CV_8UC3);
    result.put(0, 0, pixels);
    return result;
}

From source file:javaapplication1.Ocv.java

void directManip(String input, String output) {
    // load the image and read it into a matrix
    File f2 = new File(input);
    Mat image = Highgui.imread(this.input);

    // we're know we're working in 24-bit color dept, so prepare a 3-byte
    // array for storing cells from the Matrix
    byte[] vec3 = new byte[3];

    // Note: we are traversing every other column and every other row
    for (int i = 0; i < image.cols(); i += 2) {
        for (int j = 0; j < image.rows(); j += 2) {
            // get pixel, just to show how to get pixels...
            image.get(j, i, vec3);/* ww  w  . ja  v a  2  s.  c  o  m*/
            // create a zero pixel
            for (int z = 0; z < 3; ++z)
                vec3[z] = 0;
            // set the current pixel to zero
            image.put(j, i, vec3);
        }
    }

    // output the file
    Highgui.imwrite(this.output, image);
}

From source file:javafx1.JavaFX1.java

public Image bildLaden() {
        Image zwischenBild = null;

        try {/*from   w  ww  . j  a v a 2  s  .  c  o  m*/
            File input = new File("D:/_piCam/bild.jpg");
            //FileInputStream bi = ImageIO.read(input);
            BufferedImage bi = ImageIO.read(input);

            byte[] data = ((DataBufferByte) bi.getRaster().getDataBuffer()).getData();
            Mat mat = new Mat(bi.getHeight(), bi.getWidth(), CvType.CV_8UC3);
            mat.put(0, 0, data);

            Mat bild = new Mat(bi.getHeight(), bi.getWidth(), CvType.CV_8UC1);
            Imgproc.cvtColor(mat, bild, Imgproc.COLOR_BGR2GRAY);

            byte[] data1 = new byte[bild.rows() * bild.cols() * (int) (bild.elemSize())];
            bild.get(0, 0, data1);
            BufferedImage image1 = new BufferedImage(bild.cols(), bild.rows(), BufferedImage.TYPE_BYTE_GRAY);
            image1.getRaster().setDataElements(0, 0, bild.cols(), bild.rows(), data1);

            File ouptut = new File("D:/xml/grayscale2.jpg");
            //ImageIO.write(image1, "jpg", ouptut);
            BufferedImage gray = image1.getSubimage(0, 0, image1.getTileWidth(), image1.getHeight());
            zwischenBild = SwingFXUtils.toFXImage(gray, null);

        } catch (IOException ex) {
            System.out.println("Fehler beim Bild laden...");
        }
        return zwischenBild;
    }

From source file:javafx1.JavaFX1.java

private Image analyzePic(BufferedImage bi) {
        //System.out.println("height:" + bi.getHeight() + ", width:" + bi.getWidth());
        //bi = bi.getSubimage(100, 100, 50, 50);
        // Originalbild nach MAT
        byte[] data = ((DataBufferByte) bi.getRaster().getDataBuffer()).getData();
        Mat matOrigin = new Mat(bi.getHeight(), bi.getWidth(), CvType.CV_8UC3);
        matOrigin.put(0, 0, data);
        //+Core.addWeighted();
        //+Imgproc.threshold(matOrigin, matOrigin, thresh, maxval, type)
        //+Core.bitwise_xor(matOrigin, matOrigin, matOrigin);

        // fr graubild
        Mat matManipulate = new Mat(bi.getHeight(), bi.getWidth(), CvType.CV_8UC1);
        // in Graubild wandeln von...nach
        // Imgproc.cvtColor(matOrigin, matManipulate, Imgproc.COLOR_BGR2GRAY);
        // Imgproc.blur(matManipulate, matManipulate, new Size(3, 3));
        matManipulate = doCanny(matOrigin);
        //aus Mat in BufferedImagae zurckwandeln
        //  byte[] data1 = new byte[matManipulate.rows() * matManipulate.cols() * (int) (matManipulate.elemSize())];
        //  matManipulate.get(0, 0, data1);
        //  BufferedImage biManipulate = new BufferedImage(matManipulate.cols(), matManipulate.rows(), BufferedImage.TYPE_BYTE_GRAY);
        //  biManipulate.getRaster().setDataElements(0, 0, matManipulate.cols(), matManipulate.rows(), data1);
        // BufferedImage gray = image1.getSubimage(0, 0, image1.getTileWidth(), image1.getHeight());
        //return biManipulate;
        matManipulate = doBackgroundRemoval(matManipulate);
        Rect r = new Rect(230, 10, 55, 40);
        Mat m = new Mat(matOrigin, r);
        //return mat2Image(matOrigin);
        return mat2Image(m);

    }//from   w w  w.  ja  v a 2 s. c  o  m

From source file:main.PGMReader.java

public Mat readImage(String path) {
    FileInputStream fin;/*from   ww w.  ja v a  2  s . c  o m*/
    int cols = 0;
    int rows = 0;
    int maxgray = 0;
    int pixels[][];

    try {
        fin = new FileInputStream(path);

        int tr, tc, c;
        String tstr;

        //read first line of ImageHeader
        tstr = "";
        c = fin.read();
        tstr += (char) c;
        c = fin.read();
        tstr += (char) c;
        //type = tstr;

        //read second line of ImageHeader
        c = fin.read(); //read Lf (linefeed)

        while (c == 10 || c == 13) {
            c = fin.read();
        }

        //c = fin.read(); //read '#'
        tstr = "";
        boolean iscomment = false;
        while ((char) c == '#') //read comment
        {
            iscomment = true;
            tstr += (char) c;
            while (c != 10 && c != 13) {
                c = fin.read();
                tstr += (char) c;
            }
            c = fin.read(); //read next '#'
        }
        //comment = tstr;

        //read third line of ImageHeader
        //read cols
        if (iscomment == true) {
            c = fin.read();
            tstr = "";
            //tstr += (char) c;
        }

        tstr += (char) c;

        while (c != 32 && c != 10 && c != 13) {
            c = fin.read();
            tstr += (char) c;
        }
        tstr = tstr.substring(0, tstr.length() - 1);
        cols = Integer.parseInt(tstr);

        //read rows
        c = fin.read();

        tstr = "";
        tstr += (char) c;
        while (c != 32 && c != 10 && c != 13) {
            c = fin.read();
            tstr += (char) c;
        }
        tstr = tstr.substring(0, tstr.length() - 1);
        rows = Integer.parseInt(tstr);

        //read maxgray
        c = fin.read();

        while (c == 10 || c == 13) {
            c = fin.read();
        }

        tstr = "";
        tstr += (char) c;
        while (c != 32 && c != 10 && c != 13) {
            c = fin.read();
            tstr += (char) c;
        }
        tstr = tstr.substring(0, tstr.length() - 1);
        maxgray = Integer.parseInt(tstr);

        //read pixels from ImageData
        pixels = new int[rows][cols];
        for (tr = 0; tr < rows; tr++) {
            for (tc = 0; tc < cols; tc++) {
                c = (int) fin.read();
                //setPixel(tr, tc, c);
                pixels[tr][tc] = c;
            }
        }

        Mat mat = new Mat(rows, cols, CvType.CV_8UC1);
        //byte[] data = ((DataBufferByte) bi.getRaster().getDataBuffer()).getData();
        for (int row = 0; row < rows; row++) {

            for (int col = 0; col < cols; col++) {
                mat.put(row, col, pixels[row][col]);
            }

        }

        fin.close();

        //mat.put(0, 0, data);
        return mat;

    } catch (Exception e) {
        System.out.println("Error: " + e.getMessage());
    }

    return null;
}

From source file:model.grayscaleClass.java

/**
 *
 * @param image/*from   w ww .j  ava 2 s  .  c o  m*/
* @return
 */
public File imagePreprocessing(String image, String ex) {
    BufferedImage bImge = null;
    BufferedImage bImage2 = null;
    File grayscle = null;

    try {

        // loadOpenCV_Lib();
        //String path = "opencv\\build\\java\\x64\\opencv_java300.dll";
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
        FileInputStream fileName = new FileInputStream(
                "C:\\bimla\\Dev\\java\\OCRSystem\\WebContent\\uploadedImage\\" + image);
        InputStream input = fileName;
        bImge = ImageIO.read(input);
        byte[] imgeByte = ((DataBufferByte) bImge.getRaster().getDataBuffer()).getData();
        Mat mat1 = new Mat(bImge.getHeight(), bImge.getWidth(), CvType.CV_8UC3);
        mat1.put(0, 0, imgeByte);
        Mat mat2 = new Mat(bImge.getHeight(), bImge.getWidth(), CvType.CV_8UC1);
        Imgproc.cvtColor(mat1, mat2, Imgproc.COLOR_RGB2GRAY);
        byte[] imageData = new byte[mat2.rows() * mat2.cols() * (int) (mat2.elemSize())];
        mat2.get(0, 0, imageData);
        bImage2 = new BufferedImage(mat2.cols(), mat2.rows(), BufferedImage.TYPE_BYTE_GRAY);
        bImage2.getRaster().setDataElements(0, 0, mat2.cols(), mat2.rows(), imageData);

        String extn = null;
        /*   switch (extnsn) {
               case ".jpg":
           extn = "jpg";
           break;
               case ".png":
           extn = "png";
           break;
               case ".pdf":
           extn = "pdf";
           break;
               case ".tiff":
           extn = "tif";
           break;
                
           }*/
        //writing the grayscale image to the folder
        grayscle = new File(
                "C:\\bimla\\Dev\\java\\OCRSystem\\WebContent\\uploadedImage\\grayscale" + "." + "jpg");
        ImageIO.write(bImage2, "jpg", grayscle);
    } catch (IOException ex1) {
        System.out.println("" + ex1.getMessage());
    } catch (Exception ex1) {
        Logger.getLogger(grayscaleClass.class.getName()).log(Level.SEVERE, null, ex1);
    }
    return grayscle;

}

From source file:net.bsrc.cbod.opencv.OpenCV.java

/**
 * Helper method// www . j  av  a  2 s .  com
 *
 * @param org
 * @param list
 * @return
 */
private static Mat getImageWithBlackBg(Mat org, List<Point> list) {

    Mat region = Mat.zeros(org.size(), org.type());

    for (Point p : list) {
        int row = (int) p.y;
        int col = (int) p.x;
        region.put(row, col, org.get(row, col));
    }

    return region;
}

From source file:net.semanticmetadata.lire.imageanalysis.features.local.opencvfeatures.CvSiftExtractor.java

License:Open Source License

@Override
public void extract(BufferedImage img) {
    MatOfKeyPoint keypoints = new MatOfKeyPoint();
    Mat descriptors = new Mat();
    List<KeyPoint> myKeys;//from  www  . j  a v a  2s. co m
    //        Mat img_object = Highgui.imread(image, 0); //0 = CV_LOAD_IMAGE_GRAYSCALE
    //        detector.detect(img_object, keypoints);
    byte[] data = ((DataBufferByte) img.getRaster().getDataBuffer()).getData();
    Mat matRGB = new Mat(img.getHeight(), img.getWidth(), CvType.CV_8UC3);
    matRGB.put(0, 0, data);
    Mat matGray = new Mat(img.getHeight(), img.getWidth(), CvType.CV_8UC1);
    Imgproc.cvtColor(matRGB, matGray, Imgproc.COLOR_BGR2GRAY); //TODO: RGB or BGR?
    byte[] dataGray = new byte[matGray.rows() * matGray.cols() * (int) (matGray.elemSize())];
    matGray.get(0, 0, dataGray);

    detector.detect(matGray, keypoints);
    extractor.compute(matGray, keypoints, descriptors);
    myKeys = keypoints.toList();

    features = new LinkedList<CvSiftFeature>();
    KeyPoint key;
    CvSiftFeature feat;
    double[] desc;
    int cols, rows = myKeys.size();
    for (int i = 0; i < rows; i++) {
        cols = (descriptors.row(i)).cols();
        desc = new double[cols];
        key = myKeys.get(i);
        for (int j = 0; j < cols; j++) {
            desc[j] = descriptors.get(i, j)[0];
        }
        feat = new CvSiftFeature(key.pt.x, key.pt.y, key.size, desc);
        features.add(feat);
    }
}

From source file:net.semanticmetadata.lire.imageanalysis.features.local.opencvfeatures.CvSiftExtractor.java

License:Open Source License

public LinkedList<CvSiftFeature> computeSiftKeypoints(BufferedImage img) {
    MatOfKeyPoint keypoints = new MatOfKeyPoint();
    List<KeyPoint> myKeys;//from  w  ww.  j ava 2 s .  c o  m
    //        Mat img_object = Highgui.imread(image, 0); //0 = CV_LOAD_IMAGE_GRAYSCALE
    //        detector.detect(img_object, keypoints);
    byte[] data = ((DataBufferByte) img.getRaster().getDataBuffer()).getData();
    Mat matRGB = new Mat(img.getHeight(), img.getWidth(), CvType.CV_8UC3);
    matRGB.put(0, 0, data);
    Mat matGray = new Mat(img.getHeight(), img.getWidth(), CvType.CV_8UC1);
    Imgproc.cvtColor(matRGB, matGray, Imgproc.COLOR_BGR2GRAY); //TODO: RGB or BGR?
    byte[] dataGray = new byte[matGray.rows() * matGray.cols() * (int) (matGray.elemSize())];
    matGray.get(0, 0, dataGray);

    detector.detect(matGray, keypoints);
    myKeys = keypoints.toList();

    LinkedList<CvSiftFeature> myKeypoints = new LinkedList<CvSiftFeature>();
    KeyPoint key;
    CvSiftFeature feat;
    for (Iterator<KeyPoint> iterator = myKeys.iterator(); iterator.hasNext();) {
        key = iterator.next();
        feat = new CvSiftFeature(key.pt.x, key.pt.y, key.size, null);
        myKeypoints.add(feat);
    }

    return myKeypoints;
}

From source file:net.semanticmetadata.lire.imageanalysis.features.local.opencvfeatures.CvSurfExtractor.java

License:Open Source License

@Override
public void extract(BufferedImage img) {
    MatOfKeyPoint keypoints = new MatOfKeyPoint();
    Mat descriptors = new Mat();
    List<KeyPoint> myKeys;//from   ww  w  . j  av  a2s  .com
    //        Mat img_object = Highgui.imread(image, 0); //0 = CV_LOAD_IMAGE_GRAYSCALE
    //        detector.detect(img_object, keypoints);
    byte[] data = ((DataBufferByte) img.getRaster().getDataBuffer()).getData();
    Mat matRGB = new Mat(img.getHeight(), img.getWidth(), CvType.CV_8UC3);
    matRGB.put(0, 0, data);
    Mat matGray = new Mat(img.getHeight(), img.getWidth(), CvType.CV_8UC1);
    Imgproc.cvtColor(matRGB, matGray, Imgproc.COLOR_BGR2GRAY); //TODO: RGB or BGR?
    byte[] dataGray = new byte[matGray.rows() * matGray.cols() * (int) (matGray.elemSize())];
    matGray.get(0, 0, dataGray);

    detector.detect(matGray, keypoints);
    extractor.compute(matGray, keypoints, descriptors);
    myKeys = keypoints.toList();

    features = new LinkedList<CvSurfFeature>();
    KeyPoint key;
    CvSurfFeature feat;
    double[] desc;
    int cols, rows = myKeys.size();
    for (int i = 0; i < rows; i++) {
        cols = (descriptors.row(i)).cols();
        desc = new double[cols];
        key = myKeys.get(i);
        for (int j = 0; j < cols; j++) {
            desc[j] = descriptors.get(i, j)[0];
        }
        feat = new CvSurfFeature(key.pt.x, key.pt.y, key.size, desc);
        features.add(feat);
    }
}