Здравствуйте.
Есть у меня такая задача, я напишу, как я хочу ее решить, а вы, если не трудно, укажите на ошибки в размышлениях и использовании инструментов.
Задача. отсканировать много однообразных документов на серой бумаге и довести до ума.
Если использовать фотошоп и прочее - слишком много ручной работы в виде закликивания шума и восстановления затёкших, после использования фильтров, букв.
Подумалось, что можно поступить так:
До какой-то степени файлы приводятся к одному тону фотошопом, потом передаются в связку Phyton+OpenCV.
Планирую сделать так.
1.Для отчистки изображения найти контуры, мелкие контуры посчитать шумом и залить белым цветом.
Пробелема. Часть мелких контуров отвалившиеся хвостики от букв и удалять их нельзя. Думаю, что нужно взять мелкий контур и если на определенном растоянии от него есть большой - соединить их линией.
Изначально казалось что подойдет distanceTransform() + threshold(), но он действует на всё изображение, а мне нужно на конкретную точку (проще,наверное, использовать центр контура).
Подскажите, как это проделать эстетично?
2. Для повышения качества рваные буквы планируется распознать путем сравнения контуров с заранее подготовленными образцами и подменить на отчищенные буквы через matchShapes().
Проблема. Как быть с буквами типа "й","i", состоящими из двух контуров. Рассматривать как независимые символы или объединять. Если объединять, то как?
С распознованием, вроде, проблем не предвидится, качество распознования можно наращивать бесконечно. Как вариант рваность можно убирать через ApproxPoly(), но, кажется, это будет сложнее.
Хотелось бы услышать мнение профессионалов о моих размышлениях и получить совет, как решить проблемы.