Я провел некоторое исследование по этому вопросу, но я думаю, что мой вопрос существенно отличается от того, что было задано раньше.Простые способы обнаружения и обрезки блоков (абзацев) текста из образа?
Моя дипломная работа посвящена распознаванию старого словаря и преобразованию результата в XML-подобную базу данных автоматически. Эта часть я выяснил. Тем не менее, я хотел бы обогатить конечный результат, показывая фрагмент сканирования, используемый для каждой записи/заголовка. Поскольку словарь составляет почти 9000 страниц, делать это вручную не может быть и речи.
Это как случайная страница выглядит: http://i.imgur.com/X2mPZr0.png
Поскольку каждая запись всегда соответствует одному пункту, я хотел бы найти способ, чтобы разделить каждое изображение на прямоугольники с текстом (не требует OCR) в виде отдельных файлов, как это (без рисования прямоугольников): http://i.imgur.com/CWtQD6Q.png
Хорошо, что сканирование, которое у меня есть, идентично по форме и размеру и аналогично с точки зрения выравнивания полей/текста. У каждого абзаца всегда есть идентификация.
Плохо то, что я в основном лингвист и не много программиста. Большая часть моего опыта связана с Ruby, XML и CSS. И что некоторые абзацы являются только однострочными.
Я знаю некоторых способов сделать с подобной вещи:
- Algorithm to detect presence of text on image
- http://www.danvk.org/2015/01/07/finding-blocks-of-text-in-an-image-using-python-opencv-and-numpy.html
- http://answers.opencv.org/question/27411/use-opencv-to-detect-text-blocks-send-to-tesseract-ios/
- https://github.com/kanaadp/iReader
, но они требуют значительного времени для мне узнать (особенно, что у меня есть 0 знаний в Pytho n), и я не знаю, разрешают ли они не только обнаружение текста, но и определение абзаца.
Любые ввод/предложение по этому вопросу были бы весьма полезными, особенно новичкам.
@Miki * * Не ** ImageMagick ;-) –
Ничего себе, спасибо! :) Я все еще разрабатываю основы OpenCV, но, похоже, это способ пойти и будет проверять его как можно скорее. Я также подумал о верхнем левом углу прямоугольников в качестве координат. Думаю, последняя часть должна найти способ обрезать их в фактические прямоугольники и использовать их для создания линий разделения. – MrVocabulary
Вы сделали это в Visual Studio/C++? – MrVocabulary