Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание гистограммы цветов 
:(
    Опции темы
factura
Дата 15.9.2014, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 6.1.2014

Репутация: нет
Всего: нет



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

Код

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();
        }        


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


Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  Без_имени_1.jpg 174,50 Kb
PM MAIL   Вверх
jonie
Дата 16.9.2014, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 5
Всего: 118



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


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0403 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.