赞
踩
.dat文件的命名规则没有统一的规定,但通常以.dat为扩展名。
.dat格式数据是一种通用的二进制文件格式,可以用于存储各种类型的数据。.dat文件的格式可以是任意的,因此需要根据数据的具体格式来编写代码来读取数据。
存储文本数据,例如用户配置信息或日志数据。
存储二进制数据,例如图像数据或音频数据。
存储结构化数据,例如数据库表格。
文本格式:数据以字符串的形式存储。
二进制格式:数据以二进制数据的形式存储。
结构化格式:数据以结构化的形式存储。
注:如果不确定.dat文件的格式,您以尝试使用hex编辑器来查看数据的二进制格式。
用户配置文件:通常用于存储用户的个人偏好或设置。
日志文件:通常用于记录系统或应用程序的运行情况。
图像文件:通常用于存储图像数据。
音频文件:通常用于存储音频数据。
数据库文件:通常用于存储数据库表格的数据。
这里主要是使用numpy读取,我自己的.dat文件存放着图像数据,且图像数据的尺寸为256*192,学者在使用该教程中代码时,得提前明确自己的.dat文件是否存储的是图像数据,且明确图像尺寸。
使用代码修改的地方如下:
import numpy as np
import cv2
def float32_to_unit8(img):
max_val = img.max()
min_val = img.min()
img = (img - min_val)/(max_val - min_val) * 255
img = img.astype(np.uint8)
return img
dat_f = open("data/INF_AiRui/groundtruth/nuc_1879538664.dat")
# 读取数据
data = np.fromfile(dat_f,dtype=np.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()
这里查看数据主要是通过DeBug解析每一步查看,如下:
直接运行上面代码后就可以输出单个.dat数据转换后的uint8图片,如下:
主体代码和上面一样,就加了遍历文件夹的代码,需要修改的地方如下:
import numpy as np
import cv2
import os
import sys
def float32_to_unit8(img):
max_val = img.max()
min_val = img.min()
img = (img - min_val)/(max_val - min_val) * 255
img = img.astype(np.uint8)
return img
dat_path = "data/INF_AiRui/groundtruth"
save_path = "data/INF_AiRui_bmp/groundtruth"
dat_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,dtype=np.uint16)
# 定义图片的列数和函数
col = 256
row = 192
# 将一维data数组转换为二位数组
dataReshape = data.reshape(row,col)
# 调用float32_to_unit8函数将16bit数据转为uint8数据
imgUint8 = float32_to_unit8(dataReshape)
out_dat_name = file_name[:-4]+".bmp"
print("图片{}转换成功!".format(file_name[:-4]))
cv2.imwrite(os.path.join(save_path,out_dat_name),imgUint8)
key = cv2.waitKey(30) & 0xff
if key == 27:
sys.exit(0)
以上就是使用Python读取.dat格式数据并转为.png,.jpg,.bmp等可视化格式的过程及详细代码,本代码转换只适用于.dat存储的是图像数据,其它数据不适用。
总结不易,多多支持,谢谢!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。