犰狳错误字段索引

问题描述

我需要构建一个由(R,G,B)像素组成的3d立方体,以使R,G和B的值等于它们在该立方体中的索引。

例如在Cube [0,0],我应该找到黑色的像素(0,0),而在Cube [255,255,255],像素值应该是(255,255)或白色。 实际上,多维数据集应将所有可能的颜色存储在8位中。

为此,我已经看到Armadillo库具有/storage类型。 因此,我认为将每个像素存储在field中并从中构建和填充3D字段是合理的,就像这样:

Col<size_t>

但是,当我尝试在外部循环之后访问元素时,会得到错误的结果(请参见上面的代码)。

有人可以解释这种行为吗?在for循环之后,我缺少什么来检索正确的值?

我本可以用OpenCV轻松完成任务,但是我编写的代码是我无法使用的项目的一部分。

我正在使用Armadillo 9.900和Visual Studio 2017。

解决方法

operator[]仅适用于单个参数。因此,my_cube[i,j,k]是错误的。

您提到my_cube(0,0).print()my_cube.at(0,0).print()也显示了相同的问题,但是他们做对了。但是,您还需要在分配过程中使用其中任何一个。将my_cube[i,k] = px;更改为my_cube(i,k) = px;my_cube.at(i,k) = px;,它将起作用。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...