Небольшой урок по новым функциям SPLIT_CIRCUIT_EX, SPLIT_SHADES_EX и SET_SPLIT_EX_FILTER
SPLIT_CIRCUIT_EX
Данная функция аналог функции SPLIT_CIRCUIT но она имеет некоторые дополнения
1) Функция ищет пиксели не по черному цвету, а по отличному от белого, поэтому если фон капчи белый, то применять функцию COLOR_TRSHOLD для затемнения не нужно
2) Первый обязательный параметр - радиус обзора, объясняю что это, функция ищет пиксель отличный от белого и собирает все пиксели что к нему прилегают
но бывает такая проблема когда изображения не качественное и имеет разрывы, для этого мы использовали функцию SEAL_MICROCRACS, теперь она не нужна, для того чтобы преодолеть разрыв достаточно увеличить радиус обзора
3) Функция имеет второй необязательный параметр COLOR_TRESHOLD, для тех кто не в теме, каждый пиксель картинки имеет цвет который появляется благодаря смешиванию трех цветов Rred Green Blue их значения нумеруются от 0 до 255, например у нас есть капча таких оттенков как бледный фон, бледные цифры на фоне - шум и нужные нам цифры, они самые темные
открываем капчу в каком ни будь редакторе(фотошп) смотрим цвета пикселей (Пипетка), например фон у нас примерно между RGB(240,240,240) и RGB(230,230,230) бледные мелкие цифры где-то между RGB(190,180,195) и RGB(170,165,179) самые темные цвета между RGB(90,80,95) и RGB(70,65,79) установив границу в 100 - RGB(100,100,100) все цвета которые выше 100 станут белыми RGB(255,25,255), а ниже черными RGB(0,0,0) и получится нужная нам для работы картинка
после обработки функцией мы получим массив из этих картинок который будем потом использовать для создания эталонов для моделей или нейронных сетей
SPLIT_SHADES_EX
Функция SPLIT_SHADES_EX предназначена для разделения цветных символов с которыми не справилась функция SPLIT_CIRCUIT_EX. Функция имеет один обязательный параметр - уровень сжатия ( функция COMPRES_SHADES ) который имеет значения от 0 до 3, вбирайте уровень на угад методом тыка. Выбирать всегда самый большой не всегда вариант. Также функция сразу сортирует оттенки и делает картинки черно белыми, тоесть полностью заменяет функции COMPRES_SHADES, SPLIT_SHADES, COLOR_TRESHOLD.
SET_SPLIT_EX_FILTER
Наверно самая важная новая функция SET_SPLIT_EX_FILTER, задача которой установить фильтр для нарезанных изображений.
FILTER_MAX_WIDTH - установить максимальную ширину
FILTER_MAX_HEIGHT - установить максимальную высоту
FILTER_MIN_WIDTH - установить минимальную ширину
FILTER_MIN_HEIGHT - установить минимальную высоту
SET_FIXED_WIDTH - отцентрировать изображение на новой картинке с указанной шириной
Начну с самого главного, SET_FIXED_WIDTH, для того чтобы модели правильно работали, а нейронные сети вообще работали, картинки должны иметь одинаковую высоту и ширину. Для этого и нужен этот фильтр, он отцентрирует (разместит по центру) символы на новой картинке с высотой как у исходной капчи и шириной которую вы укажите.
Как выбрать ширину? нужно пересмотреть все символы на капчи, найти самый широкий и прибавить к нему на всякий случай еще 5-6, тоесть если ширина 30 то пишем например 36.
Как узнать ширину символов? открываем программу paint и обводим символы, там вам покажет ширину и высоту прямоугольника в который вы обвели символ, см пример
Все остальные фильтры нужны чтобы избавится от мусора, точек, линий, фона и тд, путем указания минимальных и максимальных размеров символа.
Примеры
Загружаем и делим
[LOAD_CAPTCHA][http://motormoney.org/captcha?79051] [SPLIT_SHADES_EX][1] [DISPLAY_ARRAY_IMG]
получилось
меряем ширину и высоту символов примерно 30 на 40, добавляем фильтры
[LOAD_CAPTCHA][http://motormoney.org/captcha?79051] [SET_SPLIT_EX_FILTER][FILTER_MIN_WIDTH][20] [SET_SPLIT_EX_FILTER][FILTER_MIN_HEIGHT][30] [SET_SPLIT_EX_FILTER][FILTER_MAX_WIDTH][30] [SET_SPLIT_EX_FILTER][SET_FIXED_WIDTH][36] [SPLIT_SHADES_EX][1] [DISPLAY_ARRAY_IMG]
Получаем в результате
Фильтры будут со временем добавляться, присылайте сюда капчу которую не смогли решить, будем придумывать новые фильтры.