Julia加载.NEF图像未得到全分辨率数组,如何获取完整分辨率数据
问题原因说明
NEF是尼康推出的专有RAW图像格式,文件内部除了完整的传感器原始采样数据外,还会内置多帧不同尺寸的预览缩略图,用于图像管理软件快速加载预览。你当前使用的读取配置默认优先读取了体积最小的预览缩略图帧,因此仅得到120x160的低分辨率数组。
全分辨率图像加载方案
首先安装适配RAW格式解析的依赖包:
using Pkg Pkg.add(["LibRaw", "Images"])
方法1:使用LibRaw.jl直接读取全分辨率RAW数据
using LibRaw, Images # 加载NEF文件 raw_obj = LibRaw.RawImage("my_image.nef") # 解析全分辨率原始数据 LibRaw.open(raw_obj) LibRaw.unpack(raw_obj) # 得到4256x2832的全分辨率RAW灰度数组 full_res_raw_array = LibRaw.raw_image(raw_obj) # 如果需要得到插值后的全分辨率RGB图像,执行后续处理流程 LibRaw.dcraw_process(raw_obj) full_res_rgb = LibRaw.dcraw_make_mem_image(raw_obj)
方法2:通过FileIO指定参数加载
如果你习惯使用FileIO.load接口读取图像,可以添加禁用缩略图的参数直接读取全分辨率内容:
using FileIO, ImageIO, LibRaw full_res_img = load("my_image.nef", use_thumbnail=false)
内容的提问来源于stack exchange,提问作者AaronJPung
相关产品推荐
相关产品推荐

