Log如下:
CvException [org.opencv.core.CvException: /Volumes/Linux/builds/master_pack-android/opencv/modules/java/generator/src/cpp/utils.cpp:33: error: (-215) info.format == ANDROID_BITMAP_FORMAT_RGBA_8888 || info.format == ANDROID_BITMAP_FORMAT_RGB_565 in function void Java_org_opencv_android_Utils_nBitmapToMat2(JNIEnv*, jclass, jobject, jlong, **oolean)
具体调用如下:
Bitmap bitmap = null;
float srcWidth = 0;
float srcHeight = 0;
try {
FileInputStream fis = new FileInputStream(image.data);
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeFileDescriptor(fis.getFD(), null, options);
srcWidth = options.outWidth;
srcHeight = options.outHeight;
int inSampleSize = 1;
options.inJustDecodeBounds = false;
if (srcHeight > 850 || srcWidth > 850) {
if (srcWidth > srcHeight) {
inSampleSize = Math.round(srcHeight / 850);
} else {
inSampleSize = Math.round(srcWidth / 850);
}
}
Log.i("1024","inSampleSize = " + inSampleSize);
options.inSampleSize = inSampleSize;
bitmap = BitmapFactory.decodeFileDescriptor(fis.getFD(), null, options);
saveBitmap(bitmap);
} catch (Exception e) {
e.printStackTrace();
}
Mat matGrey = new Mat();
Mat matSrc = new Mat(bitmap.getHeight(),bitmap.getWidth(),CV_8UC4);
Utils.bitmapToMat(bitmap,matSrc);
|