/// <summary> /// 그림판의 변화가 끝났을 때 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void InputCanvasStrokeCollected(object sender, System.Windows.Controls.InkCanvasStrokeCollectedEventArgs e) { int width = (int)InputCanvas.ActualWidth; int height = (int)InputCanvas.ActualHeight; // 그림판의 그림을 28 * 28 크기 비트맵으로 변환해서 저장 RenderTargetBitmap rb = new RenderTargetBitmap(width, height, 96d, 96d, PixelFormats.Default); rb.Render(InputCanvas); MemoryStream stream = new MemoryStream(); BitmapEncoder encoder = new BmpBitmapEncoder(); encoder.Frames.Add(BitmapFrame.Create(rb)); encoder.Save(stream); Bitmap bitmap = new Bitmap(stream); bitmap = ResizeImage(bitmap, 28, 28); bitmap.Save(@"C:\Users\User\source\repos\Mnist\Mnist\bin\Debug\test.png", ImageFormat.Png); // 모델의 입력을 방금 저장한 파일로 지정해서 결과 출력 ModelInput input = new ModelInput(); input.ImageSource = @"C:\Users\User\source\repos\Mnist\Mnist\bin\Debug\test.png"; ModelOutput output = ConsumeModel.Predict(input); ResultText.Text = output.Prediction; SeriesCollection[0].Values = new ChartValues <float>(output.Score.AsEnumerable()); }
private void canvasDigitBoard_StrokeCollected(object sender, System.Windows.Controls.InkCanvasStrokeCollectedEventArgs e) { Guess(); }