访问矩阵中的数据的两种方法
来源:互联网 发布:java爬虫框架 编辑:程序博客网 时间:2024/06/10 00:51
摘要:访问矩阵中的数据的两种方法:简单的方法和麻烦的方法
关键词 : CV_MAT_ELEM() CV_MAT_ELEM_PTR() cvPtr*D cvGet*D
1.CV_MAT_ELEM():这个宏包含4个参数,分别是传入矩阵,待提取的元素的类型,行数和列数。
2.CV_MAT_ELEM_PTR() : CV_MAT_ELEM_PTR宏包含3个参数,分别是传入矩阵,行数和列数,返回指定元素的指针。与CV_MAT_ELEM相比,后者在解引用之前将其转换成适当的数据类型,可以同时实现读取和设置元素的功能。
3.cvPtr*D:cvPtr*D用来获取cvMat矩阵中指定索引值的数据。cvPtr*D族包括cvPtr*1D(),cvPtr23D()和cvPtrND()...前三个中的每一个都输入一个矩阵指针参数CvArr*,接着是一个适当的整型数值为指示,返回一个感兴趣元素的指针。
4.cvGet*D : 仅仅读取数据时,可以使用外有函数cvGet*D,返回的是矩阵元素的实际值。
实验一:简单的方法(利用CV_MAT_ELEM()宏存取矩阵,CV_MAT_ELEM_PRT()为矩阵设置一个值)
#include"highgui.h"
#include"opencv2/opencv.hpp"
int main()
{
float data[16] =
{
30, 60, 40, 23,
67, 88, 55, 23,
59, 69, 32, 45,
};
CvMat mat;
cvInitMatHeader(&mat, 4, 4, CV_32FC1, data);//创建一个4行4列(32位float型)的矩阵mat,并用data数组的初值初始化它
float element_1 = CV_MAT_ELEM(mat, float, 0, 2);//读取1行第3列的值(行列数都是从零开始)
float element= 5.3; //设置一个数值,传入矩阵
float c= CV_MAT_ELEM(mat, float, 2, 3);//待返回函数在第3行第4列
std::cout << element_1 << std::endl;//输出读取的值
std::cout << c << std::endl;//输出所写的矩阵的值
return 0;
}
运行结果如下图图一
实验二:麻烦的方法
#include"highgui.h"
#include"opencv2/opencv.hpp"
int main()
{
float arr[2][3] = { 3,5,89,98,67,45};//创建一个维数组
//创建一个2行3列的32位浮点型单通道
CvMat* a = cvCreateMat(2, 3, CV_32FC1);
cvInitMatHeader
(
a,
2,
3,
CV_32FC1,
arr
);
float *r= (float*)cvPtr2D(a, 1, 2);//指针访问第2行第3个数
std::cout<< *r<< std::endl;//输出访问结果
return 0;
}
运行结果如下图图二
图一
图二
参考文献:《opencv的学习》
- 访问矩阵中的数据的两种方法
- 访问矩阵中的数据的第三种方法
- 关于服务器端数据访问(2)两种方法访问基于 SQL 的数据 :
- OpenCV 矩阵数据访问方法
- 矩阵相乘的两种实现方法
- 矩阵相乘的两种方法
- 删除数据库中的数据的两种方法
- 数据访问两种模式的比较
- Android访问Wcf的两种方法
- Struts2访问session的两种方法
- Struts2访问session的两种方法
- Struts2访问session的两种方法
- struts2访问session的两种方法
- jupyter远程访问的两种方法
- 访问Google的两种方法
- CvMat矩阵数据访问方法总结
- 将ASP.net中的Table中的数据导入到Execl的两种方法
- 蛇形矩阵的两种实现方法(java版本)
- glRasterPos2f函数介绍
- 个人总结操作符的特性,包括:按位操作符、位移操作符和单目操作符中的sizeof
- POJ-3278 Catch That Cow【广度优先搜索】
- 【机器学习算法】从决策树到GBDT(一)
- Linux 安装VMware-Tools
- 访问矩阵中的数据的两种方法
- 自定义RecyclerView之点击事件
- 树状数组模版
- sublime text 3
- volatile和transient
- angularjs解析数据展示在表格两种方法
- android+bananer
- Ubuntu下制作windows U盘启动盘
- 关于运行java程序提示:无法加载主类的问题