Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2020, 11:34   #1
foxmess
Новичок
Джуниор
 
Регистрация: 16.12.2020
Сообщений: 1
По умолчанию Как найти энтропию и среднее квадратическое отклонение

добрый день есть изображение нужно найти изображение и СКО и вывести их в label

Код:
    public partial class Form1 : Form
    {
        float brightness = 0; //яркость
        float contrast = 0; // контраст

        byte[,] image_matr; // матрица полутонового изображения
        int[] hist; //гистограмма
        //double[] ver; //вероятностная гистограмма
        double[,] obr_image; // матрица обработанного изображения
        double[] hist_new; //гистограмма
        int gmax, gmin; //желаемое максимальное и минимальное значение яркости
        int fmax, fmin; //максимальное и минимальное значение яркости изображения
        int w_b, h_b; //ширина и высота изображения
       // int i, j;
       

        public Form1()
        {
            InitializeComponent();
        }

        private void открытьToolStripMenuItem_Click(object sender, EventArgs e)
        {
            var ofd = new OpenFileDialog();
            pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
            if (ofd.ShowDialog(this) == DialogResult.OK)
                pictureBox1.Image = Image.FromFile(ofd.FileName);
        }
   private void chart1_Click(object sender, EventArgs e)
        {
      
            Bitmap ish_bitmap = (Bitmap)pictureBox1.Image;
            w_b = ish_bitmap.Width;  //Ширина изображения
            h_b = ish_bitmap.Height; //Высота изображения



            fmin = 1000;
            fmax = -100;
            gmax = 100;
            gmin = 100;



            image_matr = new byte[w_b, h_b];  //матрица изображения 
            obr_image = new double[w_b, h_b];  //матрица изображения 
            hist = new int[256];
            hist_new = new double[256];
           //double ver = 0;
            for (int x = 0; x < w_b; x++)
            {
                for (int y = 0; y < h_b; y++)
                {
                    System.Drawing.Color c = ish_bitmap.GetPixel(x, y);//получаем цвет указанной точки
                    int r = Convert.ToInt32(c.R);
                    int b = Convert.ToInt32(c.B);
                    int g = Convert.ToInt32(c.G);
                    int brit = Convert.ToInt32(0.299 * r + 0.587 * g + 0.114 * b); //Перевод из RGB в полутон

                    image_matr[x, y] = Convert.ToByte(brit);
                }
            }
            for (int x = 0; x < w_b; x++)
            {
                for (int y = 0; y < h_b; y++)
                {
                    hist[image_matr[x, y]]++;

                    if (image_matr[x, y] > fmax)
                        fmax = image_matr[x, y];
                    if (image_matr[x, y] < fmin)
                        fmin = image_matr[x, y];
                }
            }

            label5.Text = Convert.ToString(fmax); //Максимальная яркость
            label6.Text = Convert.ToString(fmin); //Минимальная яркость

            label7.Text = Convert.ToString(gmax); //Максимальное значение
            label8.Text = Convert.ToString(gmin); //Минимальное значение
            label9.Text = ?????????????
            //Отображение гистограммы на компоненте chart
            chart1.Series[0].Points.Clear();
            for (int i = 0; i < 256; i++)
            {
                chart1.Series[0].Points.AddXY(i, hist[i]);
            }
        }
foxmess вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как найти среднее арифметическое и среднее геометрическое элементов массива M(9)? VBA Ramzi Помощь студентам 1 26.06.2016 20:19
Ввести файл . Найти среднее арифметическое среди значений элементов файла, принадлежащих интервалу [-5; 5]. Если среднее положител kostyan199731 Паскаль, Turbo Pascal, PascalABC.NET 0 18.03.2015 21:53
как определить информационную энтропию Ирка555 Паскаль, Turbo Pascal, PascalABC.NET 0 28.02.2013 17:09
рассчитать среднее отклонение от средней величины Никита11 Помощь студентам 3 22.04.2011 11:39
Найти энтропию сообщения Бубликова Помощь студентам 4 05.12.2008 21:49