写入后读取图像

Reading Image after writing

我已经写了一些 Android 代码,我基本上只是用内置相机拍照,保存它,然后尝试加载保存的文件来用它做一些事情。

Camera camera = mPreview.getmCameraInstance();
Camera.PictureCallback pictureCallback =
    GetPictureCallback(mPreview.getmCameraInstance());
camera.takePicture(null, null, pictureCallback);
Mat image = Highgui.imread(String.valueOf(file)); //Load Image here

但是,我的应用程序崩溃了,因为它在我加载图像的行中找不到文件。我不明白这一点,因为我认为我的代码会按顺序执行,然后我存储文件的 takePicture(...) 已经完成了。

你能帮我解决这个问题吗?

编辑

当我之前放一个Thread.sleep(100)的时候,我就可以打开图片了,因为那个时候已经写入成功了

您需要等到回调被调用才能读取图像。

什么是GetPictureCallback?如果是您自己的代码,则将读取的图像移动到生成的回调中...如果不是,您可以这样做:

Camera camera = mPreview.getmCameraInstance();
final Camera.PictureCallback otherPictureCallback =
    GetPictureCallback(mPreview.getmCameraInstance());
camera.takePicture(null, null, new Camera.PictureCallback {
    void onPictureTaken(byte[] data, Camera camera) {
        otherPictureCallback.onPictureTaken(data, camera);
        Mat image = Highgui.imread(String.valueOf(file)); //Load Image here     
    }
});