c++ - Two situations regarding Declaring / Releasing IplImages -
i care lot memory in project. has crashed before due memory leak. i'm thinking of 2 approaches:
- declaring different iplimages once in main project part.
- declaring everytime need declare iplimage , release when don't need anymore.
supposing i'm having realtime project, , thus, iplimages overwritten generate new ones, , using following lines declaration / release:
iplimage*image=cvcreateimage(cvsize(640, 480), ipl_depth_8u, 1); cvreleaseimage(&image); what best way optimize use of memory?
you can have 1 iplimage pointer, use cvcreateimageheader fill header , cvsetdata fill image data buffer every time. @ end can use cvreleaseimageheader release it.
iplimage *m_img_show = null; cvsize cv_img_size = cvsize(m_width,m_height); m_img_show = cvcreateimageheader(cv_img_size, ipl_depth_8u,3); use every time fill image m_pbuffer.
cvsetdata(m_img_show, m_pbuffer, m_width*3); at end release header , image data buffer
cvreleaseimageheader(&m_img_show);
Comments
Post a Comment