2

カメラを使って絵を描くのに役立つ Android OS 用のアプリケーションを開発しています。アプリは、カメラのトラフからフレームをキャプチャする方法で機能しonPreviewFrame(byte[] data, Camera camera)、ここから画像がバイナリの黒/白に変換されます。一般的にアプリは機能しますが、次の質問があります。

  1. onPreviewFrame から画像をキャプチャするのは非常に遅いです。今のところフレームをスキップしますが、メソッドはまだ遅いです。

    YuvImage yuvImage = new YuvImage(data, ImageFormat.NV21, width, height, null);
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    yuvImage.compressToJpeg(new Rect(0,0,width, height), 100, baos);
    byte [] imageData = baos.toByteArray();
    Bitmap bmp = BitmapFactory.decodeByteArray(imageData , 0, imageData .length);
    bmp = Bitmap.createScaledBitmap(bmp, surfaceView.getMeasuredHeight(), surfaceView.getMeasuredWidth(), false);
    Bitmap bmps = ImageHelper.rotate(bmp, kot);
    

    画像をより速く取得する方法はありますか?

  2. また、電話は完全に静止しており、光は同じですが、すべてのカップルフレームの画像が同じではない (ヒストグラムが異なる) ことに気付きました。

4

1 に答える 1

0

指摘されているように、NDKを使用する必要があると思います。このタイプの処理は、メイン スレッドではなく、別のスレッドでも行うことができます。

あなたの(2)についての小さな点。ヒストグラムの違いは?ほとんどのカメラ センサーと処理はさまざまであり、ノイズや 3A アルゴリズムの変動により、正確なヒストグラムを生成することは困難です。

于 2013-01-10T09:16:26.433 に答える