コード例 #1
0
        //Update images
        public void UpdateImage(object userData)
        {
            imageFeedback = (ImageFeedback)userData;
            string imName = imageFeedback.imName;
            imName = string.Concat(imName,".bmp");
            string dir = System.IO.Path.Combine(ImagesDirectory, imName);
            BitmapImage bitImg = new BitmapImage(new Uri(dir, UriKind.Absolute));
            Image img = new Image();
            img.Source = bitImg;
            img.Width = 300;
            img.Height = 205;
            System.Windows.Thickness th = new System.Windows.Thickness(5);
            img.Margin = th;

            // Determine where to put image based on groundTruth, score and display
            if (imageFeedback.isPredictedTarget)
            {
                // Update Target Images
                CurrentTargetScores[CurrentTargetScores.Length - 1] = imageFeedback.score;
                CurrentTargetImages[CurrentTargetImages.Length - 1] = img;
                // Resort
                 Array.Sort(CurrentTargetScores, CurrentTargetImages);
                // Update
                 stackPanel1.Children.RemoveRange(0, stackPanel1.Children.Count);
                 stackPanel2.Children.RemoveRange(0, stackPanel2.Children.Count);
                 for (int j = 0; j < CurrentTargetScores.Length-1; j++)
                 {
                     if (j < 5)
                         stackPanel1.Children.Add(CurrentTargetImages[j]);
                     else
                         stackPanel2.Children.Add(CurrentTargetImages[j]);
                 }
            }
            else
            {
                // Update Non Target Images
                CurrentNonTargetScores[CurrentNonTargetScores.Length - 1] = imageFeedback.score;
                CurrentNonTargetImages[CurrentNonTargetImages.Length - 1] = img;
                // Resort
                Array.Sort(CurrentNonTargetScores, CurrentNonTargetImages);
                // Update
                stackPanel3.Children.RemoveRange(0, stackPanel3.Children.Count);
                stackPanel4.Children.RemoveRange(0, stackPanel4.Children.Count);
                for (int j = 0; j < CurrentTargetScores.Length-1; j++)
                {
                    if (j < 5)
                        stackPanel3.Children.Add(CurrentNonTargetImages[j]);
                    else
                        stackPanel4.Children.Add(CurrentNonTargetImages[j]);
                }
            }
        }
コード例 #2
0
        //Update accuracy feedback
        public void UpdateAccuracy(object userData)
        {
            imageFeedback = (ImageFeedback)userData;

            float tmpAcc = (float)imageFeedback.balAcc * 100;
            string acc = Convert.ToString(tmpAcc);
            char[] accChar = new char[5];
            for (int i = 0; i < accChar.Length; i++)
            {
                accChar[i] = acc[i];
            }

            label1.Content = string.Concat("Accuracy (Pi) = ", new string(accChar)," %");

            Console.WriteLine(new string(accChar));
        }