detectFacesFromImage method

Future<void> detectFacesFromImage(
  1. CameraImage image
)

Implementation

Future<void> detectFacesFromImage(CameraImage image) async {
  try {
    final InputImageMetadata metadata = InputImageMetadata(
      rotation: _cameraService.cameraRotation ?? InputImageRotation.rotation90deg,
      size: Size(image.width.toDouble(), image.height.toDouble()),
      format: InputImageFormat.nv21,
      bytesPerRow: image.planes[0].bytesPerRow,
    );
    final WriteBuffer allBytes = WriteBuffer();
    for (final Plane plane in image.planes) {
      allBytes.putUint8List(plane.bytes);
    }
    final bytes = allBytes.done().buffer.asUint8List();
    final InputImage inputImage = InputImage.fromBytes(
      bytes: bytes,
      metadata: metadata,
    );
    List<Face> detectedFaces = await _faceDetector.processImage(inputImage);
    // faces.assignAll(detectedFaces);
    faces.value = detectedFaces;
    faceDetected.value = detectedFaces.isNotEmpty;
  } catch (e) {
    faces.value=[];
  }
}