Первым шагом будет извлечение информации о краях из изображения с использованием Canny Edge Detector .Затем вы будете искать линии (кривые и т. Д.) В информации о ребрах.Преобразование Hough полезно для этой задачи.Это даст вам ребер , которые вы хотите для своего графика.Найдя пересечения между ребрами , вы можете найти вершины .
Вы правы, говоря, что это можно сделать на любом языке.Просто выберите тот, который вам удобнее всего, и отыщите в Google нужные библиотеки.Лично я использую Python и OpenCV для такого рода вещей.
Наконец, то, что вы просите, похоже, связано с растровым изображением векторизация .Возможно, вы захотите использовать Google для этого, поскольку уже есть технологии, которые выполняют эту задачу.