浅谈cvCreateImageHeader和cvCreateImage_cvcreateimage dll-程序员宅基地

技术标签: cvCreateImageHeader  OpenCV  opencv  cvCreateImage  

OpenCV中IplImage图像格式与BYTE图像数据的转换

IplImage* iplImage;

BYTE* data;

1 由IplImage*得到BYTE*图像数据:

data = iplImage->imageDataOrigin; //未对齐的原始图像数据

或者

data = iplImage->imageData; //已对齐的图像数据

2 由BYTE*得到IplImage*图像数据

iplImage = cvCreateImageHeader(cvSize(width,height),depth,channels);

cvSetData(iplImage,data,step);

首先由cvCreateImageHeader()创建IplImage图像头,制定图像的尺寸,深度和通道数;然后由

cvSetData()根据 BYTE*图像数据指针设置IplImage图像头的数据,其中step指定该IplImage图像

每行占的字节数,对于1通道的 IPL_DEPTH_8U图像,step可以等于width。

1)如果是全新创造一个Iplimage,则用IplImage* cvCreateImage( CvSize size, int depth, int

channels ),它创建头并分配数据。

注:当不再使用这个新图像时,要调用void cvReleaseImage( IplImage** image )将它的头和图像数

据释放!

2)如果已经有图像数据但是没有为图像头分配存储空间,则

先调用IplImage* cvCreateImageHeader( CvSize size, int depth, int channels )创建图像头,再

调用void cvSetData( CvArr* arr, void* data, int step )指定图像数据,可以理解为将这个新图

像的数据指针指向了一个已存在的图像数据上,不存在图像数据存储空间的分配操作。

注:当不再使用这个新图像时,仅仅要调用void cvReleaseImageHeader( IplImage** image )将它的图像

头释放,不需要释放数据空间!

3)如果既有图像数据也有图像头(用于IplImage为静态分配存储空间的情况),则先调用IplImage*

cvInitImageHeader( CvSize size, int depth, int channels )更改图像头,再调用void

cvSetData( CvArr* arr, void* data, int step )指定图像数据。

注:因为这个新图像使用的是其它图像的数据和已有的图像头,所以不能使用cvReleaseImage将它的

头和图像数据释放,也不能使用cvReleaseData将它的图像数据释放!

4)如果复制已有的一个图像创建,则用IplImage* cvCloneImage( const IplImage* image ),它制作

图像的完整拷贝包括头、ROI和数据。

注:当不再使用这个新图像时,要调用void cvReleaseImage( IplImage** image )将它的头和图像数

据释放


文章出处:http://blog.sciencenet.cn/blog-1327159-789419.html



版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/x_r_su/article/details/52679743

智能推荐

c语言实训 选择结构程序设计,实验3 程序流程设计——选择结构程序设计.doc-程序员宅基地

文章浏览阅读280次。实验3 程序流程设计——选择结构程序设计淮海工学院计算机科学系实验报告书课程名:《 C语言程序设计A 》题 目: 实验2 程序流程设计—— 选择结构程序设计班 级: 软嵌151学 号: 2015123349姓 名: 陈正宁实验内容或题目编写一个程序,输入一个字母,若为大写字母,将其转换为小写字母后输出,否则原样输出..._c语言选择结构的应用实训目地

中断异常的分析思路_sensor采集中断-程序员宅基地

文章浏览阅读517次。工作学习中经常遇到中断相关的issue,我一般会从 中断源 (ic)-- 驱动层 -- SDK 逐层分析。往往解决的比较快。举一个例子,下面给出分析过程。问题描述: 开机过程中指纹driver有大量异常中断触发log 问题分析: 首先,我们要确定的是,这些异常中断是怎么来的。有以下三种case。 1.软件误报2.cpu主动发出的信号3.指纹sensor发出的信号 针对软件误报,只需要 cat ..._sensor采集中断

斧子的HTML5输出是什么,CF斧有什么使用技巧 斧子使用经验分享【详解】-程序员宅基地

文章浏览阅读82次。很多人知道斧子很牛,但就是用不好,所以好多人练了一段时间就放弃了,其实斧子练习有一些问题是需要注意的,下面就结合一下我个人练习斧子的经验,和大家分享一下,希望能对大家的练习提供一些帮助。1.拿起斧子要有信心和决心因为斧子有无视头盔的特点,所以面对其他武器,不应该有任何畏惧的心理(当然不能傻傻的向前冲然后白白送死),就像阿卡选手一样,要有一击毙命的信心和决心,因为在刀战战场上,心态很重要。有一个好的...

nginx配合fastdfs使用-----python上传测试_fastdfs python 上传-程序员宅基地

