BMP图像转txt C++代码
理论上适用所有格式的图片。使用opencv编写,编译需要依赖opencv,工程代码中有编译好的不需要opencv环境。直接可运行的linux程序,需要请下载
#include "main.h"
#include "ImageEvaluation.h"
int main(int argc, char* argv[]) {
FILE * fp;
if(argc<3)
{
cout << "Input param error ,please input : "<< argv[0] <<" srcxx.jpg dstxx.dat" << endl;
return 0;
}
string file_src1 = argv[1]; // 输入
Image_src1 = imread(file_src1, 1); //
//string file_dst1 = argv[2]; // 输入
//Image_dst1 = fopen(file_dst1, 1); //
fp = fopen (argv[2], "w+");
/* 图像输入 */
//Input_Image();
clock_t start, end; //
start = clock();
//--- 图像处理 -------------------------------------------------------------------------------
//GaussianBlur(Image_src, Image_dst, Size(5, 5), 0); // 高斯滤波
checkMat(Image_src1); // 检查Mat函数的大小和类型
//--------------------------------------------------------------------------------------------
for (int i = 0; i < Image_src1.rows; ++i)
{
for (int j = 0; j < Image_src1.cols; ++j)
{
fprintf(fp, "00%02X%02X%02X\r\n", Image_src1.at<Vec3b>(i, j)[0], Image_src1.at<Vec3b>(i, j)[1], Image_src1.at<Vec3b>(i, j)[2]);
}
}
fclose(fp);
//Evaluation_MSE_PSNR_SSIM(Image_src1, Image_dst1);
end = clock();
double time_difference = (double)end - (double)start;
const double time = time_difference / CLOCKS_PER_SEC * 1000.0;
cout << "time : " << time << " [ms]" << endl;
/*输出 */
return 0;
}
原图:
转换结果
工程下载链接: link