opencv中矩阵数据的存取
来源:互联网 发布:商业化软件验收 编辑:程序博客网 时间:2024/06/07 19:15
一、最简单的方法——利用宏
两种宏:
(1)CV_MAT_ELEM()
CvMat* mat = cvCreateMat(5,5,CV_32FC1);float element_3_2 = CV_MAT_ELEM(*mat, float,3,2);(2)CV_MAT_ELEM_PTR()
CvMat* mat = cvCreateMat(5,5,CV_32FC1);float element_3_2 = 7.7;*((float*)CV_MAT_ELEM_PTR(*mat, 3, 2)) = element_3_2;一共三个参数,第一个参数是传入的矩阵,第二个参数是待返回元素的行,最后一个是列。
二、麻烦的方法
此方法是用cvmat和iplimage的一些元素函数,
!!!矩阵当中的step元素
它是矩阵中,行的长度,单位为字节。矩阵或图像中的内存分配通常是4个字节的整数倍。所以,若有三个字节宽度的矩阵,则此矩阵将被分配4个字节,最后一个字节被忽略。
例如:若我们有一个整型或者浮点型的矩阵,对应的有整形和浮点型的指针指向数据区域,要想移到下一行,则将指针加上step/4,而对于双精度的,要加上step/8
三、恰当的方法
有二中关于“step”的知识,可以得到下面计算“三通道矩阵中所有元素之和”的代码
float sum(const CvMat* img){float s = 0;for (int row = 0; row <= img->rows; row++){const float* ptr = (const float*)(img->data.ptr + row*img->step);//data.ptr是第一个元素的指针,此句为了转到每一行第一个元素的指针for (int col = 0; col <= img->cols; col++)s = *ptr++;}return s;}
阅读全文
0 0
- opencv中矩阵数据的存取
- opencv 矩阵的存取
- 矩阵数据的存取
- OpenCV: 矩阵等对象的文件存取方式
- Python中数据的存取
- opencv中Mat的使用与存取
- OpenCV中矩阵数据的访问(非常好)非常全
- OpenCV中矩阵数据的访问(二)
- opencv各通道像素坐标数据的存取
- OpenCV中矩阵的定义
- openCV中矩阵的读取
- OpenCV中矩阵的归一化
- OpenCV中矩阵的归一化
- OpenCv中矩阵的数据类型
- OpenCV中矩阵的归一化
- OpenCv中矩阵的创建
- OpenCV中矩阵数据的访问(一)(Learning OpenCV第三章2)
- OpenCV中矩阵数据的访问(二)(Learning OpenCV第三章3)
- python面向对象入门之getter和setter和私有变量
- C++二维数组传参
- 冷淡
- 11.14学习心得
- Android7.0 init进程源码分析
- opencv中矩阵数据的存取
- 启动Java Web项目时提示错误:A child container failed during start 完整错误信息如下: [plain] view plain copy 严重: A chil
- mac 安装多php 自由切换
- javax.validation结合spring最佳实践
- Android多线程编程之newSingleThreadExecutor
- Java
- ios 跳到appstore 更新或评分
- 算法导论第六章(堆排序)
- vim文字居中,小黑屋模式