RAW 格式是相机产生的原始图像格式,带有丰富的图像信息,但其本身并不是常用的图像格式,本文记录 Python 下 RAW 图像的读写方法。
不同的相机产生的RAW文件的扩展名一般不同,下表列举出常见相机厂商生产的相机的RAW文件的扩展名:
品牌 | 扩展名 |
---|---|
富士 | *.raf |
佳能 | .crw,.cr2,*.cr3 |
柯达 | *.kdc |
美能达 | *.mrw |
尼康 | *.nef |
奥林巴斯 | *.orf |
adobe | *.dng |
宾得 | .ptx,.pef |
索尼 | *.arw |
适马 | *.x3f |
松下 | *.rw2 |
numpy
包解析 RAW 图像数据,过程中需要预先获取图像尺寸和位深度numpy
包的 fromfile
函数读取文件,过程中输入数据类型import numpy as np
file_path = 'origin.raw'
# 16 位 raw 数据
data = np.fromfile(file_path, dtype=np.uint16)
# 8 位 raw 数据
data = np.fromfile(file_path, dtype=np.uint8)
img = np.reshape(data, newshape=[3072, 4096, 1])
data.astype(np.uint8)
data.astype(np.uint16)
save_path = 'output.raw'
img.tofile(save_path)