Ich versuche, Frame-Bild zu verarbeiten, während neue Android-Gesichtserkennung Mobile Vision API verwenden.Wie erstelle ich eine Bitmap aus einem Graustufen-Byte-Buffer-Image?
So habe ich Custom Detector erstellt, um Frame zu erhalten und versucht, getBitmap() -Methode aufzurufen, aber es ist null, so dass ich Graustufen Daten von Frame zugegriffen habe. Gibt es eine Möglichkeit, eine Bitmap daraus oder eine ähnliche Bildhalterklasse zu erstellen?
public class CustomFaceDetector extends Detector<Face> {
private Detector<Face> mDelegate;
public CustomFaceDetector(Detector<Face> delegate) {
mDelegate = delegate;
}
public SparseArray<Face> detect(Frame frame) {
ByteBuffer byteBuffer = frame.getGrayscaleImageData();
byte[] bytes = byteBuffer.array();
int w = frame.getMetadata().getWidth();
int h = frame.getMetadata().getHeight();
// Byte array to Bitmap here
return mDelegate.detect(frame);
}
public boolean isOperational() {
return mDelegate.isOperational();
}
public boolean setFocus(int id) {
return mDelegate.setFocus(id);
}}
Der Rahmen hat keine Bitmap-Daten, da er direkt von der Kamera kommt. Das Bildformat von der Kamera ist NV21: http://developer.android.com/reference/android/graphics/ImageFormat.html#NV21 – pm0733464