文章浏览阅读176次。开始前需要先准备好fdfs的环境https://blog.csdn.net/weixin_44834666/article/details/105686059一、安装py3Fdfs包pip install py3Fdfs二、编辑py文件from fdfs_client.client import Fdfs_client, get_tracker_conf# 创建客户端 client...._fastdfs python 上传

plsql创建用户,创建表空间以及删除用户,删除表空间_plsql删除创建的用户-程序员宅基地

文章浏览阅读1.8k次,点赞2次,收藏5次。1.创建表空间create tablespace [表空间名:例如{newszgcp}]datafile [表空间所在地址:例如{'D:/StudySoft/OrServer/admin/orcl/newszgcp'}]size [表空间大小:100M ]autoextend on next [扩展:50M ] maxsize unlimited; 2.创建用户create..._plsql删除创建的用户

Java SE GUI编程_p.add(new textfield(10))含义-程序员宅基地

文章浏览阅读169次。GUI编程_p.add(new textfield(10))含义

随便推点

MATLAB-MONTA离散元建模程序_matlab处理离散元问题-程序员宅基地

文章浏览阅读3.5k次。下载 >  信息化 >  其它 > 基于蒙特卡罗法的二维随机裂隙模拟Matlab程序 ..._matlab处理离散元问题

如何高效的向新手程序员们介绍编程语言?_怎么宣传编程语言-程序员宅基地

文章浏览阅读463次。学习Java,他们都说很easy。作为一名刚从斯康星大学麦迪逊分校计算机科学系毕业的大学生,我通过一些编程课程认识了很多使用Java的朋友。现在很多学校都在从别的编程语言(大多是C ++)转教Java,一项于2014年7月所做的研究表面截至调查时间为止,39个顶级美国CS项目已经有22个使用Java作为入门课程。那么,到底是什么使得Java能从众多的教学语言中脱颖而出?纵观各个方面,我们发_怎么宣传编程语言

构造方法对象的创建步骤static关键字_1)在student类中创建多个重载的构造方法,包括无参的构造方法、一个参数的构造方法-程序员宅基地

文章浏览阅读543次。构造方法/对象的创建步骤/static关键字/继承方inal法的重写/Final构造方法概述和格式A:构造方法的概述和格式​ 创建对象,给对象中的成员进行初始化B:构造方法格式特点​ a:方法名与类名一样​ b:没有返回值类型,连void都没有​ c:没有具体的返回值构造方法的重载及注意事项A:案例​ 构造方法的重载B:构造方法注意事项​ a:如果我们没有给出构造方法,系统将自动提供一个无参构造方法。​ b:如果我们给出了有参数的构造方法,系统将不再提供默认的无参构造方法。​_1)在student类中创建多个重载的构造方法,包括无参的构造方法、一个参数的构造方法

MySQL---ONE 基础语法_mysqlone-程序员宅基地

文章浏览阅读404次。Java中创建对象Students=newStudent(1,"张三")存在内存中。学习了JavaIO流把数据保存到文件中。1.存储数据的仓库2.本质上是一个文件系统,还是以文件的方式存在服务器的电脑上。3.所有的关系型数据库都可以使用通用的SQL语句进行管理DBMSDataBaseManagementSystem。1.一个数据库服务器包含多个库2.一个数据库包含多张表3.一张表包含多条记录StructuredQueryLanguage结构化查询语言。......_mysqlone

html能复制的弹框,bootstrap modal弹出框实现及实现按钮点击复制功能-程序员宅基地

文章浏览阅读493次。B游汇复制链接点击复制创建模态框(Modal)开始演示模态框×模态框(Modal)标题在这里添加一些文本关闭点击复制$('.btn-lg').click(function(){$('#myModal').modal('show');$('#myModal').on('shown.bs.modal', function () {$('#copy2').zclip({//模态弹出框中实现点击复制pat..._html一个一键复制弹窗功能

用matlab画三相桥式,matlab三相桥式电路仿真.doc-程序员宅基地

文章浏览阅读572次。matlab三相桥式电路仿真.doc 五邑大学 电 力电子技术 课程 设计报告 题 目: 三相桥式整流电路的 MATLAB 仿真 院 系 信息工程学院 专 业 自动化 班 级 140705 学 号 3114001891 学生姓名 杨煜基 指导教师 张建民 电力电子技术课程设计报告 2 三相桥式整流电路的MATLAB 仿真 一、 题目的要求和意义 整流电路是电力电子电路中出现最早的一种,它的作用是将..._三相全桥电路怎么在matlad画出

推荐文章

热门文章

相关标签