我正在尝试使用带有自定义相机实例的Google移动视觉API制作一个检测面孔的相机应用程序,而不是Google API中的"CameraSource",因为我也处理帧以检测颜色,而且使用Camerasource我不是允许获取相机帧.
在搜索到这个问题之后,我发现的唯一结果是使用移动视觉和CameraSource,而不是使用任何自定义camera1 API.我试图覆盖帧处理,然后对输出的图片进行检测,如下所示:
camera.setPreviewCallback(new Camera.PreviewCallback() {
@Override
public void onPreviewFrame(byte[] data, Camera camera) {
Log.d("onPreviewFrame", "" + data.length);
Camera.Parameters parameters = camera.getParameters();
int width = parameters.getPreviewSize().width;
int height = parameters.getPreviewSize().height;
ByteArrayOutputStream outstr = new ByteArrayOutputStream();
Rect rect = new Rect(0, 0, width, height);
YuvImage yuvimage = new YuvImage(data, ImageFormat.NV21, width, height, null);
yuvimage.compressToJpeg(rect, 20, outstr);
Bitmap bmp = BitmapFactory.decodeByteArray(outstr.toByteArray(), 0, outstr.size());
detector = new FaceDetector.Builder(getApplicationContext())
.setTrackingEnabled(true)
.setClassificationType(FaceDetector.ALL_LANDMARKS)
.setMode(FaceDetector.FAST_MODE)
.build();
detector.setProcessor(
new MultiProcessor.Builder<>(new GraphicFaceTrackerFactory())
.build());
if (detector.isOperational()) {
frame = …Run Code Online (Sandbox Code Playgroud)