Support for metadata in FLIR One thermal images (jpeg)
|Status:||New||Start date:||09 Jan 2016|
Attached image is produced by FLIR One 2nd gen for Ios.
Exiftool shows more information (like Relative Humidity, Field Of View, Palette Name, ...)
#1 Updated by Robin Mills about 1 year ago
- Category set to metadata
- Target version set to 1.0
Thanks for reporting this. This is an interesting issue. I see there are a couple of APP1 segments in your file that contain this data.
$ exiv2 -pS http://dev.exiv2.org/attachments/download/881/flir.jpeg STRUCTURE OF JPEG FILE: http://dev.exiv2.org/attachments/download/881/flir.jpeg address | marker | length | data 2 | 0xd8 SOI | 0 4 | 0xe0 APP0 | 16 | JFIF............ 22 | 0xe1 APP1 | 3986 | Exif..II*...................... 4010 | 0xe1 APP1 | 65534 | FLIR....FFF....................d 69546 | 0xe1 APP1 | 34618 | FLIR....|..z.....0...a.$.. xt.!. 104166 | 0xdb DQT | 67 104235 | 0xdb DQT | 67 104304 | 0xc0 SOF0 | 17 104323 | 0xc4 DHT | 31 104356 | 0xc4 DHT | 181 104539 | 0xc4 DHT | 31 104572 | 0xc4 DHT | 181 104755 | 0xda SOS | 12 545 rmills@rmillsmbp:~/gnu/exiv2/trunk $I'm going to assign this to Target Version 1.0 as I don't have time to deal with this for v0.26. http://dev.exiv2.org/projects/exiv2/news It's quite likely that I'll deal with this for v0.27, however I haven't started scheduling v0.27 yet.
What is FLIR?
#3 Updated by Robin Mills about 1 year ago
Can you tell me a little more about this to help me understand how the importance of FLIR. Are there millions of those devices in use, or is this an obscure and unusual device.
We have outstanding item on the schedule for v0.26 to use exiftool for lens detection when we don't know what the lens is. My plan is to run exiftool as a webservice. So, it might be possible to take advantage in v0.26. I've looked at the webpages on Phil's ExifTool web site. It looks like quite an undertaking to deal with this. However the web-service approach might be a useful "stop gap" in the short term. http://dev.exiv2.org/issues/1034
#4 Updated by Max Pozdeev about 1 year ago
Thermal cameras are very specific and used mostly by professionals because of their price. But recently the market shows "cheap" thermal cameras like FLIR ONE so the number of such devices will grow.
I'm not a professional user of such devices but still I think this is a low-priority feature as for now.
As for me the web-service is good solution but I will not use it often. I use exiv2 as a library for fast processing in my app (I have commercial license).
P.S. Just for info. I can't build the last revision from trunk with -stdlib=libstdc++ flag. Should I create new issue?
#5 Updated by Robin Mills about 1 year ago
Thanks for the insight. The web service will be a fallback and there will be an API to enable/disable it.
Please create an issue about the build and I'll deal with it. Thanks for letting me know. The build matrix is very large and, although we have a build server, we cannot build every possible build configuration. So I have to rely on users to let me know when an untested build configuration is broken.
#6 Updated by Robin Mills about 1 year ago
r4178 I've "tweaked" the code in
exiv2 -pR to find the TIFF in the APP1/FLIR segment. This reveals:
4010 | 0xe1 APP1 | 65534 | FLIR....FFF....................d STRUCTURE OF TIFF FILE (II): MemIo address | tag | type | count | offset | value 10 | 0x010f Make | ASCII | 16 | 122 | FLIR Systems AB 22 | 0x0110 Model | ASCII | 5 | 138 | FLIR 34 | 0x0112 Orientation | SHORT | 1 | 0 | 0 46 | 0x011a XResolution | RATIONAL | 1 | 144 | 144/0 58 | 0x011b YResolution | RATIONAL | 1 | 152 | 152/0 70 | 0x0128 ResolutionUnit | SHORT | 1 | 2 | 2 82 | 0x0131 Software | ASCII | 2 | 42 | . 94 | 0x0213 YCbCrPositioning | SHORT | 1 | 1 | 1 106 | 0x8769 ExifTag | LONG | 1 | 160 | 160 STRUCTURE OF TIFF FILE (II): MemIo address | tag | type | count | offset | value 162 | 0x9000 ExifVersion | ASCII | 4 |808596016 | STRU 174 | 0x9101 ComponentsConfiguration | UNDEFINED | 4 | 16909056 | 186 | 0x927c MakerNote | UNDEFINED | 54 | 274 | ... 198 | 0xa000 FlashpixVersion | ASCII | 4 |808464688 | ... 210 | 0xa001 ColorSpace | SHORT | 1 | 1 | 1 222 | 0xa002 PixelXDimension | SHORT | 1 | 640 | 640 234 | 0xa003 PixelYDimension | SHORT | 1 | 480 | 480 246 | 0xa404 DigitalZoomRatio | RATIONAL | 1 | 328 | 328/0 258 | 0xa420 ImageUniqueID | ASCII | 1 | 336 | END MemIo 340 | 0x0103 Compression | SHORT | 1 | 6 | 6 352 | 0x0112 Orientation | SHORT | 1 | 0 | 0 364 | 0x011a XResolution | RATIONAL | 1 | 428 | 428/0 376 | 0x011b YResolution | RATIONAL | 1 | 436 | 436/0 388 | 0x0128 ResolutionUnit | SHORT | 1 | 2 | 2 400 | 0x0201 JPEGInterchangeFormat | LONG | 1 | 444 | 444 412 | 0x0202 JPEGInterchangeFormatLeng | LONG | 1 | 1971 | 1971Some tag labels are wrong, however I can easily fix that.
I downloaded the SDK from Flir.com. The SDK is for iOS and Android. The SDK is precompiled (.framework for iOS, .jar for Android). The sample code is for creating apps for their device. There doesn't appear to be anything to give us a quick start on the metadata.
I've raised a query on their forum and perhaps somebody will help. http://developer.flir.com/forums/topic/metadata-format/
Phil has published documentation: http://owl.phy.queensu.ca/~phil/exiftool/TagNames/FLIR.html And there's beautiful Perl code to decode it here: http://sourceforge.net/p/exiftool/code/ci/master/tree/lib/Image/ExifTool/FLIR.pm