Example #1
0
        /// <summary>
        /// Кнопка сравнения двух биграмм
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void CompareButton_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                Ngramm1.Биграмм(jpg1_str, Convert.ToInt32(textBox_Коэффициент_Copy1.Text), Алфавит1.Массив);
                Ngramm2.Биграмм(jpg2_str, Convert.ToInt32(textBox_Коэффициент_Copy1.Text), Алфавит1.Массив);

                // Получим таблицы для сравнения
                Window_N_gram w1 = new Window_N_gram();
                int[,] mass1 = w1.ПолучитьТаблицуДляСравнения(Алфавит1.Массив.Count, Ngramm1.Значения_биграм, Convert.ToInt32(textBox_Коэффициент_Copy1.Text), Convert.ToDouble(textBox_Количество_символов_Copy1.Text));

                Window_N_gram w2 = new Window_N_gram();
                int[,] mass2 = w2.ПолучитьТаблицуДляСравнения(Алфавит1.Массив.Count, Ngramm2.Значения_биграм, Convert.ToInt32(textBox_Коэффициент_Copy1.Text), Convert.ToDouble(textBox_Количество_символов_Copy1.Text));


                // Ищем несовпадения - минимальной высоте/ширине
                int minWidth = Math.Min(mass1.GetLength(0), mass2.GetLength(0)); // Число строк
                int minHight = Math.Min(mass1.GetLength(1), mass2.GetLength(1)); // Число столбцов

                double несовпадения = 0;
                double совпадения   = 0;
                for (int i = 0; i < minHight; i++)
                {
                    for (int j = 0; j < minWidth; j++)
                    {
                        if (mass1[i, j] != 0 && 0 != mass2[i, j])
                        {
                            if (mass1[i, j] == mass2[i, j])
                            {
                                совпадения++;
                            }
                            else
                            {
                                несовпадения++;
                            }
                        }
                    }
                }

                // Считаем процент:
                if (совпадения + несовпадения == 0)
                {
                    label.Content = "Изменить интервалы, совпадений/несовпадений нет";
                    return;
                }

                double процент = 100 * совпадения / (совпадения + несовпадения);
                label.Content = процент.ToString() + "%";
            }
            catch (Exception er)
            { }
        }
Example #2
0
        /// <summary>
        /// Кнопка анализа второго изображения.
        /// </summary>
        private void button1_Click_Copy(object sender, RoutedEventArgs e)
        {
            if (jpg2_str.Length < Convert.ToInt32(textBox_Количество_символов_Copy.Text))
            {
                Текст_Ошибка_Copy.Content = "Исследуемое количество символов\nпревышает количества символов в тексте.\nВ тексте " + Convert.ToInt32(textBox1.Text.Length) + " символов.";
            }
            else
            {
                Текст_Ошибка_Copy.Content = "В изображении " + Convert.ToInt32(jpg2_str.Length) + " символов.";

                Ngramm2.Биграмм(jpg2_str, Convert.ToInt32(textBox_Количество_символов_Copy.Text), Алфавит1.Массив);

                Window_N_gram PrintNgramm = new Window_N_gram(Алфавит1.Массив, Ngramm2.Значения_биграм, Convert.ToInt32(textBox_Коэффициент_Copy.Text), Convert.ToDouble(textBox_Количество_символов_Copy.Text));
            }
        }
Example #3
0
        /// <summary>
        /// Кнопка сравнения двух биграмм
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void CompareButton_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                Ngramm1.Биграмм(jpg1_str, Convert.ToInt32(textBox_Коэффициент_Copy1.Text), Алфавит1.Массив);
                Ngramm2.Биграмм(jpg2_str, Convert.ToInt32(textBox_Коэффициент_Copy1.Text), Алфавит1.Массив);

                // Получим таблицы для сравнения
                Window_N_gram w1 = new Window_N_gram();
                int[,] mass1 = w1.ПолучитьТаблицуДляСравнения(Алфавит1.Массив.Count, Ngramm1.Значения_биграм, Convert.ToInt32(textBox_Коэффициент_Copy1.Text), Convert.ToDouble(textBox_Количество_символов_Copy1.Text));

                Window_N_gram w2 = new Window_N_gram();
                int[,] mass2 = w2.ПолучитьТаблицуДляСравнения(Алфавит1.Массив.Count, Ngramm2.Значения_биграм, Convert.ToInt32(textBox_Коэффициент_Copy1.Text), Convert.ToDouble(textBox_Количество_символов_Copy1.Text));


                // Ищем несовпадения - минимальной высоте/ширине
                int minWidth = Math.Min(mass1.GetLength(0), mass2.GetLength(0));// Число строк
                int minHight = Math.Min(mass1.GetLength(1), mass2.GetLength(1));// Число столбцов

                double несовпадения = 0;
                double совпадения = 0;
                for (int i = 0; i < minHight; i++)
                    for (int j = 0; j < minWidth; j++)
                    {
                        if (mass1[i, j] != 0 && 0 != mass2[i, j])
                        {
                            if (mass1[i, j] == mass2[i, j])
                                совпадения++;
                            else
                                несовпадения++;
                        }
                    }

                // Считаем процент:
                if (совпадения + несовпадения == 0)
                {
                    label.Content = "Изменить интервалы, совпадений/несовпадений нет";
                    return;
                }

                double процент = 100 * совпадения / (совпадения + несовпадения);
                label.Content = процент.ToString()+"%";
            }
            catch(Exception er)
            { }
        }
Example #4
0
 /// <summary>
 /// Кнопка анализа второго изображения.
 /// </summary>
 private void button1_Click_Copy(object sender, RoutedEventArgs e)
 {
     if (jpg2_str.Length < Convert.ToInt32(textBox_Количество_символов_Copy.Text))
     {
         Текст_Ошибка_Copy.Content = "Исследуемое количество символов\nпревышает количества символов в тексте.\nВ тексте " + Convert.ToInt32(textBox1.Text.Length) + " символов.";
     }
     else
     {
         Текст_Ошибка_Copy.Content = "В изображении " + Convert.ToInt32(jpg2_str.Length) + " символов.";
         
         Ngramm2.Биграмм(jpg2_str, Convert.ToInt32(textBox_Количество_символов_Copy.Text), Алфавит1.Массив);
         
         Window_N_gram PrintNgramm = new Window_N_gram(Алфавит1.Массив, Ngramm2.Значения_биграм, Convert.ToInt32(textBox_Коэффициент_Copy.Text), Convert.ToDouble(textBox_Количество_символов_Copy.Text));
         
     }
 }