2017-04-20 4 views
1

A partir du programme suivant, j'ai besoin de trouver la valeur x et y des coordonnées à partir de la valeur cvPoint.Comment obtenir les coordonnées x et y séparément à partir de cvPoint?

for(int i=0; i<nomdef; i++) 
{ 
    if(defectArray[i].depth > 40) 
    { 
     con=con+1; 

     cvLine(src, *(defectArray[i].start), *(defectArray[i].depth_point),CV_RGB(255,255,0),1, CV_AA, 0); 
     cvCircle(src, *(defectArray[i].depth_point), 5, CV_RGB(0,0,255), 2, 8,0); 
     cvCircle(src, *(defectArray[i].start), 5, CV_RGB(0,255,0), 2, 8,0); 
     cvLine(src, *(defectArray[i].depth_point), *(defectArray[i].end),CV_RGB(0,255,255),1, CV_AA, 0); 
     cvDrawContours(src,defects,CV_RGB(0,0,0),CV_RGB(255,0,0),-1,CV_FILLED,8); 
    } 
} 

Le cercle est dessiné à l'aide des points. Je dois obtenir les coordonnées x et y à partir des points. Le tableau de défauts est créé par CvConvexityDefect* defectArray.

Répondre

0

Si le nom de votre objet point est myPoint, vous pouvez accéder à ses valeurs x et y comme

int x = myPoint.x ; 
int y = myPoint.y ; 

dans votre cas, vous pouvez écrire

int x = *(defectArray[i].start).x ; 
int y = *(defectArray[i].start).y ; 
+0

demande de membre « x » dans ' (defectArray + 32u) -> CvConvexityDefect :: start ', qui est de type pointeur' CvPoint * '(peut-être que vous vouliez utiliser' -> '?) int x1 = * (defectArray [1] .start) .x; J'ai eu l'erreur à ce sujet .. que dois-je faire? –