0

大家好,我是编程新手,我是大学 cs 的第一年。我的问题是我正在编写一个程序来筛选简单的图像以查找异常(由过多的红色图案表示)。该程序应该加载一个文件,然后打印出图像是否包含超过一定百分比的密集红色像素。

到目前为止,我有以下代码:

#include <stdio.h>
#include "scc110img.h"

int main()
{
  unsigned char* imageArray = LoadImage("red.bmp");
  int imageSize =GetSizeOfImage();
  int image;

  for (image = 0; image<imageSize; image++);
  printf("%d\n, imageArray[image]");
}

我的问题是如何修改程序以打印出蓝色、绿色和红色的数量。就像是;

蓝色值为 0,绿色值为 0,红色值为 0。

4

2 回答 2

0

您有一个代表图像字节的字节数组(无符号字符)。目前,您一次打印一个字节。

因此,要知道如何获取各个 rgb 值,您需要知道它们是如何存储的。

就这么简单,但不要指望这里有人会为你做这件事。

于 2013-11-06T11:07:45.113 回答
0

这段代码真的不完整。我们不知道您的 LoadImage() 或 GetSizeOfImage() 函数做了什么,但可以肯定的是,您在 C 程序中表示图像的方式绝对不是它的表示方式。'bmp' 图像有几个部分,您应该找出将其表示为结构的正确方法。然后你可以逐个像素地遍历它。

我建议使用诸如“libbmp”之类的预先编写的库来简化您的任务。

于 2013-11-06T11:16:47.357 回答