FaceDetectionCameraOverlay class

A composite widget that overlays face-detection and (optional) segmentation results on top of a live camera preview.

Assembles up to four layers inside an AspectRatio sized Stack:

  1. A full-screen virtual background (BackgroundImagePainter) when virtualBackground is provided and showVirtualBackground is true.
  2. The caller-provided cameraPreview.
  3. A virtual-background composite (VirtualBackgroundOverlayPainter) that cuts the subject out of the camera and places them on virtualBackground.
  4. Or, when showSegmentation is enabled without a virtual background, a LiveSegmentationPainter tint.
  5. A CameraDetectionPainter drawing bounding boxes, mesh, landmarks etc. for the provided faces (only when imageSize is non-null).
Inheritance

Constructors

FaceDetectionCameraOverlay({Key? key, required Widget cameraPreview, required double cameraAspectRatio, required double displayAspectRatio, required bool mirrorHorizontally, required int sensorOrientation, required Orientation deviceOrientation, required bool isFrontCamera, required FaceDetectionMode detectionMode, required List<Face> faces, Size? imageSize, SegmentationMask? segmentationMask, Image? virtualBackground, bool showSegmentation = false, bool showVirtualBackground = false, Color segmentationColor = const Color(0x8800FF00), bool segmentationShowAllClasses = false, List<Color> segmentationClassColors = kSegmentationClassColors, bool showPoseAndScores = false, bool showClassification = false})
const

Properties

cameraAspectRatio double
Aspect ratio of the raw camera frames (width / height). Used by the detection painter to map face coordinates.
final
cameraPreview Widget
The camera preview widget (typically a CameraPreview).
final
detectionMode FaceDetectionMode
Detection mode that produced the faces (controls which overlays the painter considers valid).
final
deviceOrientation Orientation
Current device orientation (portrait/landscape).
final
displayAspectRatio double
Aspect ratio used for the display AspectRatio box. Often the inverse of cameraAspectRatio when the device is in portrait.
final
faces List<Face>
Detected faces to draw via CameraDetectionPainter.
final
hashCode int
The hash code for this object.
no setterinherited
imageSize Size?
Size of the image used for detection (post-rotation). The detection painter is skipped when null.
final
isFrontCamera bool
Whether the active camera is the front-facing camera.
final
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
mirrorHorizontally bool
Whether the detection and segmentation overlays should be mirrored horizontally (usually true for front cameras on Android).
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
segmentationClassColors List<Color>
Per-class colors for multiclass segmentation. Defaults to kSegmentationClassColors.
final
segmentationColor Color
Tint color used by the standalone segmentation overlay. Ignored for multiclass rendering (see segmentationShowAllClasses).
final
segmentationMask SegmentationMask?
Segmentation mask output from the detector, or null when segmentation is not active.
final
segmentationShowAllClasses bool
When true, render every class in segmentationClassColors instead of a single-color tint. Use for multiclass segmentation models.
final
sensorOrientation int
Sensor mount orientation in degrees (0/90/180/270).
final
showClassification bool
Whether to append smile / eye-open probabilities to the per-face info card (full mode only). Opt-in; independent of showPoseAndScores.
final
showPoseAndScores bool
When true, the detection painter draws a per-face info card with detection/mesh confidence and head pose Euler angles.
final
showSegmentation bool
Whether to render the standalone segmentation tint overlay. Ignored when showVirtualBackground is true.
final
showVirtualBackground bool
Whether to replace the background with virtualBackground, cutting the subject out using segmentationMask.
final
virtualBackground Image?
Optional virtual-background image painted behind the subject.
final

Methods

build(BuildContext context) Widget
Describes the part of the user interface represented by this widget.
override
createElement() StatelessElement
Creates a StatelessElement to manage this widget's location in the tree.
inherited
debugDescribeChildren() List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children.
inherited
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
inherited
toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) String
A string representation of this object.
inherited
toStringDeep({String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) String
Returns a string representation of this node and its descendants.
inherited
toStringShallow({String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) String
Returns a one-line detailed description of the object.
inherited
toStringShort() String
A short, textual description of this widget.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited