process method
Stream<FaceDetectionResult>
process(
- Stream<
FaceMeshImage> frames, { - NormalizedRect? roi,
- FaceDetectorRoiResolver<
FaceMeshImage> ? roiResolver, - int rotationDegrees = 0,
- bool mirrorHorizontal = false,
- double? roiScaleX,
- double? roiScaleY,
- double? roiShiftX,
- double? roiShiftY,
Processes a stream of FaceMeshImage frames sequentially.
Provide either a static roi or a roiResolver callback to define the
detector input ROI per frame. Every incoming frame is processed with the
same parameters that you would pass to FaceDetectorProcessor.process.
ROI transform overrides (roiScaleX, roiScaleY, roiShiftX,
roiShiftY) are forwarded to each frame and default to the values set on
FaceDetectorProcessor.create when omitted.
Implementation
Stream<FaceDetectionResult> process(
Stream<FaceMeshImage> frames, {
NormalizedRect? roi,
FaceDetectorRoiResolver<FaceMeshImage>? roiResolver,
int rotationDegrees = 0,
bool mirrorHorizontal = false,
double? roiScaleX,
double? roiScaleY,
double? roiShiftX,
double? roiShiftY,
}) async* {
_validateResolvers<FaceMeshImage>(roi, roiResolver);
await for (final FaceMeshImage frame in frames) {
final NormalizedRect? dynamicRoi = roiResolver?.call(frame);
yield _processor.process(
frame,
roi: dynamicRoi ?? roi,
rotationDegrees: rotationDegrees,
mirrorHorizontal: mirrorHorizontal,
roiScaleX: roiScaleX,
roiScaleY: roiScaleY,
roiShiftX: roiShiftX,
roiShiftY: roiShiftY,
);
}
}