当前位置: 代码迷 >> VC >> IplImage 怎么转成bmp
  详细解决方案

IplImage 怎么转成bmp

热度:3276   发布时间:2013-02-25 00:00:00.0
IplImage 如何转成bmp?
做一个图像处理的程序,需要用windows forms 的picturebox显示图片,但是得到的图片是IplImage格式的,需要转换才能在picturebox中显示。
IplImage图像的结构:
C/C++ code
typedef struct _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_16U,IPL_DEPTH_16S, IPL_DEPTH_32S,IPL_DEPTH_32F 和IPL_DEPTH_64F */        char colorModel[4]; /* 被OpenCV忽略 */        char channelSeq[4]; /* 同上 */        int dataOrder;     /* 0 - 交叉存取颜色通道, 1 - 分开的颜色通道.                               只有cvCreateImage可以创建交叉存取图像 */        int origin;        /*图像原点位置: 0表示顶-左结构,1表示底-左结构 */        int align;         /* 图像行排列方式 (4 or 8),在 OpenCV 被忽略,使用 widthStep 代替 */        int width;        /* 图像宽像素数 */        int height;        /* 图像高像素数*/        struct _IplROI *roi; /* 图像感兴趣区域,当该值非空时,只对该区域进行处理 */        struct _IplImage *maskROI; /* 在 OpenCV中必须为NULL */        void *imageId;     /* 同上*/        struct _IplTileInfo *tileInfo; /*同上*/        int imageSize;     /* 图像数据大小(在交叉存取格式下ImageSize=image->height*image->widthStep),单位字节*/        char *imageData;    /* 指向排列的图像数据 */        int widthStep;     /* 排列的图像行大小,以字节为单位 */        int BorderMode[4]; /* 边际结束模式, 在 OpenCV 被忽略*/        int BorderConst[4]; /* 同上 */        char *imageDataOrigin; /* 指针指向一个不同的图像数据结构(不是必须排列的),是为了纠正图像内存分配准备的 */    } IplImage;



------解决方案--------------------------------------------------------
参考
http://www.opencv.org.cn/index.php?title=BMP%E4%B8%8EIplImage%E7%9B%B8%E4%BA%92%E8%BD%AC%E6%8D%A2&variant=zh-tw