永发信息网

opencv多通道数据和多维数据的区别

答案:1  悬赏:70  手机版
解决时间 2021-12-02 11:27
  • 提问者网友:未信
  • 2021-12-02 06:57
opencv多通道数据和多维数据的区别
最佳答案
  • 五星知识达人网友:酒安江南
  • 2021-12-02 08:07
对这两种数据结构opencv在处理上是不同的,主要是数据的存储安排上不同。多通道数据仍然是按照二维数据的方式来存放数据,不过于正常的二维矩阵相比较,单个元素包含了多个数据值如B、G、R。而多维矩阵是多个层级的二维矩阵组合而成。下面是一些细节对比,和该结论的依据。
opencv中多维数据的申请:

int sz[]={3,2,2};

Mat dm(3,sz,CV_8U,Scalar(0));

这样申请得到3*2*2的矩阵,并初始化为0。这里3是第0维,是层的概念,2*2是二维空间中的平面概念。

这一点可以由dm.step[0]=4, dm.step[1]=2,dm.step[0]=1得到验证。这里的保存数据是按照行存储,然后按列,最后按层。

dm(k,i,j)=pdm=dm.data+dm.step[0]*k+dm.step[1]*i+dm.step[2]*j;其中k是层数,i是行数,j是列数

opencv中多通道数据的申请:

Mat d(2,2,CV_8UC3,Scalar(0));
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