创意聊城做网站的公司,深圳约的网站设计,网站建设财务计划与预测,软件开发工程师前景.dat文件的命名规则没有统一的规定#xff0c;但通常以.dat为扩展名。 目录 一、 .dat格式数据1.1 .dat数据用途1.2 常见的.dat文件格式1.3 .dat文件示例 二、读取.dat格式数据2.1 单个.dat文件读取并转换2.1.1 代码2.1.2 查看数据2.1.3 输出查看8Bit图片 2.2 批量.dat文件读取….dat文件的命名规则没有统一的规定但通常以.dat为扩展名。 目录 一、 .dat格式数据1.1 .dat数据用途1.2 常见的.dat文件格式1.3 .dat文件示例 二、读取.dat格式数据2.1 单个.dat文件读取并转换2.1.1 代码2.1.2 查看数据2.1.3 输出查看8Bit图片 2.2 批量.dat文件读取并转换2.2.1 代码参数修改2.2.2 代码2.2.3 批量转换结果 三、总结 一、 .dat格式数据
.dat格式数据是一种通用的二进制文件格式可以用于存储各种类型的数据。.dat文件的格式可以是任意的因此需要根据数据的具体格式来编写代码来读取数据。
1.1 .dat数据用途
存储文本数据例如用户配置信息或日志数据。
存储二进制数据例如图像数据或音频数据。
存储结构化数据例如数据库表格。
1.2 常见的.dat文件格式
文本格式数据以字符串的形式存储。
二进制格式数据以二进制数据的形式存储。
结构化格式数据以结构化的形式存储。
注如果不确定.dat文件的格式您以尝试使用hex编辑器来查看数据的二进制格式。
1.3 .dat文件示例
用户配置文件通常用于存储用户的个人偏好或设置。
日志文件通常用于记录系统或应用程序的运行情况。
图像文件通常用于存储图像数据。
音频文件通常用于存储音频数据。
数据库文件通常用于存储数据库表格的数据。
二、读取.dat格式数据
2.1 单个.dat文件读取并转换
这里主要是使用numpy读取我自己的.dat文件存放着图像数据且图像数据的尺寸为256*192学者在使用该教程中代码时得提前明确自己的.dat文件是否存储的是图像数据且明确图像尺寸。
使用代码修改的地方如下 2.1.1 代码
import numpy as np
import cv2def float32_to_unit8(img):max_val img.max()min_val img.min()img (img - min_val)/(max_val - min_val) * 255img img.astype(np.uint8)return imgdat_f open(data/INF_AiRui/groundtruth/nuc_1879538664.dat)
# 读取数据
data np.fromfile(dat_f,dtypenp.uint16)# 定义图片的列数和函数
col 256
row 192# 将一维data数组转换为二位数组
dataReshape data.reshape(row,col)# 调用float32_to_unit8函数将16bit数据转为uint8数据
imgUint8 float32_to_unit8(dataReshape)# 显示uint8图像
cv2.imshow(result_image,imgUint8)
cv2.waitKey(0)
cv2.destroyAllWindows()2.1.2 查看数据
这里查看数据主要是通过DeBug解析每一步查看如下 2.1.3 输出查看8Bit图片
直接运行上面代码后就可以输出单个.dat数据转换后的uint8图片如下 2.2 批量.dat文件读取并转换
2.2.1 代码参数修改
主体代码和上面一样就加了遍历文件夹的代码需要修改的地方如下 2.2.2 代码
import numpy as np
import cv2
import os
import sysdef float32_to_unit8(img):max_val img.max()min_val img.min()img (img - min_val)/(max_val - min_val) * 255img img.astype(np.uint8)return imgdat_path data/INF_AiRui/groundtruth
save_path data/INF_AiRui_bmp/groundtruthdat_file os.listdir(path dat_path)for file_name in dat_file:dat_f open(os.path.join(dat_path,file_name))# 读取数据data np.fromfile(dat_f,dtypenp.uint16)# 定义图片的列数和函数col 256row 192# 将一维data数组转换为二位数组dataReshape data.reshape(row,col)# 调用float32_to_unit8函数将16bit数据转为uint8数据imgUint8 float32_to_unit8(dataReshape)out_dat_name file_name[:-4].bmpprint(图片{}转换成功.format(file_name[:-4]))cv2.imwrite(os.path.join(save_path,out_dat_name),imgUint8)key cv2.waitKey(30) 0xffif key 27:sys.exit(0)
2.2.3 批量转换结果 三、总结
以上就是使用Python读取.dat格式数据并转为.png.jpg.bmp等可视化格式的过程及详细代码本代码转换只适用于.dat存储的是图像数据其它数据不适用。
总结不易多多支持谢谢