Я ищу алгоритм, который обнаруживает все линии, включая кривые и т. Д. c. на рисунке, чтобы я мог перерисовать его, используя мое программное обеспечение в программе для рисования, как краска. Пока я хочу, чтобы он был перекрашен в черный и белый. Мой подход состоял в том, чтобы сделать трафарет рисунка и попытаться прочитать все черные пиксели в виде линий и, наконец, нарисовать его. Расчет строки выглядит примерно так:
* for every pixel
* Point p = (x, y)
* List<Point> line
* while p is not marked
* mark p
* p = adjacent darkest pixel //brightness of a pixel is calculated by pixel luminance divided by 2 + luminance of the 8 adjacent pixels divided by 16
* add p to line
* end while
* draw line
* end for
Мой подход работает, но не очень хорошо. Некоторые контуры обнаруживаются в виде двух строк.
У вас есть некоторые улучшения в моем алгоритме или еще лучше?