Feature #1149

Support for metadata in FLIR One thermal images (jpeg)

Added by Max Pozdeev over 1 year ago. Updated over 1 year ago.

Status:NewStart date:09 Jan 2016
Priority:NormalDue date:
Assignee:-% Done:

0%

Category:metadata
Target version:1.0

Description

Attached image is produced by FLIR One 2nd gen for Ios.
Exiftool shows more information (like Relative Humidity, Field Of View, Palette Name, ...)

flir.jpeg (363 KB) Max Pozdeev, 09 Jan 2016 11:34


Related issues

Related to Exiv2 - Bug #1150: Unable to build for Mac OSX 10.6 Closed 09 Jan 2016

Associated revisions

Revision 4178
Added by Robin Mills over 1 year ago

#1149. Modify -pR to find and report the tiff in an APP1/FLIR segment.

Revision 4179
Added by Robin Mills over 1 year ago

#1149. Added fff.h (from plir.com) and code strengthening.

History

#1 Updated by Robin Mills over 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?

#2 Updated by Max Pozdeev over 1 year ago

FLIR is a manufacturer of thermal imaging devices, www.flir.com
FLIR ONE - http://www.flir.com/flirone/

#3 Updated by Robin Mills over 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 over 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 over 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 over 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 | 1971
Some 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

Also available in: Atom PDF

Redmine Appliance - Powered by TurnKey Linux