C++实现图像灰度直方图代码
时间: 2023-05-17 10:05:13 浏览: 215
C++实现图像处理RGB图转灰度图代码
以下是一个简单的 C 代码实现图像灰度直方图的示例:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_GRAY_LEVEL 256
int main()
{
int gray_level[MAX_GRAY_LEVEL] = {0};
int pixel_value;
FILE *fp_in = fopen("input_image.bmp", "rb");
if (fp_in == NULL) {
printf("Error: cannot open input image file.\n");
return -1;
}
// 读取图像像素值并计算灰度直方图
while ((pixel_value = fgetc(fp_in)) != EOF) {
gray_level[pixel_value]++;
}
fclose(fp_in);
// 输出灰度直方图
for (int i = 0; i < MAX_GRAY_LEVEL; i++) {
printf("%d: %d\n", i, gray_level[i]);
}
return 0;
}
```
这个程序会读取一个名为 "input_image.bmp" 的图像文件,并计算出图像的灰度直方图。程序使用一个数组 `gray_level` 来记录每个灰度级别出现的次数,然后输出每个灰度级别的出现次数。
阅读全文