写入后读取图像
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
}
});
我已经写了一些 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
}
});