如何用bitmap库将灰度图uchar数组保存为bmp图片
时间: 2024-01-30 20:02:56 浏览: 43
使用bitmap库将灰度图uchar数组保存为bmp图片的步骤如下:
1. 首先,需要引入bitmap库头文件和命名空间:
```cpp
#include "bitmap/bitmap_image.hpp"
using namespace std;
using namespace bitmap;
```
2. 创建一个bitmap_image对象,并设置宽度和高度:
```cpp
bitmap_image image(width, height);
```
3. 遍历uchar数组,将每个像素点的灰度值填充到bitmap_image对象中:
```cpp
for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
unsigned char gray = uchar_array[y * width + x];
image.set_pixel(x, y, gray, gray, gray);
}
}
```
4. 最后,将bitmap_image对象保存为bmp图片:
```cpp
image.save_image("output.bmp");
```
完整代码示例:
```cpp
#include "bitmap/bitmap_image.hpp"
using namespace std;
using namespace bitmap;
int main() {
int width = 640, height = 480;
unsigned char* uchar_array = new unsigned char[width * height];
// 填充 uchar_array 数组
bitmap_image image(width, height);
for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
unsigned char gray = uchar_array[y * width + x];
image.set_pixel(x, y, gray, gray, gray);
}
}
image.save_image("output.bmp");
delete[] uchar_array;
return 0;
}
```