Refine search
Bitmap bmp = null; Mat tmp = new Mat (height, width, CvType.CV_8U, new Scalar(4)); try { //Imgproc.cvtColor(seedsImage, tmp, Imgproc.COLOR_RGB2BGRA); Imgproc.cvtColor(seedsImage, tmp, Imgproc.COLOR_GRAY2RGBA, 4); bmp = Bitmap.createBitmap(tmp.cols(), tmp.rows(), Bitmap.Config.ARGB_8888); Utils.matToBitmap(tmp, bmp); } catch (CvException e){Log.d("Exception",e.getMessage());}
public LinkedList<CvSiftFeature> computeSiftKeypoints(BufferedImage img) { MatOfKeyPoint keypoints = new MatOfKeyPoint(); List<KeyPoint> myKeys; // 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; }
public LinkedList<CvSurfFeature> computeSurfKeypoints(BufferedImage img) { MatOfKeyPoint keypoints = new MatOfKeyPoint(); List<KeyPoint> myKeys; // 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<CvSurfFeature> myKeypoints = new LinkedList<CvSurfFeature>(); KeyPoint key; CvSurfFeature feat; for (Iterator<KeyPoint> iterator = myKeys.iterator(); iterator.hasNext(); ) { key = iterator.next(); feat = new CvSurfFeature(key.pt.x, key.pt.y, key.size, null); myKeypoints.add(feat); } return myKeypoints; }
public LinkedList<CvSurfFeature> computeSurfKeypoints(BufferedImage img) { MatOfKeyPoint keypoints = new MatOfKeyPoint(); List<KeyPoint> myKeys; // 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<CvSurfFeature> myKeypoints = new LinkedList<CvSurfFeature>(); KeyPoint key; CvSurfFeature feat; for (Iterator<KeyPoint> iterator = myKeys.iterator(); iterator.hasNext(); ) { key = iterator.next(); feat = new CvSurfFeature(key.pt.x, key.pt.y, key.size, null); myKeypoints.add(feat); } return myKeypoints; }
public LinkedList<CvSiftFeature> computeSiftKeypoints(BufferedImage img) { MatOfKeyPoint keypoints = new MatOfKeyPoint(); List<KeyPoint> myKeys; // 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; }
Mat matGray = new Mat(img.getHeight(),img.getWidth(),CvType.CV_8UC1); byte[] dataGray = new byte[matGray.rows()*matGray.cols()*(int)(matGray.elemSize())]; matGray.get(0, 0, dataGray); 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);
Mat matGray = new Mat(img.getHeight(),img.getWidth(),CvType.CV_8UC1); byte[] dataGray = new byte[matGray.rows()*matGray.cols()*(int)(matGray.elemSize())]; matGray.get(0, 0, dataGray); 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);
Mat matGray = new Mat(img.getHeight(),img.getWidth(),CvType.CV_8UC1); byte[] dataGray = new byte[matGray.rows()*matGray.cols()*(int)(matGray.elemSize())]; matGray.get(0, 0, dataGray); 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);
Mat matGray = new Mat(img.getHeight(),img.getWidth(),CvType.CV_8UC1); byte[] dataGray = new byte[matGray.rows()*matGray.cols()*(int)(matGray.elemSize())]; matGray.get(0, 0, dataGray); 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 (double factor : resizeLevels) { rfactor = factor * imgFactor; sizeBase = new Size(this.mBase.cols() / rfactor, this.mBase.rows() / rfactor); sizePattern = new Size(target.getContent().cols() / rfactor, target.getContent().rows() / rfactor); Imgproc.resize(this.mBase, mBase, sizeBase, 0, 0, Imgproc.INTER_AREA); Imgproc.resize(target.getContentBGR(), mPattern, sizePattern, 0, 0, Imgproc.INTER_AREA); Math.min(target.w + 2 * margin, mBase.width()), Math.min(target.h + 2 * margin, mBase.height())); rSub = new Rectangle(0, 0, mBase.cols(), mBase.rows()).intersection(rSub); Rect rectSub = new Rect(rSub.x, rSub.y, rSub.width, rSub.height); mResult = doFindMatch(target, mBase.submat(rectSub), null);
// obtain your homography mat (picked your parameters.. you have to play to get the right results) Mat homography = Calib3d.findHomography(src, dst, Calib3d.RANSAC, 10); // image you want to transform Mat image = Highgui.imread("image/img.jpg"); // outputMat will contain the perspectively changed image Imgproc.warpPerspective(image, outputMat, homography, new Size(image.cols(), image.rows()));
Mat b = Highgui.imread(Environment.getExternalStorageDirectory() + "/castle.jpg"); // Small watermark image Mat a = Highgui.imread(Environment.getExternalStorageDirectory() +"/square.png"); Mat bSubmat = b.submat(a.rows(), a.rows()*2, a.cols(), a.cols()*2); a.copyTo(bSubmat); Highgui.imwrite("mnt/sdcard/SubmatCopyToTest.png", b);
Mat image = imread("images/Text00.png", CV_8UC1); // Make sure it was successfully loaded. if (image == null) { System.out.println("Image not found!"); System.exit(1); } UByteBufferIndexer sI = image.createIndexer(); for (int y = 0; y < image.rows(); y++) { for (int x = 0; x < image.cols(); x++) { System.out.println( sI.get(y, x) ); } }
Mat tmp = new Mat(bitmap.getWidth(), bitmap.getHeight(), CvType.CV_8UC1); // Convert Utils.bitmapToMat(bitmap, tmp); Mat gray = new Mat(bitmap.getWidth(), bitmap.getHeight(), CvType.CV_8UC1); // Conver the color Imgproc.cvtColor(tmp, gray, Imgproc.COLOR_RGB2GRAY); // Convert back to bitmap Mat destination = new Mat(gray.rows(),gray.cols(),gray.type()); Imgproc.adaptiveThreshold(gray, destination, 255, Imgproc.ADAPTIVE_THRESH_MEAN_C, Imgproc.THRESH_BINARY_INV, 15, 4); Utils.matToBitmap(destination, bitmap); imv_binary.setImageBitmap(bitmap);
private Bitmap openCVGrayScale(final Bitmap bmpOriginal, final String filePath) { Mat imgToProcess; Mat imgToDest = new Mat(); imgToProcess = Highgui.imread(filePath, Highgui.CV_LOAD_IMAGE_GRAYSCALE); org.opencv.android.Utils.bitmapToMat(bmpOriginal, imgToProcess); Imgproc.cvtColor(imgToProcess, imgToDest, Imgproc.COLOR_BGR2GRAY); Bitmap bmpGrayscale = Bitmap.createBitmap(imgToDest.cols(), imgToDest.rows(), Bitmap.Config.ARGB_8888); org.opencv.android.Utils.matToBitmap(imgToDest, bmpGrayscale); return bmpGrayscale; }
public 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; }
public BufferedImage toBufferedImage(Mat mat) { int type = BufferedImage.TYPE_BYTE_GRAY; if (mat.channels() > 1) { type = BufferedImage.TYPE_3BYTE_BGR; } byte[] bytes = new byte[mat.channels() * mat.cols() * mat.rows()]; mat.get(0, 0, bytes); BufferedImage img = new BufferedImage(mat.cols(), mat.rows(), type); final byte[] pixels = ((DataBufferByte) img.getRaster().getDataBuffer()).getData(); System.arraycopy(bytes, 0, pixels, 0, bytes.length); return img; }