opencv cv::Mat 定义 数据访问

本文详细介绍了OpenCV中Mat类的使用方法,包括定义及初始化Mat对象,以及通过不同方式访问Mat中的数据。针对访问效率进行了对比说明,并提供了具体代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

opencv 的mat经常用,无奈人老记性不好,每次用的时候总忘记然后出bug,总结下常用的东西:

1.定义Mat

定义Mat并初始化

cv::Mat R;
//给R初始化为3*3矩阵:
R(Mat::eye(3, 3, CV_64F));
//给R初始化为3*1向量:
R(Mat::zeros(3, 1, CV_64F));

2. 访问数组Mat的不同方法(按效率从高到低排列)、

2.1 指针按照向量形式访问

float* myptr = (float*)R.data;
for (int j = 0; j < 9; j++)
{
    cameraBuf.RMat[j] = myptr[j];
}
 

2.2 指针按照逐行访问


如果是向量,可以这样访问:

cv::Mat T; //3*1向量
for (int k = 0; k < 3; k++)
{
    cameraBuf.TVec[k] = *(T.ptr<float>(k));
}
如果是矩阵,则要多一层循环,即:
 

2.3 逐个元素访问

for (int i = 0; i < h, i++)
  for (int j = 0; j < w; j++)
     float a = R.at<float>(i, j);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值