博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【OpenCV学习】错误的案例:矩阵的遍历赋值和取值
阅读量:5045 次
发布时间:2019-06-12

本文共 1040 字,大约阅读时间需要 3 分钟。

作者:

出处:

/** =====================================================================================** Filename: array2.c** Description: Show How to traverse a Array to set and get the elements** Version: 1.0* Created: 01/08/2009 09:19:55 PM* Revision: none* Compiler: gcc** Author: Futuredaemon (BUPT), gnuhpc@gmail.com* Company: BUPT_UNITED** =====================================================================================*/#pragma comment( lib, "cxcore.lib" )#include "cv.h"#include 
int main(){CvMat* mat = cvCreateMat(3,3,CV_32FC1);cvZero(mat);//将矩阵置0int i;//获得矩阵元素(0,0)的指针float *p = (float*)cvPtr2D(mat, 0, 0);//为矩阵赋值for( i = 0; i < 9; i++){*p = (float)i;p++;}//打印矩阵的值p = (float*)cvPtr2D(mat, 0, 0);for(i = 0; i < 9; i++){printf("%f/t",*p);p++;if((i+1) % 3 == 0)printf("/n");}return 0;}

一定要注意了,这个例子其实是不对的!因为我们说过,分配矩阵内存空间时,是以四字节为最小单位的,这就很有可能有不到四个字节而取成四个字节的情况,所以,如果用矩阵首地址从头到尾指下去访问数据,就很有可能访问到不是数据的字节上去!这一点请务必牢记!!

综上所述,如果要直接访问矩阵中数据,请记住使用step的方案。

作者:

出处:

转载于:https://www.cnblogs.com/gnuhpc/archive/2012/12/07/2806653.html

你可能感兴趣的文章
面试整理:版本信息
查看>>
linux中通过lsof恢复删除的文件,前题是fd被占用。
查看>>
【插件开发】—— 6 SWT 复杂控件使用以及布局
查看>>
linux下Apache服务器使用入门----httpd.conf
查看>>
什么样虚拟主机才能满足电子商务网站性能要求
查看>>
使用dbutils进行数据库操作
查看>>
KS检验学习[转载]
查看>>
根据当前复选框状态,判断文本框是否可用
查看>>
MySQL两个最简单的delimiter的使用demo
查看>>
好久没写博客了
查看>>
位图排序算法的一个实践
查看>>
HTML5--JS API-新的选择器
查看>>
handlebars添加条件判断
查看>>
Service 与 Thread 的区别
查看>>
Android 中Service生命周期
查看>>
(转载)Ubuntu 下常用的软件工具
查看>>
c++学习8 -- 引用变量
查看>>
Deap: python中的遗传算法工具箱
查看>>
javaweb笔记分享
查看>>
网页基础操作
查看>>