gpt4 book ai didi

c++ - 将数组中的所有数字更改为其索引值

转载 作者:行者123 更新时间:2023-11-28 03:14:39 25 4
gpt4 key购买 nike

我正在使用滤镜进行图像处理,因为它目前很酷,我用来创建滤镜的一种快速方法是计算 rgb 曲线轮廓,这样我就有了 3 个数组,redProfile、greenProfile、blueProfile。

当我在循环中对像素应用效果时,我通常会这样做:

*dest++ = bLomoRGB[top(r)];
*dest++ = gLomoRGB[top(g)];
*dest++ = rLomoRGB[top(b)];
*dest++ = 0xff;
x++;
if (x > 639) { x = 0; y++; }
continue;

因此,对于每种颜色,我都在配置文件中选择颜色。

这是否可以与矩阵一起使用,或者更有效地执行它?

即编码类似:数组 a = 我所有的像素数组 b = 我的索引在 a 上应用 b

我知道这比伪代码更简单,甚至不值得作为代码变灰,但我仍然想知道是否需要始终保持循环来做一件事情,比如更改所有数字的索引值.

最佳答案

我怀疑是否有一些神奇的操作可以对整个矩阵执行此操作。

但是,如果您一次按 32 位 block 写入数据,则可以更有效地完成此操作:

uint32_t *dest;

*dest++ = (bLomoRGB[top(r)] & 0xff) | ((gLomoRGB[top(g)] & 0xff) << 8) |
((rLomoRGB[top(b)] & 0xff) << 16) | 0xff000000;

此外,代码可以很好地并行化。如果您正在寻找并行化此类循环的标准方法,请查看 OpenMP .

关于c++ - 将数组中的所有数字更改为其索引值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17306042/

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