定义了一个指针型变量temp。
temp在内存中的存储示意:
3CFE3C | 003F9DA0 |
temp变量的地址
temp=cvLoadImage("xxx\1.jpg",0);
printf("%Xn",&temp);temp自身的地址
printf("%pn",temp);/temp的值(就是存储的变量的地址)
cvReleaseImage(&temp);
printf("%Xn",&temp);temp自身的地址
if(temp==NULL)
temp=cvLoadImage("xxx\2.jpg",0);
printf("%Xn",&temp);///temp自身的地址
printf("%pn",temp);temp的值(就是存储的变量的地址)
可以运行看一下结果。
/**************** 运行结果 ******************
3CFE3C
003F9DA0
3CFE3C
Yeah!!!
3CFE3C
001AFF20
请按任意键继续. . .
*********************************************/
总结一下:cvReleaseImage函数只是将IplImage*型的变量值赋为NULL,而这个变量本身还是存在的并且在内存中的存储位置不变。
关于cvLoadImage函数和cvCreateImage函数的补充:
IplImage* pimg=cvLoadImage("xxx.jpg",0);
经过这个语句之后,系统会为载入的图像分配一段内存,地址为XXXXXX。然后指针pimg指向该内存,也即是指针变量pimg的值为XXXXXX。
cvReleaseImage(&pimg);
使用cvReleaseImage函数之后,系统将释放刚才载入图像的内存空间(也即这个图像在内存中已经不存在了),同时pimg的值置为NULL。
下面是类似的。
IplImage* pdst=cvCreateImage( cvsize(SIZE,SIZE),8,1 );
cvReleaseImage(&pdst);
最后
以上就是细心音响最近收集整理的关于cvReleaseImage函数的用法说明的全部内容,更多相关cvReleaseImage函数内容请搜索靠谱客的其他文章。
发表评论 取消回复