一、创建矩阵的方式:

  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结构的更多相关文章

  1. cvMat结构体详解

    /* *CvMat矩阵头 */ typedef struct CvMat { int type; //数据类型,比如CV_32FC1含义是32位浮点型单通道,再比如CV_8UC3含义是8位无符号整型三 ...

  2. opencv学习_4(opencv基础数据结构 CvPoint & CvSize & CvRect & CvScalar & CvArr & CvMat)

    1:包含在cxcore/include/cxtypes.h头文件中. 2:CvPoint系列   -----(x,y) CvPoint:表示图像中的点 CvPoint2D32f:二维空间中的点 CvP ...

  3. Mat 与 IplImage 和 CvMat 的转换

    在 OpenCV 2 中虽然引入了方便的 Mat 类,出于兼容性的考虑,OpenCV 依然是支持 C 语言接口的 IplImage 和 CvMat 结构.如果你要与以前的代码兼容,将会涉及 Mat 与 ...

  4. 《学习opencv》笔记——基本数据结构,CvMat,矩阵訪问

        老板让让做一个东东.输入端要用到opencv顺便就来学习一下.买了本书<学习opencv>翻来一看,opencv1.0,去官网上一看.opencv2.49,瞬间有种蛋碎的赶脚.看着 ...

  5. C++ 与OpenCV 学习笔记

    联合体:当多个数据需要共享内存或者多个数据每次只取其一时,可以利用联合体(union) 1. 联合体是一种结构: 2. 他的所有成员相对于基地址的偏移量均为0: 3. 此结构空间要大到足够容纳最&qu ...

  6. 庞锋 OpenCV 视频 学习进度备忘

    书签:另外跳过的内容有待跟进 学习资源: opencv视频教程目录(初级)   主讲:庞锋,毕业于电子科技大学 知识基础支持: 线性代数 应用数学 跳过的内容: 1.第1~6集跳过,简单.(2014- ...

  7. OpenCV入门学习笔记

    OpenCV入门学习笔记 参照OpenCV中文论坛相关文档(http://www.opencv.org.cn/) 一.简介 OpenCV(Open Source Computer Vision),开源 ...

  8. opencv 常用函数介绍

    ××××××××××××××××××××××××××××××××××××××× CvScalar imgmean,imgstd; double imgmax,imgmin; cvAvgSdv(img, ...

  9. OpenCV学习(3)--Mat矩阵的操作

    CvMat的矩阵结构 typedef struct CvMat { //矩阵中元素的类型 int type; //行数据长度 int step; /* for internal use only */ ...

随机推荐

  1. mongodb 备份 还原 导出 导入

    张映 发表于 2013-12-03 分类目录: nosql 标签:mongodb, 备份, 导入, 导出, 还原 mongodb数据备份和还原主要分为二种,一种是针对于库的mongodump和mong ...

  2. bzoj 3172 单词 ac自动机|后缀数组

    题目大意: 给定n个字符串连成了一篇文章,问每个字符串在这篇文章中出现的次数,可重复覆盖 这里ac自动机和后缀数组都可以做 当然后缀数组很容易就解决,但是相对时间消耗高 这里就只讲ac自动机了 将每个 ...

  3. Git命令使用总结

    Git 教學(1):Git的基本使用 Git 教學(2):Git Branch 的操作與基本工作流程 Git 情境劇:告訴你使用 Git 時什麼情況該下什麼指令 如何安裝 Git Mac : 安裝 H ...

  4. 在iis7上如何配置来看到asp报错

    今天网站改版时碰到一个问题,客户要求老网站的地图等功能要保持,但是老网站是用asp开发的.我们可以直接利用老的数据库以及老的代码,但是部署到新的服务器上一直报错. 刚开始是404,后来是500...今 ...

  5. readelf与动态库

    使用arm-linux-gcc编译的可执行文件可能会无法在开发板上执行,并提示:-/bin/sh xxx not found 解决办法: 在主机上使用readelf -d xxx 来查看该程序所需要的 ...

  6. 使用eclipse搭建maven项目

    一.安装插件 如果安装的eclipse 4.0及以上的版本或是MyEclipse就不用安装插件,可以在工具栏->windows->preferences里面搜索maven,看是否有搜索结果 ...

  7. 将本地代码上传至github备份的操作方法

    这篇文章写得是windows下的使用方法. 第一步:创建Github新账户 第二步:新建仓库 第三步:填写名称,简介(可选),勾选Initialize this repository with a R ...

  8. matlab初学之plot颜色和线型

    文章出处: http://jiangshuxia.9.blog.163.com/blog/static/3487586020116711375339/ 字母        颜色          标点 ...

  9. UVa 1391 Astronauts (2SAT)

    题意:给出一些宇航员他们的年龄,x是他们的平均年龄,其中A任务只能给年龄大于等于x的人,B任务只能给小于x的人,C任务没有限制.再给出m对人,他们不能同任务.现在要你输出一组符合要求的任务安排. 思路 ...

  10. Material Design使用记录

    出现过的问题记录: 1.Crash on Android 6.0 in RippleView.draw() 解决方法: This has very simple solution. Just down ...