【发布时间】:2015-12-01 10:43:33
【问题描述】:
我正在尝试在使用新的 Android 人脸检测移动视觉 api 时处理帧图像。
所以我创建了自定义检测器来获取 Frame 并尝试调用 getBitmap() 方法,但它为空,所以我访问了帧的灰度数据。有没有办法从它或类似的图像持有者类创建位图?
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);
}}
【问题讨论】:
-
该帧没有位图数据,因为它直接来自相机。来自相机的图像格式为 NV21:developer.android.com/reference/android/graphics/…
标签: android bitmap grayscale google-vision android-vision