我的英语不好) 我使用的是opencv v2.4.2
Bitmap bitmap = BitmapFactory.decodeFile(mDefaultPath + name_s + type);
Bitmap mBitmap = bitmap.copy(Bitmap.Config.ARGB_8888, false);
Mat s_image = new Mat();
Utils.bitmapToMat(mBitmap,s_image);
Mat rgb0 = new Mat();
Mat o_image = new Mat();
MatOfKeyPoint points = new MatOfKeyPoint();
FeatureDetector surf0 = FeatureDetector.create(FeatureDetector.ORB);
surf0.detect(s_image, points);
Log.d(TAG, "Sum of keypoints "+points.toList().size());
Imgproc.cvtColor(s_image, rgb0, Imgproc.COLOR_RGBA2RGB);
Features2d.drawKeypoints(rgb0, points, rgb0);
Imgproc.cvtColor(rgb0, o_image, Imgproc.COLOR_RGB2RGBA);
Utils.matToBitmap(o_image, mBitmap);
Highgui.imwrite(mDefaultPath + name_o + type, o_image);
经过这次操作后,我在屏幕上获得了normall图像(在ImageView上),但是在我的SD卡文件中,我获得了蓝色效果的图像 我认为转换位图到map的问题,或rgba到rgb和back
的问题 你可以帮帮我吗?答案 0 :(得分:4)
imwrite
函数需要传递图像中的BGR顺序。