gpt4 book ai didi

c++ - 在 C++ 中从 PNG 中读取 RGB 值

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:44:23 27 4
gpt4 key购买 nike

基本上,我正在尝试学习如何在没有库的情况下手动打开图像并查看 RGB 内容。

我想这样做,以便计算 RGB 的色相和饱和度以写回二维阵列图像。

到目前为止我得到了这个:

#include <iostream>
#include <stdio.h> /* printf */
#include <math.h> /* acos */
#include <fstream> /* for file I/O */

using namespace std;

int main() {
FILE* fp = NULL;
fp = fopen("soccerball.png", "rb");
cout << "done" << endl;
return 0;
}

我知道这并不多,因为我更习惯使用 Python。但老实说,我不知道从哪里开始。而且在互联网上似乎根本没有这方面的例子。

所以我读了一张图片。现在我想要这样的东西:

img[Height][width]

所以我可以得到

img_r[h][w], img_g[h][w], img_b[h][w]

所以我可以使用这些值来计算相同格式的 Hue 二维数组。

img_hue[h][w]

谢谢

最佳答案

没有库就无法轻松打开 PNG 文件。

这是使用库打开 PNG 的示例...它已经有很多代码 http://zarb.org/~gc/html/libpng.html

问题是 PNG 是压缩格式。将 RGB 值压缩成特殊格式需要很多“数学魔法”。

.BMP(例如 Windows 位图)是您手动开始解析的一种非常简单的方法,如果您这样做是为了训练,但其他格式则需要一个库。

当然,您可以从头开始做所有事情...但是需要一段时间,而且根据您提出的问题,您离它还有一点距离。

关于c++ - 在 C++ 中从 PNG 中读取 RGB 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42150121/

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