gpt4 book ai didi

c++ - 垂直翻转图像

转载 作者:行者123 更新时间:2023-11-30 01:51:00 24 4
gpt4 key购买 nike

从 openGL 检索缓冲区后,我正在尝试垂直翻转图像。它似乎使用以下代码输出不正确的图像:

const int width = 100;
const int height = width;
const int components = 3;
unsigned char pixels[width * height * components];
glReadPixels(0, 0, width, height, GL_RGB, GL_UNSIGNED_BYTE, pixels);
unsigned char flipPixels[width * height * components];
for (int i = 0; i < width; ++i) {
for (int j = 0; j < height; ++j) {
for (int k = 0; k < components; ++k) {
flipPixels[i + j * width + k] = pixels[(height) * (width) - ((j+1) * width) + i + k];
}
}
}

我知道我只能迭代一半的高度并达到同样的效果,但我想通过遍历图像的完整高度来实现它。我似乎无法弄清楚代码有什么问题。任何帮助将不胜感激。

最佳答案

我不确定图像是如何存储的,但是你的索引 ik 被赋予了相同的步幅,这是可疑的。也许您需要 i * componentsj * width * components。之后,垂直反转你只需要将 j 更改为 (height - j - 1)

flipPixels[(i + j * width) * components + k] = pixels[(i + (height - 1 - j) * width) * components + k];

关于c++ - 垂直翻转图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26706036/

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