CvMat结构
一、创建矩阵的方式:
1、cvCreateMat(int rows,int cols,int type),Type可以使任何预定义类型。Type的写法规则:CV_<bit_depth>(S|U|F)C<number_of_channels,比如CV_32FC1, 32位浮点型,单通道。 CvMat* mat=cvCreateMat(8,9,CV_32FC1); //创建一个8行9列的32位浮点型单通道矩阵
2、cvCreateMatHeader()函数创建CvMat结构体,不分配数据内存,然后由cvCreateData()函数分配数据需要的内存。 CvMat*mat=cvCreateMatHeader(8,9,CV_32FC1); cvCreateMatHeader(mat);
3、数组创建矩阵:cvInitMatHeader()函数,在已有的CvMat结构体上初始化矩阵。
float data[]={1,2,3,4}; CvMat* mat; cvInitMatHeader(&mat,2,2,CV_32FC1,data);
4、cvCloneMat(),该函数依据现有矩阵克隆一个矩阵,分配了独立的空间,需要使用cvReleaseMat()释放。 CvMat* mat_1=cvCloneMat(mat);
二、获取矩阵的相关属性
1、获取矩阵的数据类型:cvGetElemType
2、获取矩阵的维度和每一维上的大小:cvGetDims
3、获取矩阵某一个维度上的大小:cvGetDimSize
4、二维矩阵获取矩阵大小:cvGetSize
#include "stdafx.h"
#include "cv.h"
#include "highgui.h"
#include "cxcore.h"
int main(int argc, char* argv[])
{
CvMat *mat=cvCreateMat(8,9,CV_32FC1); //创建一个矩阵
int type=cvGetElemType(mat); //获取矩阵的类型
printf("矩阵的类型是: ");
printf("%d\n",type);
int sizes[3]={0};
int dims=cvGetDims(mat,sizes); //获取矩阵的维度和每一维上的大小
printf("矩阵的维度是: ");
printf("%d\n",dims);
printf("矩阵每一维的大小分别是: ");
printf("%d %d\n",sizes[0],sizes[1]);
int number=cvGetDimSize(mat,0); //获取矩阵某一维的大小
printf("矩阵第2维的大小是: %d\n",number);
return 0;
}
运行结果:

CvMat结构的更多相关文章
- cvMat结构体详解
/* *CvMat矩阵头 */ typedef struct CvMat { int type; //数据类型,比如CV_32FC1含义是32位浮点型单通道,再比如CV_8UC3含义是8位无符号整型三 ...
- opencv学习_4(opencv基础数据结构 CvPoint & CvSize & CvRect & CvScalar & CvArr & CvMat)
1:包含在cxcore/include/cxtypes.h头文件中. 2:CvPoint系列 -----(x,y) CvPoint:表示图像中的点 CvPoint2D32f:二维空间中的点 CvP ...
- Mat 与 IplImage 和 CvMat 的转换
在 OpenCV 2 中虽然引入了方便的 Mat 类,出于兼容性的考虑,OpenCV 依然是支持 C 语言接口的 IplImage 和 CvMat 结构.如果你要与以前的代码兼容,将会涉及 Mat 与 ...
- 《学习opencv》笔记——基本数据结构,CvMat,矩阵訪问
老板让让做一个东东.输入端要用到opencv顺便就来学习一下.买了本书<学习opencv>翻来一看,opencv1.0,去官网上一看.opencv2.49,瞬间有种蛋碎的赶脚.看着 ...
- C++ 与OpenCV 学习笔记
联合体:当多个数据需要共享内存或者多个数据每次只取其一时,可以利用联合体(union) 1. 联合体是一种结构: 2. 他的所有成员相对于基地址的偏移量均为0: 3. 此结构空间要大到足够容纳最&qu ...
- 庞锋 OpenCV 视频 学习进度备忘
书签:另外跳过的内容有待跟进 学习资源: opencv视频教程目录(初级) 主讲:庞锋,毕业于电子科技大学 知识基础支持: 线性代数 应用数学 跳过的内容: 1.第1~6集跳过,简单.(2014- ...
- OpenCV入门学习笔记
OpenCV入门学习笔记 参照OpenCV中文论坛相关文档(http://www.opencv.org.cn/) 一.简介 OpenCV(Open Source Computer Vision),开源 ...
- opencv 常用函数介绍
××××××××××××××××××××××××××××××××××××××× CvScalar imgmean,imgstd; double imgmax,imgmin; cvAvgSdv(img, ...
- OpenCV学习(3)--Mat矩阵的操作
CvMat的矩阵结构 typedef struct CvMat { //矩阵中元素的类型 int type; //行数据长度 int step; /* for internal use only */ ...
随机推荐
- java.io.FileNotFoundException: ...\ibs\library-1.0.17.jar (系统找不到指定的文件。)
网上找一下相应的jar包,放到对应的路径下就好了
- C#自动生成漂亮的水晶效果头像
C#自动生成漂亮的水晶效果头像 与其他的微博系统相同,在“多可内网微博系统”的用户也可上传自己的头像,并支持头像裁剪. 但“多可内网微博系统”的头像可以更漂亮,因为系统实现了水晶效果的头像.C#程序实 ...
- 【浅层优化实战】ssh远程登录Linux卡慢的全过程排查及解决方案
ssh远程登录Linux卡慢的全过程排查及解决方案 前言: 在linux操作系统使用过程中偶然一次感到使用ssh远程连接软件连接操作系统需要等待许久,第一次没在意,第二次也没在意,第三次有点忍受不住了 ...
- java基础之 GC
Java程序员在编码过程中通常不需要考虑内存问题,JVM经过高度优化的GC机制大部分情况下都能够很好地处理堆(Heap)的清理问题.以至于许多Java程序员认为,我只需要关心何时创建对象,而回收对象, ...
- HTML5资料
1 Canvas教程 <canvas>是一个新的用于通过脚本(通常是JavaScript)绘图的HTML元素.例如,他可以用于绘图.制作图片的组合或者简单的动画(当然并不那么简单).It ...
- 关于编译报错“dereferencing pointer to incomplete type...
今天同事问了我一个问题,他make的时候报错,“第201行:dereferencing pointer to incomplete type”,我随即查阅了很多资料,也没看出个所以然.最后问题得到了解 ...
- Oracle开窗函数 over()(转)
copy文链接:http://blog.csdn.net/yjjm1990/article/details/7524167#,http://www.2cto.com/database/201402/2 ...
- 5、 Android 之Fragment
上:http://blog.csdn.net/lmj623565791/article/details/37970961 下:http://blog.csdn.net/lmj623565791/art ...
- Windows进程崩溃问题定位方法
Linux上进程崩溃通常会生成core文件,用gdb打开后执行bt命令即可查看堆栈.而在Windows平台上,我们通常会采用MiniDumpWriteDump来进行堆栈转储,而这需要对系统Api有一定 ...
- 北大poj-1081
You Who? Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 801 Accepted: 273 Descriptio ...