gpt4 book ai didi

c++ - 访问 cvCreateMatND 的元素

转载 作者:搜寻专家 更新时间:2023-10-31 01:56:49 25 4
gpt4 key购买 nike

我是 OpenCV 的新手,我正在尝试创建一个 n 维数组并使用 CvMatND 访问每个元素。

我可以通过 data[i*step + j*nchannels + 0] 访问二维矩阵,如何访问由

创建的矩阵的元素
      int size[] = { 12, 12, 12 };
CvMatND* matB = cvCreateMatND(3, size, CV_8U);
int *Data = matA->data.i;

谢谢

最佳答案

我已经查看并测试了我之前的回答,正如您所发现的那样,它并不准确。

这是对 3D 数组的所有元素进行迭代的工作代码。

int size[] = { 5, 5, 5 };
CvMatND* matA = cvCreateMatND(3, size, CV_32F);
cvSetZero(matA);

for (int x = 0; x < matA->dim[0].size; x++)
{
for (int y = 0; y < matA->dim[1].size; y++)
{
for (int z = 0; z < matA->dim[2].size; z++)
{
unsigned char* ptr = matA->data.ptr + ((size_t)x * matA->dim[0].step) + ((size_t)y * matA->dim[1].step) + ((size_t)z * matA->dim[2].step);
float value = *(float*)ptr;

printf("x:%d y:%d z:%d --> %f\n", x, y, z, value);
}
}
}

关于c++ - 访问 cvCreateMatND 的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6493687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com