2013-07-20 22 views
-1

我需要为类项目创建PGM图像的单个灰度直方图。我已经有了读取PGM图像的代码。但是,我不完全理解如何计算唯一的像素值。我不需要输出图表或类似的东西。任何帮助将不胜感激!如何从PGM图像创建直方图

代码读取PGM图像 http://sun.iwu.edu/~shelley/sie/zoo/journal/pgm.c.html

+0

您需要更具体的 - 你想的R/G/B组分分离的直方图,还是你想要一个直方图的强度,或其他一些数量? –

+0

我相信一个单一的直方图。该任务只是说要计算灰度直方图。 – richieboy89

+0

确定 - 除了您链接的代码似乎创建一个RGB图像。如果你的输入文件是灰度,但我认为R/G/B组件都将具有相同的值?如果是这样,那么你可以直方图中的一个? –

回答

1

伪代码,假设8位灰度图像:

int histogram[256] = { 0 };  ; init histogram of all possible grey values to all zero 

for i = 0 to rows - 1   ; for each row 
    for j = 0 to cols - 1  ; for each col 
     p = image[i][j]   ; get pixel value 
     histogram[p]++   ; increment histogram bin 
+0

谢谢我认为这可能有帮助。我只需要弄清楚如何调用它。 – richieboy89