Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > Создание гистограммы цветов


Автор: factura 15.9.2014, 18:06
Необходимо создать гистограмму цветов из цветов загруженного изображения и искать с помощью нее пиксели одинакового цвета. Нужно переделать под нее вот этот код

Код

private void button4_Click(object sender, EventArgs e)
        {
            button2_Click(sender, e);
            DisableButtons();
            Bitmap b = new Bitmap(pictureBox1.Image);
            //progressBar1.Maximum = b.Height - 1;
            int[] m = new int[b.Height * b.Width];
            for (int y = 0, i = 0; y < b.Height; y++)
                for (int x = 0; x < b.Width; x++, i++)
                    m[i] = b.GetPixel(x, y).ToArgb();
            Array.Sort(m);
            Array.Reverse(m);
 
            Layers.Clear();
            Layers2.Clear();
            Bitmap L2 = new Bitmap(b.Width, b.Height);
            for (int i = 0; i < m.Length; )
            {
                Bitmap L = new Bitmap(b.Width, b.Height);
                int mc = m[i];
                Color Lc = Color.FromArgb(mc);
                for (int y = 0; y < b.Height; y++)
                    for (int x = 0; x < b.Width; x++)
                    {
                        int c = b.GetPixel(x, y).ToArgb();
                        if (c == mc || (checkBox2.Checked && c < mc))
                        {
                            L.SetPixel(x, y, Lc);
                            L2.SetPixel(x, y, Lc);
                        }
                    }
                Layers.Add(L);
                Layers2.Add(L2);
                L2 = (Bitmap)L2.Clone();
                for (; i < m.Length && m[i] == mc; i++) ;
            }
            numericUpDown1.Maximum = Layers.Count;
            numericUpDown1.Value = Layers.Count/2+1;
            //progressBar1.Value = y;
            EnableButtons();
        }        


Здесь происходит поиск одинаковых пикселей и вывод цвета по контуру
Ниже приведены скрины работы программы, необходимо добиться такого же результата при помощи гистограммы цветов

Автор: jonie 16.9.2014, 10:46
ну а мы-то тут при чём? это вам надо же. За вас вашу работу никто делать не собирается. Если есть какие-то конкретные вопросы - то спрашивайте..

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)