2012-06-21 19 views
5

Si tratta di un progetto che riguarda il rilevamento del testo in un'immagine utilizzando OpenCV in C. Il processo consiste nel rilevare i colori all'interno e all'esterno dei contorni corrispondenti e il modo per farlo è disegnare le normali sui contorni in posizioni equispaziate e estrai i colori dei pixel nelle posizioni corrispondenti dei punti finali normali.Ricerca della lunghezza del contorno in opencv

Sto cercando di implementarlo utilizzando il seguente codice ma non funziona. Voglio dire, il suo modo di disegnare le normali, ma non in modo equo e distanziato.

for(; contours!=0 ; contours = contours->h_next) 
{ 
     CvScalar color = CV_RGB(rand()&255, rand()&255, rand()&255); 

     cvDrawContours(cc_color, contours, color, CV_RGB(0,0,0), -1, 1, 8, cvPoint(0,0)); 
     ptr = contours; 
     for(i=1; i<ptr->total; i++) 
     { 
     p1 = CV_GET_SEQ_ELEM(CvPoint, ptr, i); 

     p2 = CV_GET_SEQ_ELEM(CvPoint, ptr, i+1); 

     x1 = p1->x; 
     y1 = p1->y; 

     x2 = p2->x; 
     y2 = p2->y; 
     printf("%d %d  %d %d\n",x1,y1,x2,y2); 
     draw_normals(x1,y1,x2,y2); 
    } 
} 

Quindi non v'è un modo per trovare la lunghezza di un contorno in modo che possa dividerlo per il numero di normali che voglio disegnare. Grazie in anticipo.

MODIFICA: la funzione draw_normal disegna le normali tra due punti passati come parametri.

+0

Un'immagine originale, l'output che hai e output desiderato se caricati sarebbe grande per questa domanda –

risposta

9

Quindi c'è un modo per trovare la lunghezza di un contorno?

Sì, è possibile trovare la lunghezza di un contorno utilizzando la funzione standard OpenCV, cvarcLength().

Check Documentation here.

+0

Ok .. capito .. :) Ma come fa a restituire la lunghezza? Ho pensato che avrebbe restituito il numero di pixel del perimetro del contorno. Quindi ero un po 'confuso notando che il tipo di ritorno era doppio. – bluechill

+0

Dovrai controllare la fonte: http://code.opencv.org/projects/opencv/repository/entry/trunk/opencv/modules/imgproc/src/shapedescr.cpp (Linea 45 in poi) –

+0

Inoltre, i contorni non avere tutti i punti di confine Per vedere cosa ha, visita qui: http://opencvpython.blogspot.in/2012/06/hi-this-article-is-tutorial-which-try.html –

Problemi correlati