Ask Your Question

Revision history [back]

Display Keypoints on Image in Android - OpenCV

I'm trying display a image with keypoints detected. In my code, i get a list of key points, my i can't display the image on screen. I think that my problem is on converting the image to bitmap from MAT. What i'm doing wrong ?

Here is my code:

Mat teste = new Mat(); Mat mRgba = teste.clone(); Mat outputMat = new Mat();

BitmapDrawable drawable = (BitmapDrawable) imageView.getDrawable(); Bitmap bitmap = drawable.getBitmap(); Utils.bitmapToMat(bitmap, teste);

MatOfKeyPoint myKeyPoints = new MatOfKeyPoint(); FeatureDetector orb = FeatureDetector.create(FeatureDetector.ORB); orb.detect(teste, myKeyPoints);

List<keypoint> referenceKeypointsList = myKeyPoints.toList();

Imgproc.cvtColor(teste, mRgba, Imgproc.COLOR_RGBA2RGB,4); Features2d.drawKeypoints(mRgba, myKeyPoints, mRgba, new Scalar(2,254,255), Features2d.DRAW_RICH_KEYPOINTS); Imgproc.cvtColor(mRgba, outputMat, Imgproc.COLOR_RGB2RGBA); Utils.matToBitmap(outputMat, bitmap);

imageView.setImageBitmap(bitmap);