@programkod

Как обвести области определенног­о цвета?

Доброго времени суток.У меня есть код который ищет цвета в определенном промежутке.
private readonly Color _from20 = Color.FromArgb(155,155, 155);
  private readonly Color _to20 = Color.FromArgb(255, 255, 255);
 
 bool ColorWithinRange(Color c, Color _from, Color _to)
        {
 
            return
                          (_from.R <= c.R && c.R <= _to.R) &&
                          (_from.G <= c.G && c.G <= _to.G) &&
                          (_from.B <= c.B && c.B <= _to.B);
        }

 for (int i = 0; i < windowOriginal.Width; i++)
                    for (int j = 0; j < windowOriginal.Height; j++)
                    {
                        Color c = imageOriginal.GetPixel(i, j);
                        if (ColorWithinRange(c,  _from20, _to20))
                        {
 
                    Drawing.Line(objectsOriginal, new IntPoint((int)i, (int)j),//Алгоритм прорисовки
                    new IntPoint((int)i, (int)j), Color.Red);//Красный
 
                        }
                    }

Хочу сделать так чтобы объект выделял область указанную в диапазоне но вместо этого он закрашивает её полностью.

мне нужно чтобы вот так обводилось
62f9fc4435549182535461.png
А программа делает вот что

62f9fc5b4a114162445061.png
  • Вопрос задан
  • 72 просмотра
Пригласить эксперта
Ответы на вопрос 1
freeExec
@freeExec
Участник OpenStreetMap
Ну сделай ещё один проход и теперь оставляй только крайние пиксели, т.е. если цвет повторяется, то пропускай его.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы