微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

犰狳错误字段索引

如何解决犰狳错误字段索引

我需要构建一个由(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;,它将起作用。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。