Создать гистограмму цветов из цветов загруженного изображения и искать с помощью нее пиксели одинакового цвета - 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