FLIR是一个库,用于从完全用Python编写的FLIR图像中提取热数据,而不依赖ExifTool。

flyr的Python项目详细描述


传单

FLIR是一个库,用于从完全用Python编写的FLIR图像中提取热数据,而不依赖ExifTool。在

其他解决方案是围绕ExifTool的包装器来实际执行提取热数据的困难部分。FLIR是ExifTool的FLIR解析器的重新实现。实际上,这有以下好处:

  • 更快的解码,因为不需要启动新的进程,并且内存中的数据不需要与此另一个进程通信
  • 更准确,因为Flyr使用所有元数据将原始值转换为Kelvin,而其他项目则有一组硬编码。差异通常约为0.1°C,但可能高达0.6°C。此外,ExifTool对某些值进行舍入,而Flyr使用元数据中的未取整值。唯一的开始是在小数点后6位左右,所以它是否重要还有待讨论。在
  • 由于flyr.py不是外部可执行文件,因此安装和部署更简单、更健壮
  • 可以说更简单的用法:不需要创建多余的提取对象;只需调用thermal = flyr.unpack(flir_file_path)并完成

安装

Flyr可从PyPi:pip install flyr安装。在

或者,下载传单.py并包含在源代码树中。在

Flyr依赖于三个外部包,都可以通过pip安装:pip install numpy nptyping pillow。Pillow将嵌入式图像转换为numpy数组,nptyping允许高质量的数组类型注释。Numpy提供了包含热和光学数据所需的n维阵列。在

使用

在文件路径上调用flyr.unpack,接收一个带有热数据的numpy数组。或者,首先以二进制模式打开文件进行读取,然后将文件句柄传递给flyr.unpack。在

importflyr# Thermograms can be read directly from a file, or from a bytes stream, using# the `unpack()` function.flir_path="/path/to/FLIR9121.jpg"thermogram=flyr.unpack(flir_path)# Reading directlywithopen(flir_path,"rb")asflir_handle:# In binary mode!thermogram=flyr.unpack(flir_handle)# Reading from file handle# Temperatures available in Kelvin and in Celsiusthermal=thermogram.celsiusthermal=thermogram.kelvin# Optical image availabe toooptical=thermogram.optical# Thermogram can also be rendered using different strategies. The `render`# function has default value that can be overridden to configure it.render=thermogram.render(min_v=5.0,max_v=20.0,mode="minmax",palette="grayscale")render=thermogram.render(min_v=0.4,max_v=0.99,mode="percentiles",palette="jet")# There is also a convenience function that returns a Pillow `Image` object,# taking the same arguments as `render()`.render=thermogram.render_pil()

状态

目前,此库已经过测试,可用于:

  • 第4页
  • 第5页
  • FLIR E6
  • FLIR E8
  • FLIR E8XT
  • FLIR E53
  • FLIR P60(PAL)
  • FLIR E75
  • FLIR T630SC
  • FLIR T660

但是,该库仍处于早期阶段,缺乏对不一致文件的可靠处理。当它遇到这样的图像时,它会立即放弃引发ValueError,同时它也可以尽最大努力尝试提取。这是有计划的。在

相机有时能用也不能用:

  • FLIR ThermaCAM P640
  • FLIR ThermaCAM P660 West(通常不这样做)

发现摄像头无法工作(尚未):

  • FLIR E60BX
  • FLIR热电偶B400
  • FLIR ThermaCAM SC640
  • FLIR ThermaCam SC660 WES公司
  • FLIR ThermaCAM T-400
  • FLIR S60 NTSC
  • FLIR SC620西部
  • FLIR T400(西部)
  • FLIR T640
  • FLIR P660

贡献

欢迎拉取请求。对于重大变化,请先打开一个问题,讨论您希望更改的内容。大多数的帮助是目前需要支持更多的模型和测试更多的图片。建议测试和开发您自己的相机图像或FLIR工具的样品。在

致谢

如果没有ExifTool的努力documentFLIR格式,这段代码就不可能实现。 Previous work在Python中必须 也因为创造了一个可行的解决方案而受到认可。在

许可证

Flyer根据欧盟公共许可证1.2获得许可。英语版本包含在许可证文件中。在EUPL网站上可以找到所有欧盟语言的翻译,每种语言都完全合法有效。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
带Maven的Eclipse Java存储库:缺少工件:compile   java如何以编程方式停止RMI服务器并通知所有客户端   java Roboguice抛出ClassNotFoundException:AnnotationDatabaseImpl   java为什么lucene 4.0删除IndexWriter类的两个构造函数?   nls如何避免java项目上不需要的日志消息?   测试无法在Selenium Webdriver(java)中定位iframe   使用XML的java servlet   java如何使用jxl用****屏蔽单元格   java使用SQLite从数据库中选择“没有这样的列”   导入扫描程序后出现java编译错误   插入查询的java空指针异常   使用创建PostgreSQL数据库。Java应用中的sql脚本   java使用jsoup将HTML解析为格式化的明文