我正在编写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如何从原始文件读取元数据值?相关推荐

  1. python读取raw数据文件_在python下读取并展示raw格式的图片实例

    raw文件可能有些人没有,因此,先用一张图片创建一个raw格式的文件(其实可以是其他类型的格式文件) import numpy as np import cv2 img = cv2.imread('c ...

  2. python读取raw数据文件_【Python】OGR库(1):读取矢量数据

    OGR库是一个非常流行的处理地理空间矢量数据的开源库.它可以读取丰富的数据格式,允许用户进行几何处理.属性表操作.数据分析,是个非常强大的开源GIS库.目前OGR已集成在GDAL库中,可以说是GIS的 ...

  3. python读取raw数据文件_Python rawkit如何从RAW文件读取元数据值?

    我正在编写python脚本,我需要从原始照片文件(例如.CR2)获取exif信息. 我发现PythonRawkit可以做到这一点. withRaw(filename=image_path)asraw: ...

  4. python读取raw数据文件_numpy – 使用python打开.raw图像数据

    我一直在谷歌搜索使用 python库显示原始图像数据的方法,但找不到任何适当的解决方案.数据来自相机模块,并具有'.raw'扩展名.此外,当我尝试通过'more filename.raw'在终端中打开 ...

  5. python读取raw数据文件_Python 读写文件中数据

    1 需求 在文件 h264.txt 中的数据如图1,读入该文件中的数据,然后将第1列的地址删除,然后将数据输出到h264_out.txt中: 图1 h264.txt 数据截图 图2 输出文件 h264 ...

  6. 利用Python读取外部数据文件

    不论是数据分析,数据可视化,还是数据挖掘,一切的一切全都是以数据作为最基础的元素.利用Python进行数据分析,同样最重要的一步就是如何将数据导入到Python中,然后才可以实现后面的数据分析.数据可 ...

  7. python怎么读取sav格式_利用Python读取外部数据文件

    利用Python读取外部数据文件 [color=rgb(0, 0, 0) !important]刘顺祥 [color=rgb(0, 0, 0) !important]摘要: 不论是数据分析,数据可视化 ...

  8. Python——读取raw格式文件

    Python--读取raw格式文件 文章目录 Python--读取raw格式文件 前言 一.直接上代码 前言 简单记录一下python读取raw格式图像,因为reshape来来回回还交换轴搞得人头大, ...

  9. pandas玩转excel-> (2)如何利用pandas读取excel数据文件

    pandas玩转excel-> (2)如何利用pandas读取excel数据文件 import pandas as pd #将excel文件读到内存中,形成dataframe,并命名为peopl ...

  10. Python处理二进制数据文件(大小100M以上),逐步更新

    最近在学习Python关于二进制数据文件的读取,把最新的结果记下来,相互学习,进步 看代码: f1 = open(filepath, 'rb') file_data = f1.read() f_len ...

最新文章

  1. 一篇让你搞懂 Nginx
  2. 保研计算机英语词汇,实用英语口语:“保研”怎么说?
  3. python代码大全o-Python实现的一个自动售饮料程序代码分享
  4. 日光能和电池两用计算机,计算机类专业竞赛模拟试题(doc 7页)全面优秀版优秀版...
  5. 一个简单的线性拟合问题,到底有多少种做法
  6. mysql二进制大文件_Mysql实例Mysql LONGTEXT 类型存储大文件(二进制也可以) (修改+调试+整理)...
  7. Assembly.Load,Assembly.LoadFile 与 Assembly.LoadFrom
  8. numpy 中的axis轴问题
  9. MAC PHP Composer
  10. UVALive 6508 Permutation Graphs
  11. 【Android笔记】Android引用第三方依赖包library报错解决方法
  12. mysql load data 一行_MySQL LOAD DATA LOCAL INFILE仅导入一行
  13. stm32呼吸灯c语言程序,STM32 呼吸灯程序请教
  14. 应届生简历如何写实习经历?
  15. openwrt折腾记2-广告拦截adbyby与pass
  16. vscode 左侧文件夹颜色含义
  17. pmp考试【5】emv期望货币价值计算
  18. 2015年京胜杯删数!删数
  19. 毕业设计-基于微信小程序的校园一卡通应用系统
  20. 基于51单片机的DAC0832波形发生器

热门文章

  1. CGB2202-DAY02-IO低级流与高级流
  2. 2022中兴捧月图像去噪赛道结果小结
  3. 换种方式实现3级联动
  4. 下载谷歌瓦片地图并拼接为高清大图
  5. LDC1314 学习资料
  6. linux屏幕截图之滚动截屏
  7. linux 卸载theano,centos 安装theano
  8. 以后在校期间的规划计算机专业的,计算机专业职业生涯规划方案书样本.doc
  9. 524MB的微信输入法:没广告 你会用吗
  10. 苹果android怎么设置,天猫魔盒怎么投屏使用 苹果和安卓手机操作设置方法