纯RAW数据转换为DNG格式

news/2024/10/22 8:10:02/

手上有一个没有任何header信息的RAW文件,是从相机传感器直接输出的,格式是一个一维的数组,大小是1,310,720,也就是1024*1280.

想使用rawpy来模拟ISP的处理流程,但是很不幸的是,rawpy不支持直接处理这种没有任何header信息的RAW文件。报错信息如下:

LibRawFileUnsupportedError: b'Unsupported file format or not RAW file'

好在,我找到了一个解决方案:(http://im.snibgo.com/procbay.htm)

在这里插入图片描述

首先将RAW格式的文件resize到1024*1280.然后保存为未经压缩的TIF文件格式:

raw1 = np.fromfile(os.path.join(dirpath, "M00009_48mp_0x8_0x07ff.raw"), dtype=np.uint8)
raw1 = np.reshape(raw1,(1024,1280,1))
imageio.imsave('M00009_48mp_0x8_0x07ff.tif', raw1)
print(raw1[:10,0,0]) # [85 39 39 40 41 38 39 39 38 38]

检查一下看看TIF重新读取会改变数据么?

rawtif = imageio.imread('M00009_48mp_0x8_0x07ff.tif')
print(rawtif.shape)
rawtif = np.reshape(rawtif,(1024,1280,1))
print(rawtif[:10,0,0]) # [85 39 39 40 41 38 39 39 38 38]

实际上没有,TIF保存是安全的,没有任何数据丢失和压缩。

然后我们拿着TIF文件,也就是上面图里面当作Bayer图,使用exiftool来生成DNG图像。不过使用这个工具是需要指定一些相机的具体的参数的,也就是metadata:

-Make=MICRON CORPORATION
-Model=MT9M001
-DNGVersion=1.4.0.0
-DNGBackwardVersion=1.3.0.0
-EXIF:SubfileType=Full-resolution Image
-PhotometricInterpretation=Color Filter Array
-IFD0:CFARepeatPatternDim=2 2
-IFD0:CFAPattern2=0 1 1 2
-Orientation=Horizontal
-BitsPerSample=8
-SamplesPerPixel=1

然后使用如下命令转换格式到DNG:

./exiftool.exe   -@ pbpx_exft_args.txt   -o C00009_48mp_0x8_0x07ff.dng  C00009_48mp_0x8_0x07ff.tif

事实上,DNG里面就是相比于原始RAW多了这些meta的数据罢了,我们手工加上,就形成了一个很好的DNG文件格式了。

有了DNG,rawpy处理就没啥问题了:

filepath = 'C00009_48mp_0x8_0x07ff.dng'
with rawpy.imread(filepath) as raw:rgb = raw.postprocess(use_camera_wb=True, half_size=False, no_auto_bright=True, output_bps=8)
img = Image.fromarray(rgb)
display(img)

成功显示。


http://www.ppmy.cn/news/499634.html

相关文章

Capture One Pro12.0.3.22 中文版l飞思RAW软件 【含教程】

支持win7、win10X64位系统 Capture One Pro 是专业的原始文件转换器和图像编辑软件。它将所有必备工具和高端性能融于一体、使您在一套快捷、灵活且有效的工作流程中捕获、整理、编辑、分享以及打印图像。Capture One Pro 强大且直观的工具组合为专业摄影师所使用、以卓越色彩和…

视觉惯性组合导航技术最新综述:应用优势、主要类别及一种视觉惯性组合导航无人系统开发验证平台分享

导读: 随着无人机、无人车以及移动机器人的井喷式发展,导航技术成为了制约无人平台广泛应用的瓶颈技术之一。在应用需求的牵引下,视觉惯性组合导航技术,特别是视觉与微惯性传感器的组合,逐渐发展成为当前自主导航及机器人领域的研…

行业前沿|无人机视觉自主导航发展及视觉智能开发支撑平台介绍

01视觉自主导航技术基本介绍 近年来,无人机在多领域表现出重要应用价值。目前,无人机如何在未知封闭、无辅助导航支撑的环境中,达成“在哪里”和“环境描述”并自主智能地完成特定任务,是一个重要的研究热点方向。 其中&#xff…

python点云快速配准_分享一个V-SLAM中点云配准算法改进的方法

近年来,随着自主导航的广泛应用,视觉同时定位与地图构建(Visual simultaneous localization and mapping, V-SLAM)通过自身携带的视觉传感器对周围环境进行重构并且估计出自身的位置,准确定位与高精度的V-SLAM算法是实现自主导航的关键技术。…

你必须知道的mac原始文件转换器和raw图像编辑软件capture one 20

capture one 20 mac中文版软件介绍 Capture One Pro 20是专业的原始文件转换器和图像编辑软件。它将所有必备工具和高端性能融于一体、使您在一套快捷、灵活且有效的工作流程中捕获、整理、编辑、分享以及打印图像。Capture One Pro 强大且直观的工具组合为专业摄影师所使用、…

猿创征文 | 一文看懂!无人机集群半物理仿真系统的7大模块拆解,超详细!

在无人机集群研究领域,仿真验证技术可以高效且低廉的对算法理论,极大的缩短研制周期,降低研制成本。全数字仿真技术和半物理仿真技术是仿真验证技术的两种主要实现方式,本篇带你快速了解无人机集群半物理仿真系统! ——…

Acuro二维码识别与降落对准

什么是Aruco码? Aruco码能做什么?  搜索任务、自主降落等辅助标识  替代复杂任务中较难识别的目标(短期替代、长期替代)  SLAM中的地标  反解无人机位置、实现定点  …  最容易识别的目标之一 1 候选框检测 A…

图片所遇到的坑

本文记录使用Android时关于图片所遇到的坑。 主要记录以下问题: 如何获取相册中的图片如何剪裁所得到的图片如何拍照并剪裁图片如何压缩图片图片保存在手机本地的存取图片在APP与服务器之间的传输 如何获取相册中的图片 简单来说,我们就是要写一个Int…