【发布时间】:2014-02-02 11:47:57
【问题描述】:
我正在使用 Android 中的 OpenCV 库。我有一个实现PictureCallBack 的类。
覆盖方法onPictureTaken()如下,
@Override
public void onPictureTaken(byte[] data, Camera camera) {
Log.i(TAG, "Saving a bitmap to file");
// The camera preview was automatically stopped. Start it again.
mCamera.startPreview();
mCamera.setPreviewCallback(this);
// Write the image in a file (in jpeg format)
try {
FileOutputStream fos = new FileOutputStream(mPictureFileName);
fos.write(data);
fos.close();
} catch (java.io.IOException e) {
Log.e("PictureDemo", "Exception in photoCallback", e);
}
}
因为我希望将图像数据进一步用于图像处理,而不是保存和重新加载图像。
从 Byte 数组中获取 Mat 对象的最有效方法是什么? 我已经尝试过这些方法:
-
不知道图像发生了什么。
Mat m=new Mat(); m.put(0,0,data); 转换为位图然后使用
bitmapToMat()在这种情况下,红色变成蓝色。
我在保存图像以供将来使用时也没有任何问题,但这会导致我出现异常,因为当我使用以前存储的图像时,该文件尚未生成。
【问题讨论】:
标签: java android opencv image-processing bitmap