用PS一个一个转格式太麻烦了,所以写了一个python批处理小工具,可以将raw文件批量转为tif/png/jpg等格式。
以下代码用于转为tif格式,要转为png/jpg等修改注释提示的部分即可,具体的参数设置可以参考OpenCV官方文档和这篇文章。
"""
用于批量处理某一文件夹下的图像文件,由raw格式转为tif/png/jpg
"""
import os
import cv2
import numpy as np
# 在这里修改存放raw文件的文件夹路径,不支持中文路径!
path = 'E:/'
files = os.listdir(path)
# 首先确定原始图片的基本信息:数据格式,行数列数,通道数
rows = 512 # 图像的行数
cols = 640 # 图像的列数
channels = 1 # 图像的通道数,灰度图为1
print('--批量转换开始--')
for file in files:
# 将文件名和后缀分成两部分
portion = os.path.splitext(file)
# 只处理.raw文件
if portion[1] == '.raw':
realPath = path + file
# 利用numpy的fromfile函数读取raw文件,并指定数据格式
img = np.fromfile(realPath, dtype='uint16') # 这里注意自己图像的位深度
# 利用numpy中array的reshape函数将读取到的数据进行重新排列。
img = img.reshape(rows, cols, channels)
# 将图像保存为tif格式
fileName = portion[0] + '.tif'
tif_fileName = os.path.join(path, fileName)
cv2.imwrite(tif_fileName, img , (int(cv2.IMWRITE_TIFF_COMPRESSION), 1)) # 1为tif无损压缩;修改这里的参数可以转为其他格式,具体参考上面两篇文章
print(file + ' 转换完成')
else:
print(file + ' 不是.raw文件')
print('--批量转换结束--')