示例#1
0
        private async void UIButtonStart_OnClick(object sender, RoutedEventArgs e)
        {
            try
            {
                UICameraPreview.Stop();
                if (UICameraPreview.CameraHelper != null)
                {
                    await UICameraPreview.CameraHelper.CleanUpAsync();
                }
                m_isCameraFrameDimensionInitialized = false;

                // Initialize skill with the selected supported device
                m_skeletalDetectorSkill = await m_skeletalDetectorDescriptor.CreateSkillAsync(m_availableExecutionDevices[0]) as SkeletalDetectorSkill;

                // Initialize the CameraPreview control, register frame arrived event callback
                UIImageViewer.Visibility   = Visibility.Collapsed;
                UICameraPreview.Visibility = Visibility.Visible;
                await UICameraPreview.StartAsync();

                UICameraPreview.CameraHelper.FrameArrived += CameraHelper_FrameArrived;
                m_currentFrameSourceToggled = FrameSourceToggledType.Camera;
            }
            catch (Exception ex)
            {
                await(new MessageDialog(ex.Message)).ShowAsync();
                m_currentFrameSourceToggled = FrameSourceToggledType.None;
            }
            finally
            {
                m_lock.Release();
            }
        }
示例#2
0
        /// <summary>
        /// Triggered when UIButtonFilePick is clicked, grabs a frame from an image file.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void UIButtonFilePick_Click(object sender, RoutedEventArgs e)
        {
            // Stop Camera preview
            UICameraPreview.Stop();
            if (UICameraPreview.CameraHelper != null)
            {
                await UICameraPreview.CameraHelper.CleanUpAsync();
            }
            UICameraPreview.Visibility = Visibility.Collapsed;
            UIImageViewer.Visibility   = Visibility.Visible;

            // Disable subsequent trigger of this event callback
            UICameraToggle.IsEnabled   = false;
            UIButtonFilePick.IsEnabled = false;

            await m_lock.WaitAsync();

            try
            {
                // Initialize skill with the selected supported device
                m_skeletalDetectorSkill = await m_skeletalDetectorDescriptor.CreateSkillAsync(m_availableExecutionDevices[UISkillExecutionDevices.SelectedIndex]) as SkeletalDetectorSkill;

                // Instantiate a binding object that will hold the skill's input and output resource
                m_skeletalDetectorBinding = await m_skeletalDetectorSkill.CreateSkillBindingAsync() as SkeletalDetectorBinding;

                var frame = await LoadVideoFrameFromFilePickedAsync();

                if (frame != null)
                {
                    SoftwareBitmapSource source = new SoftwareBitmapSource();
                    await source.SetBitmapAsync(frame.SoftwareBitmap);

                    UIImageViewer.Source = source;
                    UIImageViewer_SizeChanged(null, null);

                    await RunSkillAsync(frame, false);
                }

                m_skeletalDetectorSkill   = null;
                m_skeletalDetectorBinding = null;

                m_currentFrameSourceToggled = FrameSourceToggledType.ImageFile;
            }
            catch (Exception ex)
            {
                await(new MessageDialog(ex.Message)).ShowAsync();
                m_currentFrameSourceToggled = FrameSourceToggledType.None;
            }

            m_lock.Release();

            // Enable subsequent trigger of this event callback
            UIButtonFilePick.IsEnabled = true;
            UICameraToggle.IsEnabled   = true;
        }
示例#3
0
 /// <summary>
 /// Initialize the SkeletalDetector skill and binding instances
 /// </summary>
 /// <param name="device"></param>
 /// <returns></returns>
 private async Task InitializeSkeletalDetectorAsync(ISkillExecutionDevice device = null)
 {
     if (device != null)
     {
         m_skill = await m_descriptor.CreateSkillAsync(device) as SkeletalDetectorSkill;
     }
     else
     {
         m_skill = await m_descriptor.CreateSkillAsync() as SkeletalDetectorSkill;
     }
     m_binding = await m_skill.CreateSkillBindingAsync() as SkeletalDetectorBinding;
 }
示例#4
0
        /// <summary>
        /// Initialize the SkeletalDetector skill and binding instances
        /// </summary>
        /// <param name="device"></param>
        /// <returns></returns>
        private async Task InitializeSkeletalDetectorAsync(ISkillExecutionDevice device = null)
        {
            if (device != null)
            {
                m_skill = await m_descriptor.CreateSkillAsync(device) as SkeletalDetectorSkill;
            }
            else
            {
                m_skill = await m_descriptor.CreateSkillAsync() as SkeletalDetectorSkill;
            }
            m_binding = await m_skill.CreateSkillBindingAsync() as SkeletalDetectorBinding;

            m_inputImageFeatureDescriptor = m_binding["InputImage"].Descriptor as SkillFeatureImageDescriptor;
        }