Mat补充
Mat的创建
1.使用Mat的构造函数
Mat test(2,2,CV_8UC3,Scalar(0,0,255));
2.使用Mat的构造函数
int sizes[3] = {2,2,2};
Mat test(3,sizes,CV_8UC3,Scalar::all(0));
3.为已存在的IplImage指针创建信息头
int sizes[3] = {2,2,2};
Mat test(3,sizes,CV_8UC3,Scalar::all(0));
4.使用create函数
Mat test;
test.create(4,4,CV_8UC2);
5.使用Matlab初始化方式
(1)Mat me = Mat::eye(4,4,CV_64F);
(2)Mat mo = Mat::ones(2,2,CV_32F);
(3)Mat mz = Mat::zeros(3,3,CV_8UC1);
注:元素类型 CV_[位数][带符号与否][类型前缀]C[通道数]
Mat中相关成员的意义
1.data
Mat对象中的一个指针,指向存放矩阵数据的内存(uchar *data)
2.dims
矩阵的纬度
3.channels
矩阵通道,矩阵中每一个矩阵元素拥有的值的个数
4.depth
深度,即每一个像素的位数,也是每一个通道的位数。在opencv的Mat.depth()中得到的是一个0 – 6的数字,分别代表不同的位数:
enum { CV_8U=0, CV_8S=1, CV_16U=2, CV_16S=3, CV_32S=4, CV_32F=5, CV_64F=6 },可见 0和1都代表8位, 2和3都代表16位,
4和5代表32位,6代表64位。
5.elemSize
矩阵中每个元素的大小,每个元素包含channels个通道,如果Mat中的数据的数据类型是CV_8U那么elemSize = 1;是CV_8UC3那么
elemSize = 3,是CV_16UC2那么elemSize = 4。
6.elemSize1
矩阵中数据类型的大小,即elemSize/channels,也就是depth对应的位数
7.step
是一个数组,定义了矩阵的布局
若矩阵有n维,则step数组大小为n
step[n-1] = elemSize(每个矩阵元素的数据大小)
step[n-2] = size(1维)*elemSize
step[n-3] = size(2维)*size(1维)*elemSize
...
step[0] = size(n-1维)*size(n-2维)*...size(1维)*elemSize


8.step1
step1也是一个数组,为step/elemSize1,若矩阵有n维,则step1[n-1] = channels。
9.type
矩阵元素的类型,即创建Mat时传递的类型,例如CV_8UC3、CV_16UC2等。
Mat补充的更多相关文章
- MAT使用--转
原文地址: [1]http://ju.outofmemory.cn/entry/172684 [2]http://ju.outofmemory.cn/entry/129445 MAT使用入门 MAT简 ...
- IplImage, CvMat, Mat 的关系和相互转换(转)
(看到的一篇非常好的文章,讲opencv内部类之间的关系的.) opencv中常见的与图像操作有关的数据容器有Mat,cvMat和IplImage,这三种类型都可以代表和显示图像,但是,Mat类型侧重 ...
- Android内存泄漏监测(MAT)及解决办法
http://ttlnews.blogspot.com/2010/01/attacking-memory-problems-on-android.html 这篇文章是2010年1月份写的,其中有些已经 ...
- opencv基础知识------IplImage, CvMat, Mat 的关系和相互转换
Mat,cvMat和IplImage这三种类型都可以代表和显示图像,但是,Mat类型侧重于计算,数学性较高,openCV对Mat类型的计算也进行了优化.而CvMat和IplImage类型更侧重于“图像 ...
- opencv----(1) mat最好用,和IplImage,cvmat 比较
学习了几天,发现mat比IplImage,cvmat 好用太多了. 不知道确切的原文出处,我是转自新浪的一篇博文:http://blog.sina.com.cn/s/blog_534497fd0101 ...
- MAT(Memory Analyzer Tool)使用心得
起因:最近在跟踪产品的性能问题,期间主要问题体现在JVM的内存回收问题,使用MAT工具进行JVM内存分析(也可对android 的应用内存分析) 问题描述: 1.部分后端服务在运行一段时间后会突然年老 ...
- 使用Eclipse Memory Analyzer Tool(MAT)分析线上故障(一) - 视图&功能篇
Eclipse Memory Analyzer Tool(MAT)相关文章目录: 使用Eclipse Memory Analyzer Tool(MAT)分析线上故障(一) - 视图&功能篇 使 ...
- matlab批量读取一个文件夹里类似命名的mat文件
参考网址: Matlab读取同一路径下多个txt或mat文件总结 matlab 批量读取数据文件.mat .dat 整理:matlab批量读入数据文件的方法 首先命名方式体现在只是名字里数字有变化,其 ...
- OpenCV中Mat的属性
OpenCV中Mat的属性 最近在做一OpenCV的图像轮廓检验,但当用到霍夫变换时才发现对Mat的属性了解不足.Mat在OpenCV中的地位是及其重要的,因此有必要做一个总结. 大体上来说,Mat是 ...
随机推荐
- php中bootstrap框架.popover弹出框,鼠标移动到上面自动显示,离开自动消失
<div rel="name"></div> <script> $(function(){//显示弹出框 $("[rel=name]& ...
- Mac下Chrome浏览器的手机模拟器,开启模拟定位
项目接入百度地图,浏览器调试时需要获取定位信息. 1 打开设置->高级->内容设置->位置,将定位设置为“使用前先询问”,并清空禁止列表. 2 审查元素->Network-&g ...
- iOS 编译部署路径
<转> 在 OSX 上初次接触到这些变量, 做一个总结.在编译一个动态库比如 libfoo.dylib 的时候, 你需要指定 INSTALL_PATH. 也就是它的安装路径.一个可执行程 ...
- 【centos】centos安装g++
gcc在Centos下的安装:使用的是以下语句:yum install gcc 以为安装g++,类似的应该使用:yum install g++ 可是提示:command is not found 查询 ...
- class configured for Signature (provider: BC) cannot be found
java.security.NoSuchAlgorithmException: class configured for Signature (provider: BC) cannot be foun ...
- Mysql自定义函数functions时报错
delimiter && [函数创建语句.....] [Err] 1418 - This function has none of DETERMINISTIC, NO SQL, or ...
- android抽屉效果
所谓抽屉 是区别于侧滑菜单 他不会把内容区域挤掉 他只是覆盖在内容区域 下边一个布局文件 一个代码 可以说的就是布局文件就是 <android.support.v4.widget.Dr ...
- VML、SVG、Canvas简介
1.VML: VML的全称是Vector Markup Language(矢量可标记语言),矢量的图形,意味着图形可以任意放大缩小而不损失图形的质量,这在制作地图上有很大用途,VML只是被IE支持. ...
- 9.11 h5日记
9.11 超链接标签<a></a>十分特殊改a标签内容的字体颜色,必须是直接给a 设置,给它的父级标签设置是不可行的. PS:什么是属性继承,即父级标签设置的样式后 ...
- js 标准对象
在JavaScript的世界里,一切都是对象. 但是某些对象还是和其他对象不太一样.为了区分对象的类型,我们用typeof操作符获取对象的类型,它总是返回一个字符串: typeof 123; // ' ...