Opencv3.x中Mat与IplImage的转换

Mat转IPLImage

IplImage img = IplImage(mat);

IplImage转Mat

Mat mat=cvarrToMat(img);

opencv2.x中Mat与IplImage的转换

Mat转IPLImage

IplImage img = IplImage(mat);

IplImage转Mat

IplImage * ipl1, * ipl2;
const cv::Mat m1 = cv::Mat(ipl);
cv::Mat m2 = ipl2;

1. IplImage

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 and IPL_DEPTH_64F 可支持 */ char colorModel[4]; /* 被OpenCV忽略 */ char channelSeq[4]; /* 被OpenCV忽略 */ int dataOrder;      /* 0 - 交叉存取颜色通道, 1 - 分开的颜色通道. cvCreateImage只能创建交叉存取图像 */ int origin;     /* 0 - 顶—左结构,1 - 底—左结构 (Windows bitmaps 风格) */ 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;

2.CvMat

typedef struct CvMat
{ int type;         int step;          /*用字节表示行数据长度*/int* refcount;     /*内部访问*/union {uchar*  ptr;short*  s;int*    i;float*  fl;double* db;} data;    /*数据指针*/union {int rows;int height;};union {int cols;   int width;};
} CvMat; /*矩阵结构头*/

3.Mat

class CV_EXPORTS Mat
{public:/*..很多方法..*/
/*............*/int flags;(Note :目前还不知道flags做什么用的)
int dims;  /*数据的维数*/
int rows,cols; /*行和列的数量;数组超过2维时为(-1,-1)*/
uchar *data;   /*指向数据*/
int * refcount;   /*指针的引用计数器; 阵列指向用户分配的数据时,指针为 NULL/* 其他成员 */
...};

Mat 与 IplImage之间的转换相关推荐

  1. CvMat、Mat、IplImage之间的转换详解及实例

    IplImage: 在OpenCV中IplImage是表示一个图像的结构体,也是从OpenCV1.0到目前最为重要的一个结构: 在之前的图像表示用IplImage,而且之前的OpenCV是用C语言编写 ...

  2. 【OpenCV】OpenCV函数精讲之 -- Mat和IplImage之间的相互装换(OpenCV2.0和OpenCV3.0)

    Mat是OpenCV和C++接口的矩阵类,IplImage是OpenCV和C语言接口的结构体. Mat读取显示用的是imread.imshow等,IplImage读取显示用的是cvLoadImage( ...

  3. CvMat,Mat和IplImage之间的转化和拷贝

    1.CvMat之间的复制 ``` //注意:深拷贝 - 单独分配空间,两者相互独立 CvMat* a; CvMat* b = cvCloneMat(a); //copy a to b ``` 2.Ma ...

  4. OpenCV之Mat与Bitmap之间的转换

    我们想在Android平台上开发OPenCV(处理图像):避免不了显示,通常在Android当中展示图像都是通过ImageView这个控件,当然展示的方式也有几种,在下面的内容中会简单介绍一下.但是我 ...

  5. Bitmap与IplImage之间的转换

    在VC中利用OpenCV做图像处理程序时,有时需要把IpImage 类型和CBitmap类型相互转换,这样就可以利用VC中的GDI+函数对图像进行某些特殊的显示和处理,非常方便.这里是本人项目中写的两 ...

  6. opencv中Mat与IplImage,CVMat类型之间转换

    opencv中对图像的处理是最基本的操作,一般的图像类型为IplImage类型,但是当我们对图像进行处理的时候,多数都是对像素矩阵进行处理,所以这三个类型之间的转换会对我们的工作带来便利. Mat类型 ...

  7. CvArr、Mat、CvMat、IplImage、BYTE转换(总结而来)

    一.Mat类型:矩阵类型,Matrix. 在openCV中,Mat是一个多维的密集数据数组.可以用来处理向量和矩阵.图像.直方图等等常见的多维数据. Mat有3个重要的方法: 1.Mat mat =  ...

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

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

  9. OpenCV中 CvArr、Mat、CvMat、IplImage、BYTE转换(总结而来)

    一.Mat类型:矩阵类型,Matrix. 在openCV中,Mat是一个多维的密集数据数组.可以用来处理向量和矩阵.图像.直方图等等常见的多维数据. Mat有3个重要的方法: 1.Mat mat =  ...

  10. Mat,Iplimage,vector,vector_vector_Point2f等类型之间的相互转换

    在mfc c++ 以及opencv 编写程序当中,很多常用的类型转换,现在总结一下.(注意加相应的头文件,这里不罗嗦) 提纲: 1. Mat ---> Iplimage 2. Iplimage  ...

最新文章

  1. Dell 原有PowerEdge 服务器型号获得通过 Red Hat Enterprise Linux 6 认证
  2. java绘制地球绕太阳转_Unity3D 公转小案例:地球围绕太阳转
  3. Es-nested嵌入式属性
  4. stm32之ADC应用实例(单通道、多通道、基于DMA)
  5. linux 命令 考试,linux常用命令总结-第一次考试
  6. 【ArcGIS微课1000例】0015:ArcGIS如何创建/自定义快捷键?
  7. Apollo进阶课程 ⑥ | 高精地图与自动驾驶的关系
  8. 超赞!3行代码可视化Transformer
  9. 手机鸿蒙OS框架,鸿蒙OS正式“开源”!区别于iOS和安卓,实现了真正的纯国产!...
  10. PHP设计模式——六大原则
  11. 【Verilog】verilog实现奇数次分频
  12. 脸部识别算法_面部识别技术是种族主义者吗? 先进算法的解释
  13. 第五章 PYTHON标准库
  14. IDL处理葵花8Himawari-8标准HSD数据——制作大气校正数据集(太阳角度数据集)
  15. 我对kvm,qemu,vmware,xen,virtualbox等虚拟化产品的简单理解
  16. 秋天的第一杯奶茶?NO,是第一份大数据学习宝典
  17. 页面中设置IE浏览器的文档模式
  18. jsoncpp操作类
  19. 巴比特 | 元宇宙每日必读:工业元宇宙究竟是什么,为何它值得被追捧?
  20. win32com处理excel数据透视表格式

热门文章

  1. 网上购物系统问题陈述、词汇表与领域类图
  2. tf1.x版RandLA-Net源码解读(5):测试
  3. html下拉菜单hover,css用hover制作下拉菜单
  4. html5设置图片为页面背景透明度,纯CSS设置图片半透明,DIV半透明,背景半透明的方法...
  5. linuxshell如何实现进度条效果
  6. python画流程_使用Graphviz快速绘制流程图
  7. Webpack打包UMD的export要带default访问问题
  8. QT cmd强制删除文件
  9. 【锐捷交换】交换机MSTP+VRRP配置
  10. 华三华为设备序列号查看生产日期