/// <summary> /// Triggered when Run button is clicked /// </summary> /// <param name="sender"></param> /// <param name="e"></param> override async protected void RunButton_Click(object sender, RoutedEventArgs e) { // Update ISKillBinding ImageCleanerBinding binding = m_skillBinding as ImageCleanerBinding; // Set interpolation type await binding.SetImageCleaningKindAsync(m_ImageCleanerBindingFeatureValues.InputImageType); // Invoke event handlers base.RunButton_Click(sender, e); }
/// <summary> /// Update results displayed /// </summary> /// <param name="additionalResult"></param> /// <returns></returns> override public async Task UpdateSkillControlValuesAsync(object additionalResult) { ImageCleanerBinding binding = (additionalResult as ImageCleanerBinding); VideoFrame resultImage = binding.OutputImage; await m_interactiveControl.UpdateResultImageAsync(resultImage); var detectedImageType = binding["DetectedImageType"].FeatureValue; var detectedImageTypeFeatureValue = (detectedImageType as SkillFeatureTensorStringValue).GetAsVectorView()[0]; var value = (ImageCleaningKind)Enum.GetNames(typeof(ImageCleaningKind)).ToList().IndexOf(detectedImageTypeFeatureValue); m_interactiveControl.UpdateResultImageType(value); await base.UpdateSkillControlValuesAsync(additionalResult); }