例子:
int main()
{
IplImage *src = cvLoadImage("lena.bmp", 0);
IplImage *dst = myFun(src);
cvNamedWindow("src");
cvNamedWindow("dst");
cvShowImage("src",src);
cvShowImage("dst", dst);
cvWaitKey(-1);
cvReleaseImage(&src);
cvReleaseImage(&dst);
cvDestroyAllWindows();
return 0;
}
IplImage* myFun(IplImage *img)
{
IplImage *src = img;
IplImage *dst = cvCreateImage(cvGetSize(src), 8, 1);
int i, j;
for(i = 0; i < src->height; i++)
for(j = 0; j < src->width; j++)
cvSet2D(dst, i, j, cvGet2D(src, i, j));
return dst;
}
这两个结构体的存储空间的释放都在 main 中。
【myFun中的 dst 空间的释放不能在 myFun中,因为它要返回来 main函数中进行显示。只要 知道其地址(由main中 dst 来记录)就可以在main中显示完之后进行释放了】