В ожидании ответа [Повелитель капчи]Алгоритм для заливки пикслелей в Bitmap

  • На форуме работает ручное одобрение пользователей. Это значит, что, если Ваша причина регистрации не соответствует тематике форума, а также Вы используете временную почту, Ваша учётная запись будет отклонена без возможности повторной регистрации. В дальнейшем - пожизненная блокировка обоих аккаунтов за создание мультиаккаунта.
  • Мы обновили Tor зеркало до v3!
    Для входа используйте следующий url: darkv3nw2...bzad.onion/
  • Мы вновь вернули telegram чат форуму, вступайте, общайтесь, задавайте любые вопросы как администрации, так и пользователям!
    Ссылка: https://t.me/chat_dark_time

Zer0neX

Участник

Zer0neX

Участник
19 Янв 2017
32
11
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Здравствуйте, господа! Вообщем, требуется написать какой-то более-менее шустрый алгоритм для заливки пустых пространств в букве черным цветом. Что-то я не догоняю как это реализовать. Что именно требуется, смотрите на видео. Там присутствуют "дыры" в буквах, их надобно залить =)
Вот кое-какой код из алгоритма восстановления целостности букв.

Код:
        public static List<Point> FindSpacesH(Bitmap bitmap, int threshold)
        {
            List<Point> points = new List<Point>();
            for (int y = 0; y < bitmap.Height; y++)
            {
                int startPoint = -1;
                for (int x = 0; x < bitmap.Width; x++)
                {
                    if (startPoint == -1) { if (GetGrayScale(bitmap.GetPixel(x, y)) == 0) startPoint = x; }
                    else
                    {
                        if (GetGrayScale(bitmap.GetPixel(x, y)) == 0)
                        {
                            if (x - startPoint <= threshold) { for (int i = startPoint + 1; i < x; i++) points.Add(new Point(i, y)); }
                            startPoint = -1;
                        }
                    }
                }
            }
            return points;
        }
        public static List<Point> FindSpacesV(Bitmap bitmap, int threshold)
        {
            List<Point> points = new List<Point>();
            for (int x = 0; x < bitmap.Width; x++)
            {
                int startPoint = -1;
                for (int y = 0; y < bitmap.Height; y++)
                {
                    if (startPoint == -1) { if (GetGrayScale(bitmap.GetPixel(x, y)) == 0) startPoint = y; }
                    else
                    {
                        if (GetGrayScale(bitmap.GetPixel(x, y)) == 0)
                        {
                            if (y - startPoint <= threshold) { for (int i = startPoint + 1; i < y; i++) points.Add(new Point(x, i)); }
                            startPoint = -1;
                        }
                    }
                }
            }
            return points;
        }
        public static Bitmap HorizontalFiller(Bitmap bitmap, int threshold, int passes = 1)
        {
            Bitmap bmp = (Bitmap)bitmap.Clone();
            for (int i = 0; i < passes; i++)
            {
                List<Point> points = FindSpacesH(bmp, threshold);
                bmp = FillPixels(bmp, points, Color.Black);
            }
            return bmp;
        }
        public static Bitmap VerticalFiller(Bitmap bitmap, int threshold, int passes = 1)
        {
            Bitmap bmp = (Bitmap)bitmap.Clone();
            for (int i = 0; i < passes; i++)
            {
                List<Point> points = FindSpacesV(bmp, threshold);
                bmp = FillPixels(bmp, points, Color.Black);
            }
            return bmp;
        }
        public static Bitmap FillPixels(Bitmap bitmap, List<Point> points, Color color)
        {
            Bitmap bmp = (Bitmap)bitmap.Clone();
            foreach (Point point in points) bmp.SetPixel(point.X, point.Y, color);
            return bmp;
        }
 

О нас

  • Наше сообщество существует уже много лет и гордится тем, что предлагает непредвзятое, критическое обсуждение различных тем среди людей разных слоев общества. Мы работаем каждый день, чтобы убедиться, что наше сообщество является одним из лучших.

    Dark-Time 2015 - 2022

    При поддержке: XenForo.Info

Быстрая навигация

Меню пользователя