Ejecutando la aplicación OpenCV durante mucho tiempo
Frecuentes
Visto 48 veces
0
Tengo una aplicación openCV que rastrea 3 colores diferentes y dibuja líneas entre donde está rastreando. Tengo que mantener esta aplicación funcionando durante unas horas, pero después de unos 40 minutos me dice que mi El disco de inicio de mac osx no tiene más espacio disponible para la memoria de la aplicación. ¿Hay alguna manera de vaciar la memoria para que pueda seguir funcionando?
IplImage* imgYellowThresh1 = GetThresholdedImage1(frame,1);
double moment10 = cvGetSpatialMoment(moments_yellow, 1, 0);
double moment01 = cvGetSpatialMoment(moments_yellow, 0, 1);
double area = cvGetCentralMoment(moments_yellow, 0, 0);
así que hago esto para otros 2 colores, luego lo agrego al marco
cvReleaseImage(&imgYellowThresh1);
delete moments_yellow;
0 Respuestas
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas opencv or haz tu propia pregunta.
Debe tener una pérdida de memoria en su código. No hay problema en ejecutar la aplicación durante mucho tiempo a menos que asigne memoria todo el tiempo (
cvCreateImage
) que luego no liberas (cvReleaseImage
). - ChronoTriggerEs muy probable que tenga una pérdida de memoria debido a una gestión de memoria manual inexacta. A menos que ya tenga demasiado código escrito en este estilo, recomendaría reescribirlo usando
cv::Mat
IplImage
, ya que este último es considerado obsoleto.cv::Mat
, por otro lado, es una representación de imagen de nuevo estilo que tiene una excelente gestión de memoria basada en RAII. Esto debería reducir drásticamente la cantidad de posibles problemas relacionados con la memoria (aunque no todos, por lo que aún debe realizar un seguimiento de la asignación de memoria en su aplicación). - ffriendQue es
GetThresholdedImage1()
? ¿Puedes publicar algo más de código? Utilice la nueva API y tendrá muchos menos problemas. - BullLo siento, creo que se arregló con un lanzamiento de imagen simple. ¿Iplimage se traduce a cv::Mat con bastante facilidad? Gracias. - user2645586