如何使用python从.NEF文件中获取原始像素数据?
我正在用python编写一些脚本来处理原始相机数据。目前,我正在使用DCRAW将.nef(尼康原始格式)文件中的信息转换为.tiff文件,然后在photoshop中将其转换为sRGB.png,这样我就可以使用Pillow读取像素强度 有没有一种方法可以在python中解析.nef文件本身,而不是跳过这么多的障碍如何使用python从.NEF文件中获取原始像素数据?,python,image,camera,python-imaging-library,photo,Python,Image,Camera,Python Imaging Library,Photo,我正在用python编写一些脚本来处理原始相机数据。目前,我正在使用DCRAW将.nef(尼康原始格式)文件中的信息转换为.tiff文件,然后在photoshop中将其转换为sRGB.png,这样我就可以使用Pillow读取像素强度 有没有一种方法可以在python中解析.nef文件本身,而不是跳过这么多的障碍 我不关心速度,这主要是一个学习和演示练习 您可以使用另一个库和枕头来完成此任务。例如,rawpy可以为您完成这项工作 下面链接中的示例展示了如何读取.nef文件,并使用postproce
我不关心速度,这主要是一个学习和演示练习 您可以使用另一个库和枕头来完成此任务。例如,
rawpy
可以为您完成这项工作
下面链接中的示例展示了如何读取.nef
文件,并使用postprocess()
方法将其转换为numpy数组。
从那里,您可以轻松地将图像保存为TIFF或执行类似操作
from PIL import Image
new_img = Image.fromarray(numpy_array)
编辑:
我使用rawpy和pillow编写了一个小脚本,它获取一个.nef图像,将其转换为一个numpy数组,从中创建一个新的枕头图像,并将其显示在屏幕上(显然,您可以读取强度而不是显示在屏幕上)
两个优秀的库:rawpy和imageio。此外,您可以将python-gphoto2或gphoto2 cffi用于采集和处理管道。是否有人可以为此在windows上为python 3.5编译二进制文件?我没有vs 2015自己做这件事,我找不到一个二进制文件…当我尝试这个,我的输出图像看起来是错误的;我想可能是颜色通道被重新排序了,或者是因为我的图像有一个非常明显的红移。有人有什么解决方案吗?解决了:rgb=raw.postprocess(rawpy.Params(使用\u camera\u wb=True))
import rawpy
from PIL import Image
raw = rawpy.imread('trial.nef')
rgb = raw.postprocess()
img = Image.fromarray(rgb) # Pillow image
img.show() # show on screen