【OpenCV】矩阵的创建与释放

        矩阵有多种创建方法。最常见的方法是用cvCreateMat( ),它由多个原函数组成,如cvCreateMatHeader( )和cvCreateData( )。cvCreateMatHeader( )函数创建CvMat结构,不为数据分配内存,而cvCreateData( )函数只负责数据的内存分配。第三中方法是用函数cvCloneMat(CvMat*),它依据一个现有的矩阵创建一个新的矩阵。但这个矩阵不再需要时,可以调用函数cvReleaseMat(CvMat*)释放它。

1.创建矩阵

CvMat* cvCreateMat(
  int rows,                //行数
  int cols,                //列数
  int type                //矩阵元素类型
);


        type其结构为:CV_<bit_depth>(S|U|F)C<number_of_channels>,例如:CV_32FC1为32位浮点型单精度矩阵。

例程:

CvMat* mat=cvCreateMat(
  4,
  4,
  CV_32FC1
);



2.创建一个矩阵,不分配空间

CvMat* cvCreateMatHeader(
  int rows,
  int cols,
  int type
);


3.用一个现有的矩阵初始化矩阵

CvMat*cvInitMatHeader(
  CvMat* mat,
  int rows,
  int cols,
  int type,
  void* data=NULL,
  int step=CV_AUTOSTEP
);

4.初始化矩阵结构,不分配空间

CvMat cvMat(
  int rows,
  int cols,
  int type,
  void* data=NULL
);

5.复制矩阵

CvMat* cvCloneMat(
  const cvMat* mat
);

例程:

CvMat* mat1=cvCreateMat(
  4,
  4,
  CV_32FC1
);



 6.释放矩阵 

void cvReleaseMat(CvMat** mat);
例程:

CvMat* mat=cvCreateMat(
  4,
  4,
  CV_32FC1
);
cvReleaseMat(&mat);




  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kigha同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值