From: Dominic L. <ma...@us...> - 2005-11-24 21:15:23
|
Update of /cvsroot/robotflow/RobotFlow/OpenCV/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25576 Modified Files: CvCaptureFrame.cc CvHaarDetect.cc Log Message: fixed memory leaks, added VisualROI vector output Index: CvHaarDetect.cc =================================================================== RCS file: /cvsroot/robotflow/RobotFlow/OpenCV/src/CvHaarDetect.cc,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** CvHaarDetect.cc 24 Nov 2005 20:18:34 -0000 1.1 --- CvHaarDetect.cc 24 Nov 2005 21:15:07 -0000 1.2 *************** *** 12,15 **** --- 12,16 ---- #include <highgui.h> #include <time.h> + #include <Vector.h> using namespace FD; *************** *** 86,90 **** * * @output_name OUT_ROI ! * @output_type VisualROI * @output_description Region of interest corresponding to current model. * --- 87,91 ---- * * @output_name OUT_ROI ! * @output_type Vector<ObjectRef> * @output_description Region of interest corresponding to current model. * *************** *** 153,157 **** m_contourStorage = cvCreateMemStorage(0); ! m_objectROI = RCPtr<VisualROI>(new VisualROI(e_VISUALROI_rectangular, 1, 1, 1, 1, 0)); } --- 154,159 ---- m_contourStorage = cvCreateMemStorage(0); ! m_ROIVect = RCPtr<Vector<ObjectRef> >(new Vector<ObjectRef>()); ! //(new VisualROI(e_VISUALROI_rectangular, 1, 1, 1, 1, 0)); } *************** *** 160,164 **** cerr<<"CvHaarDetect destruction"<<endl; cvReleaseImage(&m_curImage); ! //TODO: imageRef->destroy(); } --- 162,166 ---- cerr<<"CvHaarDetect destruction"<<endl; cvReleaseImage(&m_curImage); ! } *************** *** 196,199 **** --- 198,204 ---- //ftime(&t1); + //make sure we have an empty vector + m_ROIVect->resize(0); + // No tracked target, so do standard detection foundObject = ObjectDetection(); *************** *** 210,219 **** (*outputs[m_ImageOutID].buffer)[count] = imageRef; ! if (foundObject) { ! (*outputs[m_roiOutID].buffer)[count] = m_objectROI; ! } ! else { ! (*outputs[m_roiOutID].buffer)[count] = nilObject; ! } } catch (BaseException *e) { --- 215,221 ---- (*outputs[m_ImageOutID].buffer)[count] = imageRef; ! ! (*outputs[m_roiOutID].buffer)[count] = m_ROIVect; ! } catch (BaseException *e) { *************** *** 226,229 **** --- 228,232 ---- int i, detcount; ObjectPos* det; + bool retval = false; try { *************** *** 252,260 **** // << std::endl; ! m_objectROI->SetXCen(r.rect.x + r.rect.width / 2); ! m_objectROI->SetYCen(r.rect.y + r.rect.height / 2); ! m_objectROI->SetHSX(r.rect.width / 2); ! m_objectROI->SetHSY(r.rect.height / 2); /*if( saveDetected ) { --- 255,269 ---- // << std::endl; ! ! VisualROI *objectROI = new VisualROI(e_VISUALROI_rectangular, 1, 1, 1, 1, 0); ! ! objectROI->SetXCen(r.rect.x + r.rect.width / 2); ! objectROI->SetYCen(r.rect.y + r.rect.height / 2); ! objectROI->SetHSX(r.rect.width / 2); ! objectROI->SetHSY(r.rect.height / 2); + m_ROIVect->push_back(ObjectRef(objectROI)); + + retval = true; /*if( saveDetected ) { *************** *** 269,278 **** } ! //FIXME: seems to be usefull ! ! //cvReleaseImage( &m_curImage ); } catch (BaseException *e) { throw e->add(new GeneralException("Exception in CvHaarDetect::ObjectDetection:",__FILE__,__LINE__)); } } --- 278,288 ---- } ! if( det ) { cvFree( (void**)&det ); det = NULL; } ! } catch (BaseException *e) { throw e->add(new GeneralException("Exception in CvHaarDetect::ObjectDetection:",__FILE__,__LINE__)); } + return retval; } *************** *** 311,315 **** RCPtr<Image> m_outputImage; ! RCPtr<VisualROI> m_objectROI; bool isFrontFace; bool isProfileFace; --- 321,327 ---- RCPtr<Image> m_outputImage; ! //RCPtr<VisualROI> m_objectROI; ! RCPtr<Vector<ObjectRef> > m_ROIVect; ! bool isFrontFace; bool isProfileFace; Index: CvCaptureFrame.cc =================================================================== RCS file: /cvsroot/robotflow/RobotFlow/OpenCV/src/CvCaptureFrame.cc,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** CvCaptureFrame.cc 24 Nov 2005 20:18:34 -0000 1.1 --- CvCaptureFrame.cc 24 Nov 2005 21:15:07 -0000 1.2 *************** *** 54,58 **** CvCaptureFrame(string nodeName, ParameterSet params) : BufferedNode(nodeName, params) - , m_storage(NULL) , m_capture(NULL) , m_frame(NULL) --- 54,57 ---- *************** *** 121,125 **** } ! //cvReleaseImage( &frame_copy ); } } --- 120,125 ---- } ! cvReleaseImage(&m_frame); ! m_frame = NULL; } } *************** *** 139,145 **** int m_height; ! CvMemStorage *m_storage; - Image *m_imageRef; }; --- 139,145 ---- int m_height; ! //CvMemStorage *m_storage; ! }; |