Как сгенерировать математическую формулу по ее графику?

Имея график формулы, как я могу найти ее формулу?

Нужно ли мне OCR или что-то в этом роде?


person Community    schedule 15.11.2015    source источник
comment
Google Подгонка кривой.   -  person aioobe    schedule 15.11.2015
comment
В общем случае ответ слишком широк. Вам лучше задать вопрос по Mathematics — и обязательно включить некоторые детали в свой вопрос. Пример.   -  person 200_success    schedule 15.11.2015
comment
@ 200_success Я не согласен с тем, что ему лучше спросить по математике, потому что это явно задача DIP / CV и подбора кривой. Парни из чистой математики обычно понятия не имеют о таких вещах.   -  person Spektre    schedule 15.11.2015
comment
Почему ОКР? Это было бы применимо только в том случае, если бы вы получили формулу на входном изображении. Но, с другой стороны, масштабы должны быть известны, поэтому вы можете использовать их для этого. Добавьте пример ввода графика, который вы хотите преобразовать ... Язык программирования и некоторые другие детали ... такие как необходимая точность, количество измерений (при условии, что 1D-функции или 2D-кривые )   -  person Spektre    schedule 15.11.2015
comment
Обратите внимание, что подгонка кривой может дать вам формулу a, но это не обязательно будет точная формула, которая использовалась для создания графика.   -  person Jongware    schedule 15.11.2015


Ответы (1)


В целом вам нужно:

  1. определить положение графика (ограничивающий прямоугольник) на изображении

    вы обычно ищете прямоугольную область (обычно черного цвета)

  2. извлечь/ввести масштабы графика

    либо введите их пользователем, либо прочитайте через OCR (как вы предложили). Значения шкалы и единицы измерения обычно располагаются по осям x,y ограничивающей рамки графика. Вам нужно найти как минимум 2 отдельные точки на оси, чтобы сформировать преобразование из пикселей в единицы. В случае нелинейных масштабов вам нужно иметь больше точек для обнаружения логарифмических и т. д. масштабов...

  3. извлекать точки графика

    кривая графика обычно имеет другой цвет или ширину штриха, поэтому извлечь все точки должно быть относительно легко. Сформируйте список точек (в случае функции, отсортированной по x).

  4. применить аппроксимацию кривой к точкам из #3

    существует много подходов... можно использовать кусочную интерполяцию, кусочную аппроксимацию БЕЗЬЕ/СПЛАЙН, интерполяционные полиномы (Лагранжа...) или FFT/DCT (синусоидальные волны). Для поиска аппроксимации несложных фигур будет достаточно минимизации расстояния между точками и вычисляемого многочлена. Этот шаг в основном зависит от того, какая точность, форма выходной функции, время выполнения вам нужны.

Трудно быть более конкретным, поскольку вы не предоставили никаких подробностей.

Поиск математического алгоритма, который соответствует вводу и выводу вместе, может немного помочь.

person Spektre    schedule 15.11.2015