Создать гистограмму цветов из цветов загруженного изображения и искать с помощью нее пиксели одинакового цвета - C#
Формулировка задачи:
Необходимо создать гистограмму цветов из цветов загруженного изображения и искать с помощью нее пиксели одинакового цвета. Нужно переделать под нее вот этот код
Здесь происходит поиск одинаковых пикселей и вывод цвета по контуру
Ниже приведены скрины работы программы, необходимо добиться такого же результата при помощи гистограммы цветов
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(); }
Решение задачи: «Создать гистограмму цветов из цветов загруженного изображения и искать с помощью нее пиксели одинакового цвета»
textual
Листинг программы
hslStatistics.Luminance.Values rgbStatistics.Red.Values rgbStatistics.Green.Values rgbStatistics.Blue.Values
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д