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类型解释和举例相关推荐

  1. MQTT Qos类型解释

    MQTT Qos类型解释 原文连接: https://blog.csdn.net/yangguosb/article/details/78653228 内容: Qos0 发送者只发送一次消息,不进行重 ...

  2. Mat与IplImage*类型间的转换

    在Opencv2.X以上的处理中,大部分处理都是以Mat为主,而对于习惯了1.X的我来说,有时候会带来不便,希望能采用1.X的形式来处理. 经过试验,介绍两种简单的Mat与IplImage*类型间的转 ...

  3. flowable DMN规则引擎几种类型解释_04

    文章目录 单一命中 第一个(FIRST) 唯一(UNIQUE) 优先级(PRIORITY) 任何(ANY) 多重命中 输出顺序(OUTPUT ORDER) 规则顺序(RULE ORDER) 采集(CO ...

  4. 数列极限定义的具体解释(举例)--十分易懂

    数列极限定义的具体解释(举例)–十分易懂 自己看书没彻底明白,百度了几个还不错的解释.直接上图吧! 这里重点看举例 这个解释很好理解了. 2.下面的另一种解释指出了N是项数并配图例. 如果朋友们还有更 ...

  5. IplImage类型

    当使用OpenCV时,你会经常使用IplImage类型,该类型是OpenCV的基础图像类型.图像可能是灰度图,彩色图,四通道图(RGB+Alpha)等,而每个通道可能是整数或浮点数类型.OpenCV提 ...

  6. Oracle EBS 汇率类型解释

    Oracle EBS 汇率类型解释 即期Spot:根据特定日期汇率输入的一种用以执行折换的汇率.此汇率适用于币种的即时兑付. 公司Corporate:所定义的一种用以使公司汇率标准化的汇率.此汇率通常 ...

  7. 04 flowable DMN规则引擎几种类型解释

    项目地址:https://gitee.com/lwj/flowable.git 分支flowable-base 视频地址:https://www.bilibili.com/video/av797746 ...

  8. 中文词性标注表-名称来源解释与举例

    中文词性标注表-名称来源解释与举例 结合材料解释和博文举例,整理如下: (两个来源稍有错位,以"-"标识) 编码 名称 注解 举例 a 形容词 英语形容词adjective 最/d ...

  9. 【应用统计学】第一类/α/弃真错误与第二类/β/取伪错误的解释与举例

    第一类/α/弃真错误与第二类/β/取伪错误的举例与解释 第二类错误 图解两种错误 α错误 β错误 第二类错误 第二类错误,也称取伪错误,或者β错误,是统计学中的一个概念.与β错误一起常常出场的就是α错 ...

最新文章

  1. php7 最新版本,总结PHP 7.x 各个版本的新特性
  2. 对象必须实现 iconvertible_Java I/O 流之数据流_对象流
  3. CCF - 201509-2 - 日期计算
  4. 31. 脱壳篇-什么是壳
  5. 【TypeScript】TypeScript 学习 3——类
  6. 那些年开发中遇到的坑。。。
  7. C语言:输入四个数a,b,c,d,将这四个数由小到大排序
  8. 编程之美读书笔记1.8 - 小飞的电梯调度算法
  9. sparkstreaming消费receive
  10. Java 重写 多态性_Java 学习(12):重写(Override)与重载(Overload) 多态
  11. uefi引导gpt安装win10_uefi安装win10系统原版镜像教程
  12. 日常笔记-snownlp情感分析计算情感得分
  13. Android使用JSONObject解析接口json字符串(带日期)
  14. 基于SPSS的交叉表分析
  15. 中国移动5G智慧港口典型业务场景分析
  16. 让SaaS进入全面定制时代
  17. 好消息!不用再花冤枉钱登陆Facebook啦!
  18. 第三届太原理工大学程序设计竞赛新生赛(未完结)
  19. 【交通信号灯相位说明及设置】
  20. 华为java 优招面试题_华为面试题及答案

热门文章

  1. 建议15: 使用dynamic来简化反射实现
  2. android 之 Hnadler 、Message 、Looper
  3. spring AoP学习 -----AoP织入器ProxyFactory剖析
  4. mysql常用函数 [转]
  5. 调试Android之system.img的来回切换。
  6. 28 | 案例篇:一个SQL查询要15秒,这是怎么回事?
  7. 分布式系统的可靠协调系统——Zookeeper
  8. 【宜搭客户说第二期】宜搭助力跨境金融行业实现数字化管理
  9. 免费下载!《阿里工程师的自我修养》公开10位阿里大牛解决问题的思维方式
  10. 相机参数设置程序_自定义拍摄模式怎么设置?教你学会相机设置。