IplImage类型解释和举例
1.IplImage结构
typedef struct _IplImage {int nSize; /* sizeof(IplImage) */int ID; /* version (=0)*/int nChannels; /* Most of OpenCV functions support 1,2,3 or 4 channels */int alphaChannel; /* ignored by OpenCV */int depth; /* pixel depth in bits: IPL_DEPTH_8U, IPL_DEPTH_8S, IPL_DEPTH_16S,IPL_DEPTH_32S, IPL_DEPTH_32F and IPL_DEPTH_64F are supported */char colorModel[4]; /* ignored by OpenCV */char channelSeq[4]; /* ditto */int dataOrder; /* 0 - interleaved color channels, 1 - separate color channels.cvCreateImage can only create interleaved images */int origin; /* 0 - top-left origin,1 - bottom-left origin (Windows bitmaps style) */int align; /* Alignment of image rows (4 or 8).OpenCV ignores it and uses widthStep instead */int width; /* image width in pixels */int height; /* image height in pixels */struct _IplROI *roi;/* image ROI. if NULL, the whole image is selected */struct _IplImage *maskROI; /* must be NULL */void *imageId; /* ditto */struct _IplTileInfo *tileInfo; /* ditto */int imageSize; /* image data size in bytes(==image->height*image->widthStepin case of interleaved data)*/char *imageData; /* pointer to aligned image data */int widthStep; /* size of aligned image row in bytes */int BorderMode[4]; /* ignored by OpenCV */int BorderConst[4]; /* ditto */char *imageDataOrigin; /* pointer to very origin of image data(not necessarily aligned) -needed for correct deallocation */ } IplImage;
2.pImgROI举例
nSize=0:sizeof(pImgROI)函数的结果,所以它总共占用了112个byte,不包含这一个帧整个的图像数据,而只是包含了pImgROI这个数据结构
整个帧的图像数据存放在imageData处,它所占用的空间大小可以这样来计算:
imageSize=762048=pImgROI->height * widthStep=672 * 2016
可以注意到 2016 = 3 * 672
我们可以知道 762048 = pImgROI->height * pImgROI->width * 3 (估计是通道数)
在设置了ROI的值之后,图像大小,width以及height也是完全没有发生变化的。
nChannels=3 :三通道图像
depth=8:参照cxtypes.h中的宏定义
#define IPL_DEPTH_1U 1 #define IPL_DEPTH_8U 8 #define IPL_DEPTH_16U 16 #define IPL_DEPTH_32F 32
可知,这个帧采用了了IPL_DEPTH_8U类型,即无符号整形来存储一个点的像素信息。
origin=1:表示底左格式的图像,左下角是(0,0)点
roi:使用下面代码设置roi之后
cvSetImageROI(pImgROI,cvRect(x,y,w,h)); //cvSetImageROI的功能是基于给定的矩形设置图像的ROI(感兴趣区域)
roi区域的值就发生变化
coi表示channel of interest (感兴趣的通道)
imageData:包含一个指向第一行图像数据的指针。
部分参考自《学习OpenCV》
另外,可以查阅http://blog.sciencenet.cn/home.php?mod=space&uid=297739&do=blog&id=251363
一下两个属性为个人臆测:
colorModel:说明这个是什么类型的图片,HSV,RGB,Gray,就是一个说明而已
channelSeq:说明了存储顺序,如图就是以B,G,R顺序存储
图片:
第(width-1)行 BGR BGR BGR BGR BGR
……
第三行 y=2 BGR BGR BGR BGR BGR
第二行 y=1 BGR BGR BGR BGR BGR
第一行 y=0 BGR BGR BGR BGR BGR
X=0 1 2 3 ……
转载于:https://www.cnblogs.com/jun14/archive/2013/01/14/2859520.html
IplImage类型解释和举例相关推荐
- MQTT Qos类型解释
MQTT Qos类型解释 原文连接: https://blog.csdn.net/yangguosb/article/details/78653228 内容: Qos0 发送者只发送一次消息,不进行重 ...
- Mat与IplImage*类型间的转换
在Opencv2.X以上的处理中,大部分处理都是以Mat为主,而对于习惯了1.X的我来说,有时候会带来不便,希望能采用1.X的形式来处理. 经过试验,介绍两种简单的Mat与IplImage*类型间的转 ...
- flowable DMN规则引擎几种类型解释_04
文章目录 单一命中 第一个(FIRST) 唯一(UNIQUE) 优先级(PRIORITY) 任何(ANY) 多重命中 输出顺序(OUTPUT ORDER) 规则顺序(RULE ORDER) 采集(CO ...
- 数列极限定义的具体解释(举例)--十分易懂
数列极限定义的具体解释(举例)–十分易懂 自己看书没彻底明白,百度了几个还不错的解释.直接上图吧! 这里重点看举例 这个解释很好理解了. 2.下面的另一种解释指出了N是项数并配图例. 如果朋友们还有更 ...
- IplImage类型
当使用OpenCV时,你会经常使用IplImage类型,该类型是OpenCV的基础图像类型.图像可能是灰度图,彩色图,四通道图(RGB+Alpha)等,而每个通道可能是整数或浮点数类型.OpenCV提 ...
- Oracle EBS 汇率类型解释
Oracle EBS 汇率类型解释 即期Spot:根据特定日期汇率输入的一种用以执行折换的汇率.此汇率适用于币种的即时兑付. 公司Corporate:所定义的一种用以使公司汇率标准化的汇率.此汇率通常 ...
- 04 flowable DMN规则引擎几种类型解释
项目地址:https://gitee.com/lwj/flowable.git 分支flowable-base 视频地址:https://www.bilibili.com/video/av797746 ...
- 中文词性标注表-名称来源解释与举例
中文词性标注表-名称来源解释与举例 结合材料解释和博文举例,整理如下: (两个来源稍有错位,以"-"标识) 编码 名称 注解 举例 a 形容词 英语形容词adjective 最/d ...
- 【应用统计学】第一类/α/弃真错误与第二类/β/取伪错误的解释与举例
第一类/α/弃真错误与第二类/β/取伪错误的举例与解释 第二类错误 图解两种错误 α错误 β错误 第二类错误 第二类错误,也称取伪错误,或者β错误,是统计学中的一个概念.与β错误一起常常出场的就是α错 ...
最新文章
- php7 最新版本,总结PHP 7.x 各个版本的新特性
- 对象必须实现 iconvertible_Java I/O 流之数据流_对象流
- CCF - 201509-2 - 日期计算
- 31. 脱壳篇-什么是壳
- 【TypeScript】TypeScript 学习 3——类
- 那些年开发中遇到的坑。。。
- C语言:输入四个数a,b,c,d,将这四个数由小到大排序
- 编程之美读书笔记1.8 - 小飞的电梯调度算法
- sparkstreaming消费receive
- Java 重写 多态性_Java 学习(12):重写(Override)与重载(Overload) 多态
- uefi引导gpt安装win10_uefi安装win10系统原版镜像教程
- 日常笔记-snownlp情感分析计算情感得分
- Android使用JSONObject解析接口json字符串(带日期)
- 基于SPSS的交叉表分析
- 中国移动5G智慧港口典型业务场景分析
- 让SaaS进入全面定制时代
- 好消息!不用再花冤枉钱登陆Facebook啦!
- 第三届太原理工大学程序设计竞赛新生赛(未完结)
- 【交通信号灯相位说明及设置】
- 华为java 优招面试题_华为面试题及答案
热门文章
- 建议15: 使用dynamic来简化反射实现
- android 之 Hnadler 、Message 、Looper
- spring AoP学习 -----AoP织入器ProxyFactory剖析
- mysql常用函数 [转]
- 调试Android之system.img的来回切换。
- 28 | 案例篇:一个SQL查询要15秒,这是怎么回事?
- 分布式系统的可靠协调系统——Zookeeper
- 【宜搭客户说第二期】宜搭助力跨境金融行业实现数字化管理
- 免费下载!《阿里工程师的自我修养》公开10位阿里大牛解决问题的思维方式
- 相机参数设置程序_自定义拍摄模式怎么设置?教你学会相机设置。