private void btLoadImage_Click(object sender, EventArgs e)
        // обработки события при нажатии на кнопку "Загрузите изображение"
        {
            OpenFileDialog ofd = new OpenFileDialog();

            ofd.Title  = "Выберете файл изображения.";
            ofd.Filter = "BMP|*.bmp|Png Images(*.png)|*.png|Jpeg Images(*.jpg)|*.jpg";
            //ofd.Filter = "Bitmap Images(*.bmp)|*.bmp|Png Images(*.png)|*.png|Jpeg Images(*.jpg)|*.jpg";
            if (ofd.ShowDialog() == DialogResult.OK)
            {
                StreamReader streamReader = new StreamReader(ofd.FileName);
                OriginalBitmap = (Bitmap)Bitmap.FromStream(streamReader.BaseStream);
                streamReader.Close();
                OriginalImage = OriginalBitmap;

                FileInfo file_info = new FileInfo(ofd.FileName);
                long     lFileSize = file_info.Length / 1023;

                double SNRF = ExtendedBitmap.SNRF(OriginalBitmap, 50, 70, 50);
                // Выводим информацию о файле в статус бар
                toolStripStatusLabel1.Text = ofd.SafeFileName + ", " + lFileSize.ToString() + "КБ, " + OriginalImage.Size.ToString() + "SNRGG=" + SNRF.ToString(); //"0.###E+0"

                // выводим картинку выбранную картинку на экран
                pb1.Image = OriginalImage.resizeImage(new Size(191, 150));

                // Исходное изображение загружено -> включаем кнопки по обработке изображения
                btnDOG.Enabled          = true;
                btnSobel.Enabled        = true;
                btnLaplace.Enabled      = true;
                btRunAllFilters.Enabled = true;
            }
        }
Beispiel #2
0
        // Загрузка изображения 2
        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();

            ofd.Title  = "Выберете файл изображения.";
            ofd.Filter = "BMP|*.bmp|Png Images(*.png)|*.png|Jpeg Images(*.jpg)|*.jpg";

            if (ofd.ShowDialog() == DialogResult.OK)
            {
                StreamReader streamReader = new StreamReader(ofd.FileName);
                img2 = (Bitmap)Bitmap.FromStream(streamReader.BaseStream);
                streamReader.Close();

                // картинка загружена
                b_img2       = true;
                LoadingImage = b_img1 && b_img2;
                // выводим картинку выбранную картинку на экран
                pb2.Image = img2.resizeImage(new Size(395, 395));

                SNRF2  = ExtendedBitmap.SNRF(img2);
                SNRGG2 = ExtendedBitmap.SNRGG(img2);

                SNRF2label.Text  = SNRF2.ToString("F3");
                SNRGG2label.Text = SNRGG2.ToString("F3");

                // делаем анализ
                AnalyzeRun();
            }
        }
        // Switch channel
        public void SwitchChannel(int channel)
        {
            if ((channel >= 0) && (channel <= 2))
            {
                if (!stat.IsGrayscale)
                {
                    //histogram.Color = colors[channel];
                    activeHistogram = (channel == 0) ? stat.Red : (channel == 1) ? stat.Green : stat.Blue;
                }
            }
            else if (channel == 3)
            {
                if (stat.IsGrayscale)
                {
                    //histogram.Color = colors[3];
                    activeHistogram = stat.Gray;
                }
            }

            if (activeHistogram != null)
            {
                //histogram.Values = activeHistogram.Values;
                // Собираем статистику по изображению
                int[] yval = activeHistogram.Values;

                try
                {
                    // очищаем Сhart для дальшейшей отрисовки
                    foreach (var series in chart1.Series)
                    {
                        series.Points.Clear();
                    }
                    // Заполняем Chart значениями гистограммы
                    chart1.ChartAreas["ChartArea1"].AxisX.LabelStyle.Enabled = false;
                    chart1.ChartAreas["ChartArea1"].AxisY.LabelStyle.Enabled = false;
                    for (int i = 0; i < yval.Length; i++)
                    {
                        chart1.Series["Series1"].Points.AddXY(i, yval[i]);
                    }
                }
                catch (Exception e) {
                    MessageBox.Show(e.Message);
                }
                meanLabel.Text   = activeHistogram.Mean.ToString("F2");     // среднее значение
                stdDevLabel.Text = activeHistogram.StdDev.ToString("F2");   // стандартное отклонение
                medianLabel.Text = activeHistogram.Median.ToString( );      // медиана
                minLabel.Text    = activeHistogram.Min.ToString( );         // минимальное значение
                maxLabel.Text    = activeHistogram.Max.ToString( );         // максимальное значение

                double MSE = ExtendedBitmap.SKO(src, Diplom.MainForm.getOriginalBitmap());
                MSELabel.Text = MSE.ToString("F3");

                double SNR = ExtendedBitmap.SNR(src, Diplom.MainForm.getOriginalBitmap());
                SNRlabel.Text = SNR.ToString("F3");

                double SNRGG = ExtendedBitmap.SNRGG(src);
                SNRGGlabel.Text = SNRGG.ToString("F3");
            }
        }
Beispiel #4
0
 // Расчет и отображение статистики по изображениям
 private void AnalyzeRun()
 {
     // Если загружены обе картинки - расчитываем статистику по каждой и  разницу между ними
     if (LoadingImage)           // если обе картинки загружены
     {
         SKO = ExtendedBitmap.SKO(img1, img2);
         if (SKO != -1)
         {
             label_SKO.Text = SKO.ToString("F3");
         }
     }
 }