Как преобразовать изображение в таблицу
2 ответа
Вы сможете получить большинство из них через OCR, но вам нужно будет вручную проверить данные и исправить некоторые неточности, которые будут там. Это определенно не будет идеальным.
Первое, что нужно сделать, это убедиться, что у вас есть хорошее качество изображения для программного обеспечения OCR:
Вот что я сделал с вашим примером png (я использую Windows):
- Я открыл изображение в Gimp.
Убраны оранжевые / синие фоны:
а) Выберите -> По цвету и щелкнул синий фон
б) Я зажал Shift и нажал на оранжевый фон (это добавит его к текущему выделению)
c) Edit -> Fill With BG Color (устанавливает белый цвет)
d) Ctrl-Shift-A, чтобы отменить выбор
Я удалил частично отрезанную строку "305":
а) использовал кнопку инструмента "Прямоугольный выбор" из палитры и залил выделение цветом BG, как указано выше
Давайте удалим границу таблицы:
а) Нажмите кнопку "Нечеткий выбор" в палитре
б) Нажмите где-нибудь на границе стола (вы должны увидеть "марширующих муравьев" вместо границы)
в) Правка -> Заполнить цветом BG
d) Ctrl-Shift-A, чтобы снова отменить выбор
Нам нужно увеличить количество пикселей, используемых числами, чтобы OCR мог лучше определять их формы
а) Изображение -> Масштабировать изображение. Я выбрал масштабирование на 1000% с помощью линейной интерполяции (другие интерполяции также не будут работать)
Загрузите и установите Tesseract с GitHub
a) В командной строке введите (включите двойные кавычки, чтобы справиться с пробелами в пути, и при необходимости измените пути): "D:\Program Files (x86)\Tesseract-OCR\tesseract" "d:\temp\your_image.png" "d:\temp\your_txt_file_output"
Вывод с текстовым файлом с добавлением
.txt
расширение. У него все еще будет несколько артефактов, но мы можем легко исправить их в Notepad++ (или аналогичных):а) Запятые рассматривались как точки останова, поэтому я сделал "Найти и заменить" на "." с "," (я предполагаю, что у вас нет десятичных точек в данных!)
б) Перед несколькими запятыми было несколько пробелов, поэтому я нашел и заменил "," на ", (заметьте, что в находке я добавил пробел перед запятой)
c) В числах еще были пробелы, поэтому я выполнил поиск и замену "" на "" (пробел с пустой заменой)
Это дало следующий результат:
298
299
300
301
302
303
304
910820000
920820000
930820000
941820000
952820000
983820000
9? 4820000
210000
220000
220000
220000
220000
220000
220000
2500
2500
3000
3000
3000
3000
3000
19000
19000
20000
20000
20000
20000
20000
Обратите внимание на вопросительный знак вместо 7 во втором блоке текста. Такие вещи еще нужно привести в порядок.
Наконец, вы должны скопировать и вставить строки текста в таблицу и т. Д.
Я хотел опубликовать еще один вариант, который я наконец нашел в Интернете.
Несмотря на то, что я думаю, что ответ K Scandrett заслуживает того, чтобы быть правильным, так как он не зависит от URL, который может снизиться.
Если это разовая / редкая необходимость, и вы являетесь пользователем ОС Windows и у вас установлен Microsoft Excel, приложение поддерживает извлечение данных изображения в Excel. Перейдите по этой ссылке для получения полной справки.