List of usage examples for org.opencv.core Mat put
public int put(int row, int col, byte[] data)
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); } }