用c语言写一个将灰度图二值化的代码
时间: 2024-05-11 10:16:39 浏览: 127
好的,以下是一个用 C 语言将灰度图像二值化的示例代码:
```
#include <stdio.h>
int main() {
int width = 512;
int height = 512;
unsigned char input[height][width], output[height][width];
// 读取灰度图像像素值
FILE* fp = fopen("input.bmp", "rb");
fread(input, sizeof(unsigned char), height*width, fp);
fclose(fp);
// 对每个像素进行二值化处理
int i, j;
for (i = 0; i < height; i++) {
for (j = 0; j < width; j++) {
if (input[i][j] > 128) {
output[i][j] = 255; // 像素值大于 128 时设置为白色
} else {
output[i][j] = 0; // 像素值小于等于 128 时设置为黑色
}
}
}
// 将二值化结果写入文件
fp = fopen("output.bmp", "wb");
fwrite(output, sizeof(unsigned char), height*width, fp);
fclose(fp);
return 0;
}
```
上述代码中,我们通过二值化将灰度图像像素值转换为黑白二值图形式。需要注意的是,这里对二值化的分界值进行了简单处理,即将像素值大于 128 的部分设置为白色,小于等于 128 的部分设置为黑色。实际应用中可能需要进行更复杂的分界处理,以达到更好的效果。
阅读全文