python读取raw数据文件_pythonrawkit如何从原始文件读取元数据值?
我正在编写python脚本,需要从原始照片文件(.CR2)获取exif信息。在
我发现PythonRawkit提供了这样做的能力。在with Raw(filename=image_path) as raw:
print raw.metadata
Metadata(aperture=-1.2095638073643314e+38, timestamp=4273602232L,
shutter=-1.1962713245823862e+38, flash=True,
focal_length=-1.2228562901462766e+38, height=3753,
iso=-1.182978841800441e+38,
make='Canon', model='EOS 5D Mark II',
orientation=0, width=5634)
但我有点困惑,如何理解这些值?。例如,我期望iso值,比如100/200/400,但什么是-1.182978841800441e+38?在
我的问题不是针对iso的,而是关于快门,光圈。。。在
{doc}无法找到这种类型的值。在
文件中的这一部分不是很详细:
^{pr2}$
有人能帮我理解如何解读这些价值观吗?在
谢谢
[更新]
尼欧建议,我会用ExifRead。事实上,这是一个更好的选择,我正在编写一个python脚本。有了ExifRead,就不需要额外的C库依赖。在
我可以打开Canon raw文件并解析Exif,但不幸的是,光圈值错误:EXIF ApertureValue (Ratio): 3
# My photo was taken in 2.8 (maybe a rounded value on this flag ?)
快速回答:使用Fnumber标志EXIF FNumber (Ratio): 14/5
14/5 is in fact 2.8 (do the math)
长答案(我是如何发现/调试的):
阅读这个exelent链接了解在Canon原始文件.CR2中存储了什么,如何以及为什么(http://lclevy.free.fr/cr2/)我决定自己解码并知道发生了什么。在
这个链接让我在graal上解码一个原始文件cr2_poster.pdf
因此,我认为最好的价值似乎是在我的佳能特定的MakerNote部分关于fnumbervalue。(此处为所有值说明canon_tags)Tag Id : 3 (In fact 0x0003 that you write 0x3)
Name : FNumber
我用Hexa编辑器打开了我的文件。。。我完全迷路了。在
关键事项:偏移量是文件中包含值的地址。在
读:文件中的C8 05应该读05C8。例如偏移量,地址是0x5C8
有了它,MakeNote部分就很容易了。在
快速的方法是直接搜索包含MakerNote部分地址的0x927c MarkerNote(因此在文件7C 92)标志中。
如果您不能找到它,请通过IFD部分找到EXIF subsection。然后在这个小节中,你会发现MakerNote部分Tag Type Count Value
7C 92 07 00 B8 A0 00 00 84 03 00 00
偏移量:84 03 00 00->;00 00 03 84(0x384地址)
转到这个地址并在MakerNote部分搜索FNumber 0x3Tag Type Count Value
03 00 03 00 04 00 00 00 C8 05 00 00
转到偏移量0x5C8找到我们的值(count 4xtype3ushort,16位)0x0x5C8 : 00 00 00 00 00 00 00 00
还有。。。失败,事实上我的佳能没有填补这一部分。在
执行相同的过程来查找EXIF子节和标记“0x829d Exif.Image.FNumbertype5rational”
有理类型由64位(分子和分母ulongs)Rational_data_type组成Tag Type Count Value
9D 82 05 00 01 00 00 00 34 03 00 00
然后读取0x334偏移量1C 00 00 00 0A 00 00 00
我们可以读到六角体:0x1C/0XA
在十进制中,计算:28/10=14/5=2.8
验证ExifRead中是否有此值EXIF.py 100EOS5D/IMG_8813.CR2 -vv | grep -i 14/5
EXIF FNumber (Ratio): 14/5
瞧!在
我在寻找2.8float,这个值以分数格式存储。所以图书馆不做数学运算,只是简化了分数。在
这就是为什么我们有14/5而不是{}。在
python读取raw数据文件_pythonrawkit如何从原始文件读取元数据值?相关推荐
- python读取raw数据文件_在python下读取并展示raw格式的图片实例
raw文件可能有些人没有,因此,先用一张图片创建一个raw格式的文件(其实可以是其他类型的格式文件) import numpy as np import cv2 img = cv2.imread('c ...
- python读取raw数据文件_【Python】OGR库(1):读取矢量数据
OGR库是一个非常流行的处理地理空间矢量数据的开源库.它可以读取丰富的数据格式,允许用户进行几何处理.属性表操作.数据分析,是个非常强大的开源GIS库.目前OGR已集成在GDAL库中,可以说是GIS的 ...
- python读取raw数据文件_Python rawkit如何从RAW文件读取元数据值?
我正在编写python脚本,我需要从原始照片文件(例如.CR2)获取exif信息. 我发现PythonRawkit可以做到这一点. withRaw(filename=image_path)asraw: ...
- python读取raw数据文件_numpy – 使用python打开.raw图像数据
我一直在谷歌搜索使用 python库显示原始图像数据的方法,但找不到任何适当的解决方案.数据来自相机模块,并具有'.raw'扩展名.此外,当我尝试通过'more filename.raw'在终端中打开 ...
- python读取raw数据文件_Python 读写文件中数据
1 需求 在文件 h264.txt 中的数据如图1,读入该文件中的数据,然后将第1列的地址删除,然后将数据输出到h264_out.txt中: 图1 h264.txt 数据截图 图2 输出文件 h264 ...
- 利用Python读取外部数据文件
不论是数据分析,数据可视化,还是数据挖掘,一切的一切全都是以数据作为最基础的元素.利用Python进行数据分析,同样最重要的一步就是如何将数据导入到Python中,然后才可以实现后面的数据分析.数据可 ...
- python怎么读取sav格式_利用Python读取外部数据文件
利用Python读取外部数据文件 [color=rgb(0, 0, 0) !important]刘顺祥 [color=rgb(0, 0, 0) !important]摘要: 不论是数据分析,数据可视化 ...
- Python——读取raw格式文件
Python--读取raw格式文件 文章目录 Python--读取raw格式文件 前言 一.直接上代码 前言 简单记录一下python读取raw格式图像,因为reshape来来回回还交换轴搞得人头大, ...
- pandas玩转excel-> (2)如何利用pandas读取excel数据文件
pandas玩转excel-> (2)如何利用pandas读取excel数据文件 import pandas as pd #将excel文件读到内存中,形成dataframe,并命名为peopl ...
- Python处理二进制数据文件(大小100M以上),逐步更新
最近在学习Python关于二进制数据文件的读取,把最新的结果记下来,相互学习,进步 看代码: f1 = open(filepath, 'rb') file_data = f1.read() f_len ...
最新文章
- 一篇让你搞懂 Nginx
- 保研计算机英语词汇,实用英语口语:“保研”怎么说?
- python代码大全o-Python实现的一个自动售饮料程序代码分享
- 日光能和电池两用计算机,计算机类专业竞赛模拟试题(doc 7页)全面优秀版优秀版...
- 一个简单的线性拟合问题,到底有多少种做法
- mysql二进制大文件_Mysql实例Mysql LONGTEXT 类型存储大文件(二进制也可以) (修改+调试+整理)...
- Assembly.Load,Assembly.LoadFile 与 Assembly.LoadFrom
- numpy 中的axis轴问题
- MAC PHP Composer
- UVALive 6508 Permutation Graphs
- 【Android笔记】Android引用第三方依赖包library报错解决方法
- mysql load data 一行_MySQL LOAD DATA LOCAL INFILE仅导入一行
- stm32呼吸灯c语言程序,STM32 呼吸灯程序请教
- 应届生简历如何写实习经历?
- openwrt折腾记2-广告拦截adbyby与pass
- vscode 左侧文件夹颜色含义
- pmp考试【5】emv期望货币价值计算
- 2015年京胜杯删数!删数
- 毕业设计-基于微信小程序的校园一卡通应用系统
- 基于51单片机的DAC0832波形发生器