[OpenCV] -- IplImage浅析

Email : hahayacoder@gmail.com

 

在学习OpenCV的工程中经常遇到IplImage,这到底是个东西呢?其实IplImage是一个结构体,IplImage结构来源于Intel的另一个针对图像处理函数库Intel Image Processing LibraryIpl),所以IplImage图像结构体前面有一个Ipl前缀。其实IplImage表示的是一个图像Image

 

IplImage结构体的定义如下

typedefstruct_IplImage

{

    int  nSize;             /* IplImage大小 */

    int  ID;                /* 版本 (=0)*/

    int  nChannels;         /* 大多数OpenCV支持1、2、3或4个通道*/

    int  alphaChannel;      /* 被OpenCV忽略*/

    int  depth;             /* 像素的位深度,支持如下格式: IPL_DEPTH_8U、IPL_DEPTH_8S, IPL_DEPTH_16S、IPL_DEPTH_32S、IPL_DEPTH_32F、IPL_DEPTH_64F*/

    charcolorModel[4];     /* 被OpenCV忽略*/

    charchannelSeq[4];     /* 被OpenCV忽略*/

    int  dataOrder;         /* 0表示交叉存取颜色通道, 1表示分开的颜色通道,只有cvCreateImage可以创建交叉存取图像*/

    int  origin;            /*图像原点位置,0表示顶-左结构(左上角),1表示底-左结构(右下角) */

    int  align;             /* 图像行排列方式(4或者8),被OpenCV忽略,使用widthStep代替*/

    int  width;             /* 图像宽相位数*/

    int  height;            /* 图像高相位数*/

    struct_IplROI*roi;    /* 图像感兴趣区域,当该值非空时,只对该区域处理*/

    struct_IplImage*maskROI;      /* 在OpenCV中必须为NULL */

    void  *imageId;                 /* 在OpenCV中必须为NULL */

    struct_IplTileInfo*tileInfo;  /* 在OpenCV中必须为空 */

    int  imageSize;         /* 图像数据大小(在交叉存取格式下imageSize = image->height*image->widthStep) 单位字节)*/

    char*imageData;        /* 指向排列的图像数据*/

    int  widthStep;         /* 排列的图像行大小,单位字节 */

    int  BorderMode[4];     /* 被OpenCV忽略*/

    int  BorderConst[4];    /* 被OpenCV忽略*/

    char*imageDataOrigin;  /* 指针指向一个不同的图像数据结构(不是必须排列的) 是为了纠正图像内存分配准备的 */

}

IplImage;

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值