当前位置: 首页 > 工具软件 > raw2tiff > 使用案例 >

Python实现raw文件批量转tif/png/jpg

宰父淳
2023-12-01

小王说

用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('--批量转换结束--')
 类似资料: