Iplimag与Cvmat指针无论是全局还是局部的都要释放!Opencv里面定义了 Iplimag与Cmat指针,如 Iplimag *image与Cmat *mat指针,不管你是全局的,还是局部的,最后一定要分别用cvReleaseImage(&image),cvReleaseMat(&mat)来释放,如果你没释放,这两个指针就会一直占着内存,因为在Opencv里头他们两个应该是用new来创建的,只不过这个new它没写出来,用cvReleaseImage或cvReleaseMat,其实应该就是delete操作,只不过是这些操作它都封装在Opencv相应的函数中,我们看不到的。
我试验了一下,创建一个Iplimag *image或Cmat *mat指针没释放的话,它就会占用1M左右的内存,试想如果创建20个这样的局部指针在一个函数里头(我的程序还真创建了那么多),那你每次调用这个函数,它就又占新的20M内存,调用10次就是200M了,接下去就不敢想像了,这样你的程序就会越来越卡,同样的你的电脑也是!所以,Iplimag与Cvmat指针无论是全局还是局部的都要用cvReleaseImage或cvReleaseMat释放!