ho fatto un programmino che prende dei punti con cvGoodFeaturesToTrack(),
poi migliora la ricerca con cvFindCornersSubPix().
Quando vado a evidenziare i punti sull immagine pero , essi mi vengono fuori tutti in alto a sinistra. qualcuno ha qualche idea sul perche di questo fatto??
il codice:
int main (int argc, const char * argv[]) {
IplImage* img = cvLoadImage("mano.jpg",CV_LOAD_IMAGE_GRAYSCALE);
IplImage* eigImage=cvCreateImage(cvGetSize(img),32,1);
IplImage* tempImage=cvCreateImage(cvGetSize(img),32,1);
int corner_count=MAX_CORNERS;
CvPoint2D32f corners[MAX_CORNERS];
cvGoodFeaturesToTrack(img,eigImage,tempImage,corne rs,&corner_count,0.01,5,0,3,0,0.4);
cvFindCornerSubPix(img,corners,corner_count,cvSize (10,10),cvSize(-1,-1),cvTermCriteria(CV_TERMCRIT_ITER|CV_TERMCRIT_EPS ,20,0.03));
for(int i=0;i<corner_count;i++){
CvPoint p=cvPoint(cvRound(corners[i].x+0.5),cvRound(corners[i].y+0.5));
cvLine(img,p,p,CV_RGB(255,255,255),2,2,2);
}
cvNamedWindow("example", 0);
cvShowImage("example", img);
cvWaitKey(0);
cvReleaseImage(&img);
cvDestroyWindow("example");
return 0;
}
ho trovato dei problemi nell utilizzare cvSetReal2D ovvero mi da sempre errore quindi creo un punto con cvPoint e disegno una linea da quel punto a quel punto in modo da ottenere disegnato esattamente il punto di interese
grazie in anticipo
