IplImage* cvCloneImage( const IplImage* image );
在使用函数之前,不用内存,即不用。该函数会自己开一段内存,然后复制好image里面的数据,然后把这段内存中的数据返回.
例如
IplImage *src;
IplImage *dst;
dst = cvCloneImage(src);
就是直接把src这个图像复制给dst,不用给dst内存空间了,即不用写dst = cvCreateImage(cvGetSize(src),8,3).
因为如此,所以如果想把某一图像的感兴趣区复制给当前图像的感兴趣区,一定不要使用此函数,如果这样的话,当前图像的非感兴趣区也会复制。
但是可以改用cvCopy复制,这两个函数有点像传值和传址方式的调用,cvClone函数与cvClonmImage类似。
cvSetImageROI(m_pImage,downRect);
cvSetImageROI(dst,downRect);//设置ROI区域相同
cvCopy(m_pImage,dst,NULL);
cvResetImageROI(m_pImage);//释放ROI
cvResetImageROI(dst);