用c/c++编写怎么将图片转换为二进制文件
时间: 2023-05-22 13:06:56 浏览: 289
可以使用C/C++的库OpenCV来处理图像,将图像转成二进制文件。以下是一个基本的实现代码:
```
#include <opencv2/opencv.hpp>
#include <fstream> // 文件读写相关
using namespace cv;
using namespace std;
int main(int argc, char** argv) {
if (argc != 3) {
cout << "Usage: img2bin input_image output_file" << endl;
return -1;
}
// 读取图像
Mat img = imread(argv[1], IMREAD_GRAYSCALE);
if (!img.data) {
cout << "Image load error!" << endl;
return -1;
}
// 打开输出文件进行写入
ofstream fout(argv[2], ios::binary | ios::out);
if (!fout) {
cout << "Output file open error!" << endl;
return -1;
}
// 将Mat类型的图像数据写入文件
fout.write((char*)&img.rows, sizeof(int));
fout.write((char*)&img.cols, sizeof(int));
fout.write((char*)img.data, img.rows * img.cols);
fout.close();
return 0;
}
```
运行时需要传入两个参数:输入图像文件路径和输出二进制文件路径,例如:
```
./img2bin input.png output.bin
```
该程序会将输入图像 `input.png` 转换成二进制格式写入到 `output.bin` 文件。
阅读全文