Beispiel #1
0
        /// <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());
        }
Beispiel #2
0
 private void canvasDigitBoard_StrokeCollected(object sender, System.Windows.Controls.InkCanvasStrokeCollectedEventArgs e)
 {
     Guess();
 }