我收到此错误。
java.lang.IllegalArgumentException:bmp == null
我提到了此链接
OpenCV - Android : java.lang.IllegalArgumentException: bmp == null
所以我编写了这样的代码。
inputBitmap.createBitmap(matInput.cols(),matInput.rows(), Bitmap.Config.ARGB_8888);
这是我与位图有关的代码
private ImageView imageView_matInput;
private ImageView imageView_matResult;
private Mat matInput;
private Mat image_matches;
Bitmap myBitmap = null;
Bitmap inputBitmap = null;
Bitmap resultBitmap = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
matInput = new Mat();
image_matches = new Mat();
imageView_matInput = (ImageView)findViewById(R.id.imageView_matInput);
imageView_matResult = (ImageView)findViewById(R.id.imageView_matResult);
File imageFile = new File(Global.imageFileName);
if(imageFile.exists()) {
myBitmap = BitmapFactory.decodeFile(imageFile.getAbsolutePath());
Log.d(TAG, imageFile.getAbsolutePath());
}
processingImage();
}
public void processingImage() {
Utils.bitmapToMat(myBitmap, matInput);
Imgproc.cvtColor(matInput, matInput, Imgproc.COLOR_RGB2GRAY);
surfWithFlann4(matInput.getNativeObjAddr(), image_matches.getNativeObjAddr());
Imgproc.resize(image_matches, image_matches, matInput.size());
inputBitmap.createBitmap(matInput.cols(), matInput.rows(), Bitmap.Config.ARGB_8888);
Utils.matToBitmap(matInput, inputBitmap);
resultBitmap.createBitmap(image_matches.cols(), image_matches.rows(), Bitmap.Config.ARGB_8888);
Utils.matToBitmap(image_matches, resultBitmap);
imageView_matInput.setImageBitmap(inputBitmap);
imageView_matResult.setImageBitmap(resultBitmap);
}
Global是一个类,具有相机拍摄的图像的路径。
matInput不为null,surfWithFlann4是一个本机函数,用于将相机拍摄的图片与资产目录中的图像进行比较。
java.lang.IllegalArgumentException: bmp == null
错误在这里发生
Utils.matToBitmap(matInput,inputBitmap);