0
의 현재 미리보기 프레임 해상도를 얻을 :가 어떻게 제대로 인식 된 얼굴의 경계를 표시하기 위해 현재의 미리보기 프레임 해상도를 얻을 필요가 MediaCapture
_mediaCapture = new MediaCapture();
await _mediaCapture.InitializeAsync();
var definition = new FaceDetectionEffectDefinition();
var faceDetectionEffect = (FaceDetectionEffect)await _mediaCapture.AddVideoEffectAsync(definition, MediaStreamType.VideoPreview);
faceDetectionEffect.DesiredDetectionInterval = TimeSpan.FromMilliseconds(33);
faceDetectionEffect.Enabled = true;
faceDetectionEffect.FaceDetected += FaceDetected;
PreviewControl.Source = _mediaCapture;
await _mediaCapture.StartPreviewAsync();
private async void FaceDetected(object sender, FaceDetectedEventArgs args)
{
double scale = PreviewControl.ActualWidth/???;
await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.High,() =>
{
var faces = args.ResultFrame.DetectedFaces;
for (int i = 0; i < faces.Count; i++)
{
double scale = P
var faceRect = faces[i].FaceBox;
Rectangle item;
if (FacesCanvas.Children.Count <= i)
{
item = new Rectangle();
item.Fill = new SolidColorBrush(Colors.AliceBlue);
FacesCanvas.Children.Add(item);
}
else item = (Rectangle)FacesCanvas.Children[i];
item.Height = faceRect.Height * scale;
item.Width = faceRect.Width * scale;
Canvas.SetLeft(item, faceRect.X * scale);
Canvas.SetTop(item, faceRect.Y * scale);
}
});
}