2

我需要创建一个加载 .raw 图像(通用 100x100 图像)的程序,要求用户选择范围内的 (x, y) 坐标,并使用 seekg 显示所述像素的红色、绿色和蓝色值功能。我不知道如何从像素中获取 rgb 值。到目前为止,我已经阅读了教科书的每一章,并且没有关于检索 rgb 值的内容。

如果超出范围,则询问坐标并给出错误消息的代码工作正常。只有当我尝试提出使用 seekg/获取 rgb 值的代码时,我才会遇到麻烦。我查看了网站上的不同问题,这里有很好的信息,但我没有看到任何使用 seekg 来获取 rgb 值的答案。

我不是在寻找任何人为我生成代码,只是在寻找一些指导和朝着正确的方向前进。

loc = (y * 100 + x) * 3;  // code given by professor with 100 being the width of the image
imageRaw.seekg(loc, ios::beg);

然后我不知所措。

任何帮助将不胜感激。

4

1 回答 1

1

从那里,您可能需要读取三个字节,它们将代表红色、绿色和蓝色值。您没有告诉我们足够的信息来确定订单;绿色几乎总是在中间,但 RGB 和 BGR 都相当常见。

从实际的角度来看,对于这种大小的图片,您通常根本不想使用 seekg。您将整个图像读入内存,并在存储数据的向量(或数组,如果您坚持的话)中查找值。

于 2011-10-11T22:01:30.747 回答