La función cvLine()
puede trazar una línea recta dados dos puntos P1 (x1, y1) y P2 (x2, y2). En lo que estoy estancado es en obtener los puntos en esta línea en lugar de dibujarlos de inmediato.¿Cómo obtener puntos de una línea en OpenCV?
Supongamos que trazo una línea (en verde) AB y otra línea AC. Si sigo todos los píxeles en la línea AB, habrá un punto en el que encuentro píxeles negros (el borde del círculo que encierra A) antes de llegar a B.
De nuevo cuando se viaja a lo largo de los píxeles en línea AC píxeles negros ser encontrado dos veces
Básicamente estoy tratando de conseguir los puntos sobre las líneas (verde), pero cvLine()
no parece devolver cualquier estructura de la secuencia de puntos. ¿Hay alguna forma de obtener estos puntos usando OpenCV?
Un enfoque bastante tonto sería dibujar la línea usando cvLine()
en una imagen separada, luego encontrar los contornos en ella, luego recorrer esa contornos CvSeq*
(la línea dibujada) para los puntos. Tanto la imagen raspada como la imagen original son del mismo tamaño y obtendríamos las posiciones de los puntos. Como dije, algo tonto. ¡Cualquier acercamiento iluminado sería genial!
gracias. de alguna manera lo perdí en los documentos! – AruniRC
El enlace parece estar roto. Aquí hay uno que funciona por ahora http://docs.opencv.org/modules/core/doc/drawing_functions.html#lineiterator –
Gracias @CalebDoucet Actualicé mi respuesta. –