IplImage *tmp = NULL;

这一句话定义了一个IplImage类型的指针变量tmp,这个指针变量在内存中的示意图为:

tmp = cvLoadImage(file_path);

这句话执行以后,内存的布局就改变了:

cvReleaseImage(&tmp);

这句话执行之后,操作系统释放tmp指针指向的图像的存储空间,同时将IplImage类型的指针变量的值置为NULL。也就是说这个图像在内存中的存储空间已经被操作系统回收了,同时置tmp的值为NULL。

注意:
如果同一幅图像,被载入内存空间,释放之后,再次载入内存空间,载入到的内存的位置可能跟上次是相同的,也可能是不相同的。这个结果跟操作系统的内存分配策略有关,同时跟其他的程序有关。比如说你释放的一刹那,这块内存分配给了其他的应用程序,那么再次分配不可能在同一个地址。当然也有可能两次内存的分配在同一块内存地址。

cvReleaseImage()函数说明的更多相关文章

  1. 使用cvReleaseImage()释放图像出错

    前几天用opencv写程序的时候,在用cvReleaseImage()函数释放cvLoadImage()加载的图像的时候出错,如下所示: IplImage *src = cvLoadImage(fil ...

  2. 将图片在指定窗口中显示-OpenCV应用学习笔记一

    1.OpenCV模块划分 OpenCV其实就是一堆用C和C++语言来实现计算机视觉算法的源代码文件:例如C接口函数cvCany()实现了Canny边缘提取算法,我们可以直接将这些源代码添加到自己的软件 ...

  3. OpenCV 基础知识------图像创建、访问、转换

    cvCreateImage函数-- Cxcore数组操作 创建头并分配数据 IplImage* cvCreateImage( CvSize size, int depth, int channels ...

  4. openCV基础知识

    openCV主体分为5个模块: CV图像处理函数和计算机视觉算法: ML机器学习库,包含许多聚类和数据分析函数: HighGUI图像和视频的输入输出: [分成三部分:硬件部分--摄像机;文件部分--载 ...

  5. OpenCV(1):显示图像

    显示图像 #include<iostream> #include<opencv2/core/core.hpp> #include<opencv2/highgui/high ...

  6. 手动封装OpenCV1.0的IplImage读取保存功能遇到的小问题

    最近准备重新学习图像处理的知识,主要目的是自己实现一遍图像处理的算法,所以除了读取.保存图像外的操作都自己写,没想到直接封装OpenCV的读取.保存功能的第一步就出错.关键代码如下 void MyIm ...

  7. OpenCV学习(2)——一个简单的例子

    光说不练假把式,来看一个简单的例子,了解了解OpenCV.这个小demo没有几行代码,作用是显示项目目录下面的一张图片. #include <opencv2\opencv.hpp> #in ...

  8. 自己在总结前人经验下弄的几个opencv封装函数

    第一个是增加对比度的函数,就是变亮. IplImage* EqualizeHistColorImage(IplImage *pImage) { IplImage *pEquaImage = cvCre ...

  9. cvInRangeS函数演示

    camshift算法中,用到了cvInRangeS函数,作为初学者,对这个函数很不理解,所以就写了个程序演示效果,加强理解. 代码: #include "cv.h" #includ ...

随机推荐

  1. 使用AsyncTask实现图片加载

    如上图所示:我们看到的就是使用PrograssDialog进度条和AsyncTask异步任务实现的效果(额,不要看应用名...).下面介绍一下具体的实现流程. 一.首先使用XML布局,布局很简单直接上 ...

  2. Unique Binary Search Trees,Unique Binary Search Trees II

    Unique Binary Search Trees Total Accepted: 69271 Total Submissions: 191174 Difficulty: Medium Given  ...

  3. CentOS Apache服务器安装与配置

    原文地址:http://www.linuxidc.com/Linux/2014-01/95256.htm 一.安装Apache程序,一般有三种安装方式: Apache在centos下httpd1.直接 ...

  4. Android进程

    android进程等级 1.前台进程 2.可视进程 3.服务进程 4.后台进程 5.空进程 让应用退出方式 finish();让应用成为空进程 Process.killProcess();杀进程 sy ...

  5. [Non-original]OS X How do I unset an IP address set with ifconfig?

    I recently used ifconfig en1 1.2.3.4 to set the IP address of a network interface (specifically, the ...

  6. MySQL load data infile

    语法: load data [low_priority] [local] infile ‘file_path' [replace] [ignore] into table table_name [(c ...

  7. 在Azure Cloud Service中部署Java Web App(2)

    接上文. 9.在进行发布之前,需要对我们的订阅做一些设置,因为默认情况下,Azure的service end指向的是Azure global的站点,如果我们要将服务发布在Azure的中国站点,需要做下 ...

  8. HeadFirst设计模式读书笔记(2)-观察者模式(Observer Pattern)

    观察者模式:定义了对象之间一对多的依赖关系,这样一来,当一个对象的状态发生改变时,它的依赖者将会受到通知并且自动更新. 有一个模式可以帮你的对象知悉现况,不会错过该对象感兴趣的事,对象甚至在运行时可以 ...

  9. Can't create a new thread (errno 11); if you are not out of available memory, you can consult the manual for a possible OS-dependent bug

    解决方案: http://www.javatang.com/archives/2013/06/19/2701909.html

  10. Boost 1.61.0 Library Documentation

    http://www.boost.org/doc/libs/1_61_0/ Boost 1.61.0 Library Documentation Accumulators Framework for ...