Оцифровка графика - извлечение значений образца из изображения графика - PullRequest
8 голосов
/ 01 ноября 2009

Это на самом деле не «OCR», поскольку он не распознает символы, но это та же идея, что и для кривых. Кто-нибудь знает библиотеку обработки изображений или установленный алгоритм для получения значений из (растрового) изображения графика? Например, на этом графике мне трудно читать точные значения своими глазами, потому что между линиями сетки есть такие промежутки:

alt text

Я могу использовать прямой край или что-то еще, но он все еще будет подвержен ошибкам. Было бы замечательно, если бы существовало программное обеспечение, которое могло бы просто сделать скриншот любого старого графика и автоматически преобразовать его в таблицу значений или функцию, к которой можно было бы обращаться.

Кажется, это называется "распознавание кривой"? Может также использоваться для извлечения данных из кривых в научных работах, для которых основные данные не публикуются.

И нормально иметь какое-то человеческое руководство. Нет причины, по которой, например, OCR не может прочитать «100» и сопоставить его со строкой, но вполне нормально, чтобы человек давал числовые значения линий после того, как машина извлекла путь кривой относительно линий сетки. В основном меня интересует функция отслеживания кривой относительно сетки, даже если сетка наклонена, повернута или деформирована неаффинным образом .

Обновление:

В настоящее время существует статья в Википедии под названием Преобразование отсканированных графиков в данные с кучей программного обеспечения в ссылках. Также некоторые программы на alternativeto.net . Я предполагаю, что теория принадлежит http://dsp.stackexchange.com сейчас, в то время как программные решения принадлежат http://superuser.com?

Ответы [ 6 ]

5 голосов
/ 01 ноября 2009

Это чрезвычайно сложно и подвержено ошибкам. (Мы так много делаем в химии, где пытаемся анализировать химию.) Это критически зависит от различных параметров и условий.

  1. Является ли изображение битовой картой (только в пикселях) или векторами (EMF, WMF, SVG, PS, PDF ...)? Векторы намного лучше, чем пиксели. Мы работаем с векторами (включая PDF), но не касаемся пикселей. Некоторые из наших коллабораторов будут пытаться использовать пиксели, но только в относительно недавних документах.
  2. Если вы застряли в пикселях, все ли ваши изображения из одного источника? Если это так, у вас есть небольшой шанс извлечь информацию о шрифте. Боюсь, ваш имидж настолько плох, что это потребует огромной работы. Однако, если вы можете разработать шрифт, у вас есть шанс извлечь текст и цифры, если все документы из одного источника. Вы можете использовать эвристику (правила, например, где могут быть числа) или машинное обучение (список функций, на которых можно обучить методы).
  3. Похоже, что ваше изображение было отсканировано (поскольку оси имеют пикселизацию). Это делает это еще хуже. То, что кажется прямой линии глазу, ужасно для машины. Ваше изображение перекошено на странице? Возможно, вам придется насторожить его.
  4. Если у вас есть модель для линий и кривых, то вы можете изменить ожидаемые параметры моделирования в изображение. Но это не тривиально.

Извините за пессимизм. Если вам действительно нужна информация, то это может быть сделано с большими инвестициями или сотрудничеством с группами, которые делают подобные вещи.

3 голосов
/ 26 декабря 2010

http://www.digitizeit.de/ - программа для оцифровки графиков.

3 голосов
/ 02 ноября 2009

Google для "программного обеспечения для распознавания кривой" предлагает http://www.curveunscan.com/

2 голосов
/ 15 августа 2010

Существует также potrace , который связан, и на этой странице в свою очередь упоминаются другие альтернативы

1 голос
/ 24 апреля 2015

Я использую im2graph для преобразования графических изображений в данные, то есть числа. im2graph бесплатен и доступен для Linux и Windows. Очень плавный и требует очень мало усилий с вашей стороны для получения результатов. Смотри http://www.im2graph.co.il

1 голос
/ 01 ноября 2009

Я не знаю ни одного программного обеспечения, которое выполняет то, что вы просите, но если вы можете получить всего несколько баллов, вы можете использовать какую-то регрессию, чтобы найти лучшую функцию, которая соответствует этим точкам. Этот конкретный график выглядит как экспоненциальная функция. Таким образом, вы хотите найти калькулятор экспоненциальной регрессии.

...