Título: Error cvFindContour en Opencv Publicado por: JaviWar en 19 Marzo 2013, 18:43 pm Buenas estoy intentando contar los contornos de una foto que contiene pelotas.
Este es el código y el error que me da al ejecutar. No sé a que puede ser debido. La apli no esta terminada. CODIGO #include "cv.h" #include "cxcore.h" #include "highgui.h" #include "stdio.h" int Nc; CvSeq* contour = NULL; int main(int argc, char* argv[]){ static CvMemStorage* memoria = 0; cvNamedWindow( "Contours 2", 1 ); IplImage* img_color = cvLoadImage( "celulas.jpg", 0 ); IplImage* img_contorno = cvCreateImage( cvGetSize(img_color), 8, 1 ); IplImage* img_final = cvCreateImage( cvGetSize(img_color), 8, 3 ); cvThreshold( img_color, img_contorno, 50,150, CV_THRESH_BINARY ); Nc = cvFindContours(img_contorno, memoria, &contour,sizeof(CvContour),CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, cvPoint(0,0) ); printf( "Total Contours Detected: %d\n", Nc ); cvShowImage( "Contours 2", img_contorno ); cvWaitKey(); cvDestroyWindow( "Contours 2" ); cvReleaseImage( &img_color ); cvReleaseImage( &img_contorno ); cvReleaseImage( &img_final ); return 0; } ERROR OpenCV ERROR: Null pointer () in function cvStartFindContours, cvcontours.cpp(209) Terminating the application... Violación de segmento Título: Re: Error cvFindContour en Opencv Publicado por: avesudra en 19 Marzo 2013, 23:11 pm Lo más seguro es que se te haya olvidado inicializar la memoria:
Código Que conste que no entiendo de OpenCV pero es lo más lógico siendo una violación de segmento.Para inicializarla creo que debes hacer esto: Código ¡Un saludo! Título: Re: Error cvFindContour en Opencv Publicado por: JaviWar en 20 Marzo 2013, 11:51 am Muchas gracias, voy a probar, es que llevo con esto bastante y no me acaba de quedar claro, como no hay nada así especifico para ver como van las cosas... es un poco un lío.
Probado y perfecto, muchas gracias de nuevo. |