OpenCV中函数cvCreateMat的使用详解

本文详细介绍了OpenCV中用于创建和操作矩阵的函数cvCreateMat,包括矩阵的分配、释放、复制、初始化以及矩阵元素的存取。此外,还展示了矩阵与向量的各种操作,如加减、乘除、转置、求解线性系统、特征值和奇异值分解等。
摘要由CSDN通过智能技术生成
综述:
OpenCV有针对矩阵操作的C语言函数. 许多其他方法提供了更加方便的C++接口,其效率与OpenCV一样.
OpenCV将向量作为1维矩阵处理.
矩阵按行存储,每行有4字节的校整.
分配矩阵空间:
CvMat* cvCreateMat(int rows, int cols, int type);
type: 矩阵元素类型. 格式为CV_<bit_depth>(S|U|F)C<number_of_channels>.
例如: CV_8UC1 表示8位无符号单通道矩阵, CV_32SC2表示32位有符号双通道矩阵.
例程:
CvMat* M = cvCreateMat(4,4,CV_32FC1);
释放矩阵空间:
CvMat* M = cvCreateMat(4,4,CV_32FC1);  
cvReleaseMat(&M);  
 
复制矩阵:
CvMat* M1 = cvCreateMat(4,4,CV_32FC1);  
CvMat* M2;  
M2=cvCloneMat(M1);  
 
初始化矩阵:
double  a[] = { 1,   2,   3,   4,   5,   6,   7,   8, 9, 10, 11, 12 };  
CvMat Ma=cvMat(3, 4, CV_64FC1, a);   
另一种方法:
CvMat Ma;  
cvInitMatHeader(&Ma, 3, 4, CV_64FC1, a);  
初始化矩阵为单位阵:
CvMat* M = cvCreateMat(4,4,CV_32FC1);  
cvSetIdentity(M); // 这里似乎有问题,不成功   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值