Tag: 相机人

Android camera2.params.face矩形放置在canvas上

我正在尝试在相机预览中实现面部检测。 我按照Android参考页面在TextureView实现自定义相机预览,放置在FrameLayout 。 此FrameLayout中还有一个背景清晰的SurfaceView (与相机预览重叠)。 每次更新相机预览时(每帧一次),我的应用程序会绘制第一个CaptureResult.STATISTICS_FACES面部边界动态识别到SurfaceViewcanvas的Rect 。 我的应用假设只需要识别一张脸。 我绘制矩形时会出现问题。 如果我将脸保持在摄像机视图的中心,我将矩形放在正确的位置,但当我向上移动头部时,矩形向右移动,当我向右移动头部时,矩形向下移动。 好像canvas需要旋转-90,但这对我不起作用(下面的代码解释)。 在我的活动的onCreate() : //face recognition rectangleView = (SurfaceView) findViewById(R.id.rectangleView); rectangleView.setZOrderOnTop(true); rectangleView.getHolder().setFormat( PixelFormat.TRANSPARENT); //remove black background from view purplePaint = new Paint(); purplePaint.setColor(Color.rgb(175,0,255)); purplePaint.setStyle(Paint.Style.STROKE); 在TextureView.SurfaceTextureListener.onSurfaceTextureAvailable() (在try{}块中封装了camera.open() : Rect cameraBounds = cameraCharacteristics.get( CameraCharacteristics.SENSOR_INFO_ACTIVE_ARRAY_SIZE); cameraWidth = cameraBounds.right; cameraHeight = cameraBounds.bottom; 在onSurfaceTextureUpdated()内的同一个监听器中: if (detectedFace != null && rectangleFace.height() > […]