Java Code Examples for org.opencv.android.Utils#matToBitmap()
The following examples show how to use
org.opencv.android.Utils#matToBitmap() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: MainActivity.java From MOAAP with MIT License | 7 votes |
public void DifferenceOfGaussian() { Mat grayMat = new Mat(); Mat blur1 = new Mat(); Mat blur2 = new Mat(); //Converting the image to grayscale Imgproc.cvtColor(originalMat, grayMat, Imgproc.COLOR_BGR2GRAY); Imgproc.GaussianBlur(grayMat, blur1, new Size(15, 15), 5); Imgproc.GaussianBlur(grayMat, blur2, new Size(21, 21), 5); //Subtracting the two blurred images Mat DoG = new Mat(); Core.absdiff(blur1, blur2, DoG); //Inverse Binary Thresholding Core.multiply(DoG, new Scalar(100), DoG); Imgproc.threshold(DoG, DoG, 50, 255, Imgproc.THRESH_BINARY_INV); //Converting Mat back to Bitmap Utils.matToBitmap(DoG, currentBitmap); imageView.setImageBitmap(currentBitmap); }
Example 2
Source File: TensorFlow.java From Android-Face-Recognition-with-Deep-Learning-Library with Apache License 2.0 | 6 votes |
private float[] getPixels(Mat img){ Bitmap bmp = Bitmap.createBitmap(inputSize, inputSize, Bitmap.Config.ARGB_8888); Utils.matToBitmap(img, bmp); int[] intValues = new int[inputSize * inputSize]; bmp.getPixels(intValues, 0, inputSize, 0, 0, inputSize, inputSize); float[] floatValues = new float[inputSize * inputSize * channels]; for (int i = 0; i < intValues.length; ++i) { final int val = intValues[i]; floatValues[i * 3 + 0] = (((float)((val >> 16) & 0xFF)) - imageMean) / imageStd; floatValues[i * 3 + 1] = (((float)((val >> 8) & 0xFF)) - imageMean) / imageStd; floatValues[i * 3 + 2] = (((float)(val & 0xFF)) - imageMean) / imageStd; } return floatValues; }
Example 3
Source File: ProcessHelper.java From OpenCV-android with Apache License 2.0 | 6 votes |
/** * 角点检测 * * @param origin 原始bitmap * @param callback 回调 */ public void harris(Bitmap origin, ProcessCallback callback) { if (origin == null) { return; } try { Bitmap bitmap = Bitmap.createBitmap(origin.getWidth(), origin.getHeight(), Bitmap.Config.RGB_565); Utils.bitmapToMat(origin, rgbMat); Imgproc.cvtColor(rgbMat, grayMat, Imgproc.COLOR_RGB2GRAY); Mat corners = new Mat(); Mat tempDst = new Mat(); Mat tempDstNorm = new Mat(); // 找出角点 Imgproc.cornerHarris(grayMat, tempDst, 2, 3, 0.04); // 归一化Harris角点的输出 Core.normalize(tempDst, tempDstNorm, 0, 255, Core.NORM_MINMAX); Core.convertScaleAbs(tempDstNorm, corners); // 绘制角点 Random random = new Random(); for (int i = 0; i < tempDstNorm.cols(); i++) { for (int j = 0; j < tempDstNorm.rows(); j++) { double[] value = tempDstNorm.get(j, i); if (value[0] > 250) { // 决定了画出哪些角点,值越大选择画出的点就越少 Imgproc.circle(corners, new Point(i, j), 5, new Scalar(random.nextInt(255)), 2); } } } Utils.matToBitmap(corners, bitmap); callback.onSuccess(bitmap); } catch (Exception e) { callback.onFailed(e.getMessage()); } }
Example 4
Source File: FaceRecognitionActivity.java From AndroidFaceRecognizer with MIT License | 6 votes |
private void onFaceCaptured(Mat faceMat){ capturingImage = false; final boolean willRecognizeButtonAppear = capturedMat == null; capturedMat = faceMat; final Bitmap bmp = Bitmap.createBitmap(faceMat.cols(), faceMat.rows(), Bitmap.Config.RGB_565); Utils.matToBitmap(faceMat, bmp); FaceRecognitionActivity.this.runOnUiThread(new Runnable() { @Override public void run() { capturedImage.setImageBitmap(bmp); captureButton.setBackgroundResource(R.drawable.capturestart); captureButton.setText("Start Capturing"); if(willRecognizeButtonAppear) { bringRecognizeButtonAnimatedly(); } } }); }
Example 5
Source File: MainActivity.java From MOAAP with MIT License | 5 votes |
void HarrisCorner() { Mat grayMat = new Mat(); Mat corners = new Mat(); //Converting the image to grayscale Imgproc.cvtColor(originalMat, grayMat, Imgproc.COLOR_BGR2GRAY); Mat tempDst = new Mat(); //finding contours Imgproc.cornerHarris(grayMat, tempDst, 2, 3, 0.04); //Normalizing harris corner's output Mat tempDstNorm = new Mat(); Core.normalize(tempDst, tempDstNorm, 0, 255, Core.NORM_MINMAX); Core.convertScaleAbs(tempDstNorm, corners); //Drawing corners on a new image Random r = new Random(); for (int i = 0; i < tempDstNorm.cols(); i++) { for (int j = 0; j < tempDstNorm.rows(); j++) { double[] value = tempDstNorm.get(j, i); if (value[0] > 150) Imgproc.circle(corners, new Point(i, j), 5, new Scalar(r.nextInt(255)), 2); } } //Converting Mat back to Bitmap Utils.matToBitmap(corners, currentBitmap); imageView.setImageBitmap(currentBitmap); }
Example 6
Source File: MainActivity.java From MOAAP with MIT License | 5 votes |
void HoughCircles() { Mat grayMat = new Mat(); Mat cannyEdges = new Mat(); Mat circles = new Mat(); //Converting the image to grayscale Imgproc.cvtColor(originalMat, grayMat, Imgproc.COLOR_BGR2GRAY); Imgproc.Canny(grayMat, cannyEdges, 10, 100); Imgproc.HoughCircles(cannyEdges, circles, Imgproc.CV_HOUGH_GRADIENT, 1, cannyEdges.rows() / 15);//, grayMat.rows() / 8); Mat houghCircles = new Mat(); houghCircles.create(cannyEdges.rows(), cannyEdges.cols(), CvType.CV_8UC1); //Drawing lines on the image for (int i = 0; i < circles.cols(); i++) { double[] parameters = circles.get(0, i); double x, y; int r; x = parameters[0]; y = parameters[1]; r = (int) parameters[2]; Point center = new Point(x, y); //Drawing circles on an image Imgproc.circle(houghCircles, center, r, new Scalar(255, 0, 0), 1); } //Converting Mat back to Bitmap Utils.matToBitmap(houghCircles, currentBitmap); imageView.setImageBitmap(currentBitmap); }
Example 7
Source File: MainActivity.java From MOAAP with MIT License | 5 votes |
void HoughLines() { Mat grayMat = new Mat(); Mat cannyEdges = new Mat(); Mat lines = new Mat(); //Converting the image to grayscale Imgproc.cvtColor(originalMat, grayMat, Imgproc.COLOR_BGR2GRAY); Imgproc.Canny(grayMat, cannyEdges, 10, 100); Imgproc.HoughLinesP(cannyEdges, lines, 1, Math.PI / 180, 50, 20, 20); Mat houghLines = new Mat(); houghLines.create(cannyEdges.rows(), cannyEdges.cols(), CvType.CV_8UC1); //Drawing lines on the image for (int i = 0; i < lines.cols(); i++) { double[] points = lines.get(0, i); double x1, y1, x2, y2; x1 = points[0]; y1 = points[1]; x2 = points[2]; y2 = points[3]; Point pt1 = new Point(x1, y1); Point pt2 = new Point(x2, y2); //Drawing lines on an image Imgproc.line(houghLines, pt1, pt2, new Scalar(255, 0, 0), 1); } //Converting Mat back to Bitmap Utils.matToBitmap(houghLines, currentBitmap); imageView.setImageBitmap(currentBitmap); }
Example 8
Source File: ProcessHelper.java From OpenCV-android with Apache License 2.0 | 5 votes |
/** * 灰度处理 * * @param origin 原始bitmap * @param callback 回调 */ public void gray(Bitmap origin, ProcessCallback callback) { if (origin == null) { return; } try { Bitmap bitmap = Bitmap.createBitmap(origin.getWidth(), origin.getHeight(), Bitmap.Config.RGB_565); Utils.bitmapToMat(origin, rgbMat); Imgproc.cvtColor(rgbMat, grayMat, Imgproc.COLOR_RGB2GRAY); Utils.matToBitmap(grayMat, bitmap); callback.onSuccess(bitmap); } catch (Exception e) { callback.onFailed(e.getMessage()); } }
Example 9
Source File: MainActivity.java From MOAAP with MIT License | 5 votes |
void Canny() { Mat grayMat = new Mat(); Mat cannyEdges = new Mat(); //Converting the image to grayscale Imgproc.cvtColor(originalMat, grayMat, Imgproc.COLOR_BGR2GRAY); Imgproc.Canny(grayMat, cannyEdges, 10, 100); //Converting Mat back to Bitmap Utils.matToBitmap(cannyEdges, currentBitmap); imageView.setImageBitmap(currentBitmap); }
Example 10
Source File: CameraBridgeViewBase.java From effective_android_sample with Apache License 2.0 | 4 votes |
/** * This method shall be called by the subclasses when they have valid * object and want it to be delivered to external client (via callback) and * then displayed on the screen. * @param frame - the current frame to be delivered */ protected void deliverAndDrawFrame(CvCameraViewFrame frame) { Mat modified; if (mListener != null) { modified = mListener.onCameraFrame(frame); } else { modified = frame.rgba(); } boolean bmpValid = true; if (modified != null) { try { Utils.matToBitmap(modified, mCacheBitmap); } catch(Exception e) { Log.e(TAG, "Mat type: " + modified); Log.e(TAG, "Bitmap type: " + mCacheBitmap.getWidth() + "*" + mCacheBitmap.getHeight()); Log.e(TAG, "Utils.matToBitmap() throws an exception: " + e.getMessage()); bmpValid = false; } } if (bmpValid && mCacheBitmap != null) { Canvas canvas = getHolder().lockCanvas(); if (canvas != null) { canvas.drawColor(0, android.graphics.PorterDuff.Mode.CLEAR); Log.d(TAG, "mStretch value: " + mScale); if (mScale != 0) { canvas.drawBitmap(mCacheBitmap, new Rect(0,0,mCacheBitmap.getWidth(), mCacheBitmap.getHeight()), new Rect((int)((canvas.getWidth() - mScale*mCacheBitmap.getWidth()) / 2), (int)((canvas.getHeight() - mScale*mCacheBitmap.getHeight()) / 2), (int)((canvas.getWidth() - mScale*mCacheBitmap.getWidth()) / 2 + mScale*mCacheBitmap.getWidth()), (int)((canvas.getHeight() - mScale*mCacheBitmap.getHeight()) / 2 + mScale*mCacheBitmap.getHeight())), null); } else { canvas.drawBitmap(mCacheBitmap, new Rect(0,0,mCacheBitmap.getWidth(), mCacheBitmap.getHeight()), new Rect((canvas.getWidth() - mCacheBitmap.getWidth()) / 2, (canvas.getHeight() - mCacheBitmap.getHeight()) / 2, (canvas.getWidth() - mCacheBitmap.getWidth()) / 2 + mCacheBitmap.getWidth(), (canvas.getHeight() - mCacheBitmap.getHeight()) / 2 + mCacheBitmap.getHeight()), null); } if (mFpsMeter != null) { mFpsMeter.measure(); mFpsMeter.draw(canvas, 20, 30); } getHolder().unlockCanvasAndPost(canvas); } } }
Example 11
Source File: AbstractOpenCVFrameWorker.java From Camdroid with Apache License 2.0 | 4 votes |
protected void draw() { Utils.matToBitmap(out, this.bmp); this.drawer.drawBitmap(this.bmp); }
Example 12
Source File: CameraBridgeViewBase.java From marvel with MIT License | 4 votes |
/** * This method shall be called by the subclasses when they have valid * object and want it to be delivered to external client (via callback) and * then displayed on the screen. * @param frame - the current frame to be delivered */ protected void deliverAndDrawFrame(CvCameraViewFrame frame) { Mat modified; if (mListener != null) { modified = mListener.onCameraFrame(frame); } else { modified = frame.rgba(); } boolean bmpValid = true; if (modified != null) { try { Utils.matToBitmap(modified, mCacheBitmap); } catch(Exception e) { Log.e(TAG, "Mat type: " + modified); Log.e(TAG, "Bitmap type: " + mCacheBitmap.getWidth() + "*" + mCacheBitmap.getHeight()); Log.e(TAG, "Utils.matToBitmap() throws an exception: " + e.getMessage()); bmpValid = false; } } if (bmpValid && mCacheBitmap != null) { Canvas canvas = getHolder().lockCanvas(); if (canvas != null) { canvas.drawColor(0, android.graphics.PorterDuff.Mode.CLEAR); Log.d(TAG, "mStretch value: " + mScale); if (mScale != 0) { canvas.drawBitmap(mCacheBitmap, new Rect(0,0,mCacheBitmap.getWidth(), mCacheBitmap.getHeight()), new Rect((int)((canvas.getWidth() - mScale*mCacheBitmap.getWidth()) / 2), (int)((canvas.getHeight() - mScale*mCacheBitmap.getHeight()) / 2), (int)((canvas.getWidth() - mScale*mCacheBitmap.getWidth()) / 2 + mScale*mCacheBitmap.getWidth()), (int)((canvas.getHeight() - mScale*mCacheBitmap.getHeight()) / 2 + mScale*mCacheBitmap.getHeight())), null); } else { canvas.drawBitmap(mCacheBitmap, new Rect(0,0,mCacheBitmap.getWidth(), mCacheBitmap.getHeight()), new Rect((canvas.getWidth() - mCacheBitmap.getWidth()) / 2, (canvas.getHeight() - mCacheBitmap.getHeight()) / 2, (canvas.getWidth() - mCacheBitmap.getWidth()) / 2 + mCacheBitmap.getWidth(), (canvas.getHeight() - mCacheBitmap.getHeight()) / 2 + mCacheBitmap.getHeight()), null); } if (mFpsMeter != null) { mFpsMeter.measure(); mFpsMeter.draw(canvas, 20, 30); } getHolder().unlockCanvasAndPost(canvas); } } }
Example 13
Source File: CameraBridgeViewBase.java From Camdroid with Apache License 2.0 | 4 votes |
/** * This method shall be called by the subclasses when they have valid * object and want it to be delivered to external client (via callback) and * then displayed on the screen. * @param frame - the current frame to be delivered */ protected void deliverAndDrawFrame(CvCameraViewFrame frame) { Mat modified; if (mListener != null) { modified = mListener.onCameraFrame(frame); } else { modified = frame.rgba(); } boolean bmpValid = true; if (modified != null) { try { Utils.matToBitmap(modified, mCacheBitmap); } catch(Exception e) { Log.e(TAG, "Mat type: " + modified); Log.e(TAG, "Bitmap type: " + mCacheBitmap.getWidth() + "*" + mCacheBitmap.getHeight()); Log.e(TAG, "Utils.matToBitmap() throws an exception: " + e.getMessage()); bmpValid = false; } } if (bmpValid && mCacheBitmap != null) { Canvas canvas = getHolder().lockCanvas(); if (canvas != null) { canvas.drawColor(0, android.graphics.PorterDuff.Mode.CLEAR); Log.d(TAG, "mStretch value: " + mScale); if (mScale != 0) { canvas.drawBitmap(mCacheBitmap, new Rect(0,0,mCacheBitmap.getWidth(), mCacheBitmap.getHeight()), new Rect((int)((canvas.getWidth() - mScale*mCacheBitmap.getWidth()) / 2), (int)((canvas.getHeight() - mScale*mCacheBitmap.getHeight()) / 2), (int)((canvas.getWidth() - mScale*mCacheBitmap.getWidth()) / 2 + mScale*mCacheBitmap.getWidth()), (int)((canvas.getHeight() - mScale*mCacheBitmap.getHeight()) / 2 + mScale*mCacheBitmap.getHeight())), null); } else { canvas.drawBitmap(mCacheBitmap, new Rect(0,0,mCacheBitmap.getWidth(), mCacheBitmap.getHeight()), new Rect((canvas.getWidth() - mCacheBitmap.getWidth()) / 2, (canvas.getHeight() - mCacheBitmap.getHeight()) / 2, (canvas.getWidth() - mCacheBitmap.getWidth()) / 2 + mCacheBitmap.getWidth(), (canvas.getHeight() - mCacheBitmap.getHeight()) / 2 + mCacheBitmap.getHeight()), null); } if (mFpsMeter != null) { mFpsMeter.measure(); mFpsMeter.draw(canvas, 20, 30); } getHolder().unlockCanvasAndPost(canvas); } } }
Example 14
Source File: CameraBridgeViewBase.java From OpenCV-AndroidSamples with MIT License | 4 votes |
/** * This method shall be called by the subclasses when they have valid * object and want it to be delivered to external client (via callback) and * then displayed on the screen. * @param frame - the current frame to be delivered */ protected void deliverAndDrawFrame(CvCameraViewFrame frame) { Mat modified; if (mListener != null) { modified = mListener.onCameraFrame(frame); } else { modified = frame.rgba(); } boolean bmpValid = true; if (modified != null) { try { Utils.matToBitmap(modified, mCacheBitmap); } catch(Exception e) { Log.e(TAG, "Mat type: " + modified); Log.e(TAG, "Bitmap type: " + mCacheBitmap.getWidth() + "*" + mCacheBitmap.getHeight()); Log.e(TAG, "Utils.matToBitmap() throws an exception: " + e.getMessage()); bmpValid = false; } } if (bmpValid && mCacheBitmap != null) { Canvas canvas = getHolder().lockCanvas(); if (canvas != null) { canvas.drawColor(0, android.graphics.PorterDuff.Mode.CLEAR); Log.d(TAG, "mStretch value: " + mScale); if (mScale != 0) { canvas.drawBitmap(mCacheBitmap, new Rect(0,0,mCacheBitmap.getWidth(), mCacheBitmap.getHeight()), new Rect((int)((canvas.getWidth() - mScale*mCacheBitmap.getWidth()) / 2), (int)((canvas.getHeight() - mScale*mCacheBitmap.getHeight()) / 2), (int)((canvas.getWidth() - mScale*mCacheBitmap.getWidth()) / 2 + mScale*mCacheBitmap.getWidth()), (int)((canvas.getHeight() - mScale*mCacheBitmap.getHeight()) / 2 + mScale*mCacheBitmap.getHeight())), null); } else { canvas.drawBitmap(mCacheBitmap, new Rect(0,0,mCacheBitmap.getWidth(), mCacheBitmap.getHeight()), new Rect((canvas.getWidth() - mCacheBitmap.getWidth()) / 2, (canvas.getHeight() - mCacheBitmap.getHeight()) / 2, (canvas.getWidth() - mCacheBitmap.getWidth()) / 2 + mCacheBitmap.getWidth(), (canvas.getHeight() - mCacheBitmap.getHeight()) / 2 + mCacheBitmap.getHeight()), null); } if (mFpsMeter != null) { mFpsMeter.measure(); mFpsMeter.draw(canvas, 20, 30); } getHolder().unlockCanvasAndPost(canvas); } } }
Example 15
Source File: CameraBridgeViewBase.java From Machine-Learning-Projects-for-Mobile-Applications with MIT License | 4 votes |
/** * This method shall be called by the subclasses when they have valid * object and want it to be delivered to external client (via callback) and * then displayed on the screen. * @param frame - the current frame to be delivered */ protected void deliverAndDrawFrame(CvCameraViewFrame frame) { Mat modified; if (mListener != null) { modified = mListener.onCameraFrame(frame); } else { modified = frame.rgba(); } boolean bmpValid = true; if (modified != null) { try { Utils.matToBitmap(modified, mCacheBitmap); } catch(Exception e) { Log.e(TAG, "Mat type: " + modified); Log.e(TAG, "Bitmap type: " + mCacheBitmap.getWidth() + "*" + mCacheBitmap.getHeight()); Log.e(TAG, "Utils.matToBitmap() throws an exception: " + e.getMessage()); bmpValid = false; } } if (bmpValid && mCacheBitmap != null) { Canvas canvas = getHolder().lockCanvas(); if (canvas != null) { canvas.drawColor(0, android.graphics.PorterDuff.Mode.CLEAR); Log.d(TAG, "mStretch value: " + mScale); if (mScale != 0) { canvas.drawBitmap(mCacheBitmap, new Rect(0,0,mCacheBitmap.getWidth(), mCacheBitmap.getHeight()), new Rect((int)((canvas.getWidth() - mScale*mCacheBitmap.getWidth()) / 2), (int)((canvas.getHeight() - mScale*mCacheBitmap.getHeight()) / 2), (int)((canvas.getWidth() - mScale*mCacheBitmap.getWidth()) / 2 + mScale*mCacheBitmap.getWidth()), (int)((canvas.getHeight() - mScale*mCacheBitmap.getHeight()) / 2 + mScale*mCacheBitmap.getHeight())), null); } else { canvas.drawBitmap(mCacheBitmap, new Rect(0,0,mCacheBitmap.getWidth(), mCacheBitmap.getHeight()), new Rect((canvas.getWidth() - mCacheBitmap.getWidth()) / 2, (canvas.getHeight() - mCacheBitmap.getHeight()) / 2, (canvas.getWidth() - mCacheBitmap.getWidth()) / 2 + mCacheBitmap.getWidth(), (canvas.getHeight() - mCacheBitmap.getHeight()) / 2 + mCacheBitmap.getHeight()), null); } if (mFpsMeter != null) { mFpsMeter.measure(); mFpsMeter.draw(canvas, 20, 30); } getHolder().unlockCanvasAndPost(canvas); } } }
Example 16
Source File: CameraBridgeViewBase.java From Android-Car-duino with GNU General Public License v2.0 | 4 votes |
/** * This method shall be called by the subclasses when they have valid * object and want it to be delivered to external client (via callback) and * then displayed on the screen. * @param frame - the current frame to be delivered */ protected void deliverAndDrawFrame(CvCameraViewFrame frame) { Mat modified; if (mListener != null) { modified = mListener.onCameraFrame(frame); } else { modified = frame.rgba(); } boolean bmpValid = true; if (modified != null) { try { Utils.matToBitmap(modified, mCacheBitmap); } catch(Exception e) { Log.e(TAG, "Mat type: " + modified); Log.e(TAG, "Bitmap type: " + mCacheBitmap.getWidth() + "*" + mCacheBitmap.getHeight()); Log.e(TAG, "Utils.matToBitmap() throws an exception: " + e.getMessage()); bmpValid = false; } } if (bmpValid && mCacheBitmap != null) { Canvas canvas = getHolder().lockCanvas(); if (canvas != null) { canvas.drawColor(0, android.graphics.PorterDuff.Mode.CLEAR); Log.d(TAG, "mStretch value: " + mScale); if (mScale != 0) { canvas.drawBitmap(mCacheBitmap, new Rect(0,0,mCacheBitmap.getWidth(), mCacheBitmap.getHeight()), new Rect((int)((canvas.getWidth() - mScale*mCacheBitmap.getWidth()) / 2), (int)((canvas.getHeight() - mScale*mCacheBitmap.getHeight()) / 2), (int)((canvas.getWidth() - mScale*mCacheBitmap.getWidth()) / 2 + mScale*mCacheBitmap.getWidth()), (int)((canvas.getHeight() - mScale*mCacheBitmap.getHeight()) / 2 + mScale*mCacheBitmap.getHeight())), null); } else { canvas.drawBitmap(mCacheBitmap, new Rect(0,0,mCacheBitmap.getWidth(), mCacheBitmap.getHeight()), new Rect((canvas.getWidth() - mCacheBitmap.getWidth()) / 2, (canvas.getHeight() - mCacheBitmap.getHeight()) / 2, (canvas.getWidth() - mCacheBitmap.getWidth()) / 2 + mCacheBitmap.getWidth(), (canvas.getHeight() - mCacheBitmap.getHeight()) / 2 + mCacheBitmap.getHeight()), null); } if (mFpsMeter != null) { mFpsMeter.measure(); mFpsMeter.draw(canvas, 20, 30); } getHolder().unlockCanvasAndPost(canvas); } } }
Example 17
Source File: MainActivity.java From pasm-yolov3-Android with GNU General Public License v3.0 | 4 votes |
@Override protected Mat doInBackground(Mat... mats) { Mat mRgbaTemp = mats[0]; ImageProcessor processor = new ImageProcessor(getApplicationContext(), classifier.getLabels()); if (myBitmap != null){ smallBitmap = Bitmap.createScaledBitmap(myBitmap, INPUT_SIZE, INPUT_SIZE, false); Display display = getWindowManager().getDefaultDisplay(); Point size = new Point(); display.getSize(size); int width = size.x; int height = size.y; float ratio = (float)myBitmap.getWidth() / (float)myBitmap.getHeight(); Bitmap reducedBitmap = Bitmap.createScaledBitmap(myBitmap, (int) (height * ratio), height, false); this.publishProgress(reducedBitmap); processor.loadImage(myBitmap, INPUT_SIZE, INPUT_SIZE); }else{ smallBitmap = Bitmap.createBitmap(INPUT_SIZE, INPUT_SIZE, Bitmap.Config.RGB_565); Bitmap bigBitmap = Bitmap.createBitmap(mRgbaF.width(), mRgbaF.height(), Bitmap.Config.RGB_565); Mat mRgbaFixedSize = new Mat(INPUT_SIZE, INPUT_SIZE, CvType.CV_8UC4); Core.transpose(mRgbaTemp, mRgbaT); Imgproc.resize(mRgbaT, mRgbaF, mRgbaF.size(), 0,0, 0); Core.flip(mRgbaF, mRgbaTemp, 1 ); Imgproc.resize(mRgbaTemp, mRgbaFixedSize, new Size(INPUT_SIZE, INPUT_SIZE), 0,0, 0); Utils.matToBitmap(mRgbaFixedSize, smallBitmap); Utils.matToBitmap(mRgbaTemp, bigBitmap); this.publishProgress(bigBitmap); processor.loadImage(bigBitmap, INPUT_SIZE, INPUT_SIZE); //OLD Toast.makeText(getApplicationContext(), "Nessuna immagine caricata", Toast.LENGTH_SHORT).show(); } List<Classifier.Recognition> recognitions = classifier.recognizeImage(smallBitmap); Mat mat = processor.drawBoxes(recognitions, 0.2); imageSaver.save(mat); // remove for realtime processing! return mat; }
Example 18
Source File: MainActivity.java From effective_android_sample with Apache License 2.0 | 4 votes |
/** * OpenCVで * @param bmpOrig */ private void extractObject(Bitmap bmpOrig) { // まずオリジナルのビットマップを表示 mImageView1.setImageBitmap(bmpOrig); // 高さと幅を取得 int height = bmpOrig.getHeight(); int width = bmpOrig.getWidth(); // OpenCVオブジェクトの用意 Mat matOrig = new Mat(height,width,CvType.CV_8UC4); // ビットマップをOpenCVオブジェクトに変換 Utils.bitmapToMat(bmpOrig, matOrig); /** * グレースケールに変換 */ Mat matGray = new Mat(height,width,CvType.CV_8UC1); Imgproc.cvtColor(matOrig, matGray, Imgproc.COLOR_RGB2GRAY); // 表示 Bitmap bmpGray = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); Utils.matToBitmap(matGray, bmpGray); mImageView2.setImageBitmap(bmpGray); /** * グレースケール→二値化 */ Mat matBlack = new Mat(height,width,CvType.CV_8UC1); // 二値化 Imgproc.threshold(matGray, matBlack, sTH, 255, Imgproc.THRESH_BINARY); // 表示 Bitmap bmpBlack = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); Utils.matToBitmap(matBlack, bmpBlack); mImageView3.setImageBitmap(bmpBlack); /** * グレースケール→二値化→輪郭塗りつぶし */ // 輪郭を抽出する ArrayList<MatOfPoint> contours = new ArrayList<MatOfPoint>(); Mat hierarchy = new Mat(matBlack.height(),matBlack.width(),CvType.CV_8UC1); int mode = Imgproc.RETR_EXTERNAL; int method = Imgproc.CHAIN_APPROX_SIMPLE; // 輪郭を抽出する Imgproc.findContours(matBlack, contours, hierarchy, mode, method); // 輪郭を描く Scalar color = new Scalar(255.f, 0.f, 0.f, 0.f); Imgproc.drawContours(matBlack, contours, -1, color, 2); // 表示 Bitmap bmpContour = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); org.opencv.android.Utils.matToBitmap(matBlack, bmpContour); mImageView4.setImageBitmap(bmpContour); // 抽出した輪郭の内部を塗りつぶす Imgproc.drawContours(matBlack, contours, -1, color, -1); // 表示 Bitmap bmpContour2 = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); org.opencv.android.Utils.matToBitmap(matBlack, bmpContour2); mImageView5.setImageBitmap(bmpContour2); /** * 二値化したマスクを使ってオブジェクトだけをとりだす */ Mat matObject = new Mat(height,width,CvType.CV_8UC4); Core.add(matObject, matOrig, matObject, matBlack); // 表示 Bitmap bmpObject = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); org.opencv.android.Utils.matToBitmap(matObject, bmpObject); mImageView6.setImageBitmap(bmpObject); /** * とりだしたオブジェクトに外接する矩形のみをBMPとして抜き出す */ Rect rect = Imgproc.boundingRect(contours.get(0)); Mat matCut = new Mat(matObject, rect); // 表示 Bitmap bmpCut = Bitmap.createBitmap(matCut.cols(), matCut.rows(), Bitmap.Config.ARGB_8888); org.opencv.android.Utils.matToBitmap(matCut, bmpCut); mImageView7.setImageBitmap(bmpCut); }
Example 19
Source File: ImageUtils.java From AndroidDocumentScanner with MIT License | 4 votes |
public static Bitmap matToBitmap(Mat mat) { Bitmap bitmap = Bitmap.createBitmap(mat.cols(), mat.rows(), Bitmap.Config.ARGB_8888); Utils.matToBitmap(mat, bitmap); return bitmap; }
Example 20
Source File: PersonRecognizer.java From marvel with MIT License | 3 votes |
IplImage MatToIplImage(Mat m,int width,int heigth) { Bitmap bmp=Bitmap.createBitmap(m.width(), m.height(), Bitmap.Config.ARGB_8888); Utils.matToBitmap(m, bmp); return BitmapToIplImage(bmp,width, heigth); }