注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

王小二的博客

勤俭以修身,淡泊以明志

 
 
 

日志

 
 

opencv中的多通道矩阵CvMat元素的访问  

2013-03-26 17:55:23|  分类: 专业相关 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
转自:http://blog.csdn.net/zhang11wu4/article/details/7868291
CvMat* mat;
mat = cvCreateMat(9,10,CV_64FC3);//注意所申请矩阵元素的类型,不同的类型访问操作方法不同,但类似可推导,以此为例。
opencv中的多通道矩阵CvMat元素的访问方法总结如下:
1.
  mat(i,j,1):  *(mat->data.db + i*(mat->step/8) + 3*j);//.db为double数据类型,step类型为int,代表矩阵每行的字节数,因此要处以sizeof(double)  =8。
  mat(i,j,2):  *(mat->data.db + i*(mat->step/8) + 3*j+1);
  mat(i,j,3):  *(mat->data.db + i*(mat->step/8) + 3*j+2);
2.
  mat(i,j,1):  ((double*)(mat->data.ptr+i*mat->step))[3*j];//ptr的类型为uchar*,step类型为int,代表矩阵每行的字节数。另外指针可以当做数组名,因此可以这样操作。
  mat(i,j,2):  ((double*)(mat->data.ptr+i*mat->step))[3*j+1];
  mat(i,j,3):  ((double*)(mat->data.ptr+i*mat->step))[3*j+2];
3.
mat(i,j,1):  *( (double*)(mat->data.ptr+i*mat->step) + 3*j );//根据以上也可以这样
总之就是C语言中的指针操作啦,要注意指针的类型,以及step的单位是字节就可以了。

  评论这张
 
阅读(327)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017