Skip to main content

A package to get thermal information out of FLIR radiometric JPGs

Project description

Flir Image Extractor

FLIR® thermal cameras like the FLIR ONE® include both a thermal and a visual light camera. The latter is used to enhance the thermal image using an edge detector.

The resulting image is saved as a jpg image but both the original visual image and the raw thermal sensor data are embedded in the jpg metadata.

This small Python tool/library allows to extract the original photo and thermal sensor values converted to temperatures.

Requirements and Install

This tool relies on exiftool. It should be available in most Linux distributions (e.g. as perl-image-exiftool in Arch Linux or libimage-exiftool-perl in Debian and Ubuntu). Links for downloading the Mac version and more information is available on the ExifTool site.

It also requires other python packages, matplotlib, numpy and pillow, which are installed when installed through pip.

sudo apt update
sudo apt install exiftool
pip install flirimageextractor

Usage

Example

import flirimageextractor
from matplotlib import cm

flir = flirimageextractor.FlirImageExtractor(palettes=[cm.jet, cm.bwr, cm.gist_ncar])
flir.process_image('examples/ax8.jpg')
flir.save_images()
flir.plot()

This script will show an interactive plot of the thermal image using matplotlib and save three image files ax8_thermal_jet.jpg, ax8_thermal_bwr.jpg, and ax8_thermal_gist_ncar.jpg.

Resulting Plot and Saved Images

Plot

Python 2019-05-17 at 14 14 57

Saved Images

ax8_thermal_jet ax8_thermal_bwr ax8_thermal_gist_ncar

The original temperature array is available using either the get_thermal_np or export_thermal_to_csv functions.

The functions get_rgb_np and get_thermal_np yield numpy arrays and can be called from your own script after importing this library.

The function save_image saves the thermal image(s) in the same folder as the original image. By default it will output three images using the bwr, gnuplot, and gist_ncar colormaps from matplotlib. You can define the pallete(s) that you would rather use when creating the class (see example). For a list of available matplotlib colormaps click here

Supported/Tested cameras:

  • Flir One (thermal + RGB)
  • Xenmuse XTR (thermal + thumbnail, set the subject distance to 1 meter)
  • AX8 (thermal + RGB)

Other cameras might need some small tweaks (the embedded raw data can be in multiple image formats)

Credits

Raw value to temperature conversion is ported from this R package: https://github.com/gtatters/Thermimage/blob/master/R/raw2temp.R Original Python code from: https://github.com/Nervengift/read_thermal.py

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

flirimageextractor-0.1.6.tar.gz (6.0 kB view details)

Uploaded Source

Built Distribution

flirimageextractor-0.1.6-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

File details

Details for the file flirimageextractor-0.1.6.tar.gz.

File metadata

  • Download URL: flirimageextractor-0.1.6.tar.gz
  • Upload date:
  • Size: 6.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3

File hashes

Hashes for flirimageextractor-0.1.6.tar.gz
Algorithm Hash digest
SHA256 038c6e12ef59133188daa103a1e8a871bfb9a421a937eccc6676f0e5c6f0f9db
MD5 49a1254a78a37bdec9905f7c222c390b
BLAKE2b-256 2006db3cf1f1e77f64ff0a80d4e1d1bec320519afc576a2927d3f00c41182408

See more details on using hashes here.

Provenance

File details

Details for the file flirimageextractor-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: flirimageextractor-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 10.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3

File hashes

Hashes for flirimageextractor-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 5dc39e5764c9e0f688cb9b293d4507bea51f16f6bd58989cb44a9d289cbb56a6
MD5 45d2d5c3bd2ed532181e94655f57b649
BLAKE2b-256 50408567fe940f76e14d705916ec5111245fa60a777be6dafb51bf8282841ff5

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page