Как получить баллы из строки в OpenCV?

Функция cvLine () может нарисовать прямую линию по двум точкам P1 (x1, y1) и P2 (x2, y2). Я застрял в получении точек на этой линии вместо того, чтобы сразу рисовать ее.

Предположим, я рисую линию (зеленым цветом) AB и другую линию AC. Если я прослежу все пиксели на линии AB, то будет точка, где я столкнусь с черными пикселями (граница круга, охватывающего A), прежде чем я достигну B.

Опять же, при перемещении по пикселям на линии AC черные пиксели будут встречается дважды.

line points

Обычно я пытаюсь получить точки на (зеленых) линиях, но cvLine () , похоже, не возвращает никакой структуры последовательности точек. Есть ли способ получить эти точки с помощью OpenCV?

Довольно глупым подходом было бы нарисовать линию с помощью cvLine () на отдельном изображении, затем найти на нем контуры, а затем пересечь этот контур CvSeq * (нарисованная линия) для точек. Как исходное изображение, так и исходное изображение одинакового размера, мы получим позиции точек. Как я уже сказал, тупой. Любой просвещенный подход был бы замечательным!

10
задан AruniRC 14 July 2011 в 06:31
поделиться