用c语言编写程序画出图像出直方图
时间: 2024-02-12 17:09:44 浏览: 160
c语言绘制直方图
4星 · 用户满意度95%
好的,下面是一个简单的 C 语言程序,用于生成一张图像并绘制其灰度直方图:
```c
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <gd.h>
#define WIDTH 640
#define HEIGHT 480
int main(int argc, char *argv[]) {
FILE *outfile;
gdImagePtr image;
int i, x, y, gray, hist[256] = {0};
// 创建一张图像
image = gdImageCreate(WIDTH, HEIGHT);
// 绘制一个灰色的背景
int bg_color = gdImageColorAllocate(image, 200, 200, 200);
gdImageFill(image, 0, 0, bg_color);
// 随机生成一些灰度值并绘制它们
for (i = 0; i < 1000; i++) {
x = rand() % WIDTH;
y = rand() % HEIGHT;
gray = rand() % 256;
gdImageSetPixel(image, x, y, gdImageColorAllocate(image, gray, gray, gray));
hist[gray]++;
}
// 输出直方图
printf("灰度值\t出现次数\n");
for (i = 0; i < 256; i++) {
printf("%d\t%d\n", i, hist[i]);
}
// 保存图像到文件
outfile = fopen("image.png", "wb");
gdImagePng(image, outfile);
fclose(outfile);
// 释放内存
gdImageDestroy(image);
return 0;
}
```
这个程序使用了 `gd` 库来生成图像和直方图。它首先创建了一个大小为 640x480 的灰度图像,并在随机位置绘制了 1000 个灰度值。然后它计算了每个灰度值在图像中出现的次数,并输出了直方图。最后,它将图像保存到文件中并释放了内存。
请注意,这只是一个简单的示例程序,你可以根据自己的需要进行修改和扩展。
阅读全文