Вырезать изображение по маске.



  • Есть лёгкая капча, которая гадается OCR онлайн, но эта капча на постоянном фоне, который не меняется. Чтобы повысить процент распознания, хочу обрезать изображение по маске. Вырезать и сохранить отдельно фон, затем по этому фону капчу получить.
    Пока ищу программы, которые смогут это сделать, с управлением через консоль.

    В самом BAS'e есть работа с изображениями, через него можно обрезать изображение по координатам. В теории же можно написать сравнение по пиксельно, если пиксель с маски идентичен пикселю на капче, то закрасить белым.. Пожалуй попробую в BAS'e реализовать ))



  • Ну капец. Сам скрипт написал за пол часа.. и три часа мучался с модулем "работа с изображением".
    Изображение не сохранялось и всё тут. Оказалось надо было использовать экшен получить данные изображения.

    Вот сам проект. Изображение 100x100 обрезал за 2 секунды.
    Маска
    0_1502469412937_100x100.png
    Капча
    0_1502469516901_100x100 капча.png
    Результат
    0_1502469569076_1 test.png



  • Решил проверить на большой картинке 1000x700 из вк, скрипт работал почти три минуты. Результат выдал с артефактами
    0_1502470288401_test.png
    Думаю это из за расширения jpg изначального файла.



  • Странности продолжаются. Добавил экшен изменить формат изображения, перевёл в png. Результат тот же.
    Если берёшь одно и тоже изображение как маску и капчу, на выходе получаешь идеальный белый лист, заменяются все пиксели.
    Однако стоит добавить текст и здрасте.. Хотя может проблема и в paint..
    Маска
    0_1502472047477_cced9a8b-adbe-4f45-ad34-cf6589f34fe6_1488176842356.jpg

    Капча
    0_1502472082387_cced9a8b-adbe-4f45-ad34-cf6589f34fe6_14881768423562.jpg

    Результат
    0_1502472107711_test3.png



  • Так и знал, что всё дело в формате. Конвертировал файл в bmp и вуаля!
    Маска
    0_1502472503030_Маска.bmp

    Капча
    0_1502472484858_Капча.bmp

    Результат
    0_1502472531242_test8.bmp



  • @Fox
    Интересные експерименты :)


Log in to reply
 

  • 9
  • 11
  • 8
  • 6
  • 2
  • 16
  • 23
  • 24