カメラ2モジュールでGoogle Mobile Vision APIを使用しようとしています。私は多くの問題を抱えています。カメラ2のビットマップへの出力
Googleのandroid-Camera2Videoサンプルコードをベースに使用しています。 Camera2VideoFragment.java
を含む任意の断片が、その画像へのアクセスを得ることができる方法
Camera2VideoFragment.java
OnCameraImageAvailable mCameraImageCallback;
public interface OnCameraImageAvailable {
void onCameraImageAvailable(Image image);
}
ImageReader.OnImageAvailableListener mImageAvailable = new ImageReader.OnImageAvailableListener() {
@Override
public void onImageAvailable(ImageReader reader) {
Image image = reader.acquireLatestImage();
if (image == null)
return;
mCameraImageCallback.onCameraImageAvailable(image);
image.close();
}
};
:私は、次のコールバックを含むように変更しました。
今、バーコードAPIはBitmap
イメージしか受け入れませんが、YUV_420_888
をビットマップに変換できません。代わりに、私はJPEG
にimageReader
のファイル形式を変更し、次の変換コードを実行しました:
Image.Plane[] planes = image.getPlanes();
ByteBuffer buffer = planes[0].getBuffer();
buffer.rewind();
byte[] data = new byte[buffer.capacity()];
buffer.get(data);
Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
これは働いていたが、imageReader
にJPEG
データを送るのフレームレートの低下が顕著でした。以前誰かがこの問題を回避してくれたかどうかは疑問だ。