所以我有这张图片,我在我的 SQLite 数据库中放入了一个 Blob
我接下来要做的是从数据库中读出 blob(所以我将 blob 转换为位图)。然后我把这个位图变成一个垫子(因为我需要将它用于我的特征描述符)但我最终得到的是以下垫子:
如您所见,颜色都是错误的。这是我的代码:
BitmapFactory.Options bmpFactoryOptions = new BitmapFactory.Options();
bmpFactoryOptions.inPreferredConfig = Bitmap.Config.ARGB_8888;
bmpFactoryOptions.inScaled = false;
bmpFactoryOptions.outHeight = 240;
bmpFactoryOptions.outWidth = 320;
// decodes the blob back into a bitmap
byte[] blob = contact.getMP();
ByteArrayInputStream inputStream = new ByteArrayInputStream(blob);
Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
Bitmap scalen = Bitmap.createScaledBitmap(bitmap, 320, 240, false);
Mat ImageMat = new Mat();
Utils.bitmapToMat(scalen, ImageMat);
我需要输出图像与输入图像相同,我做错了什么?
更新:
当我阅读位图图像时
try {
FileOutputStream out = new FileOutputStream("mnt/sdcard/test.png");
bitmap.compress(Bitmap.CompressFormat.PNG, 90, out);
} catch (Exception e) {
e.printStackTrace();
}
它以正确的颜色返回图像,因此颜色更改与将位图转换为 Mat 相关。