Explore evocortex

Access your Optris Camera

The IRImagerDirect SDK grants you access to all cameras featured in the optris PI series. This developer library enables your software team to process a camera’s data stream with C/C++. Furthermore, via the newly released Direct Binding API, you can realize your applications by the use of high-level toolboxes with low effort. 

The best about it is that it is free of charge!

New Release: Version 9.0.0

  • Fixed an issue where certain camera models would drift off at high temperatures when emissivity was changed to below 100%. (PI1M, PI05)
  • Code Clean Up and Refactoring, slimming down the DirectSDK
  • Added the ability to recieve images, via ethernet, that exceed the height of 254px.
  • XI1M:
    • Ethernet functionality for the resolution 396×100 added
  • SetRadiationParameter() can now accept values up to 1.1 from 1
  • XI1M:
    • Ethernet functionality for the resolution 132×100 added
  •  Integration of the Optris Camera XI1M
  • Quality of Life improvements for the Python example:
    • generic.xml, formats.def, libirimager copied to the Python folder
    • Restructure and refactoring of Code
    • Added the ability to print a timestamp on Windows
  • Labview path guide
  • Linux
    • Fix for IRDeviceUVC select 22 error
  • Changed frame timeout to use two times the frame frequency of device. Old frame timeout of 200ms was to short for Xi410 @4Hz
  • Increased startup calibration time for better skim value estimation
  • Changed evo::IROptics to use IRArray instead of std::string to be independent from std::string runtime implementation and possible memory corruption
  • Ethernet Connection:
    Hotfix for Access Violation Error
  • Windows:
    Removed check for CoInitialize, which led to error in a multithread or non STA-Thread environment
  • Easy-API:
    Added functions to set the origin of the clipped format position
  • Ethernet Connection:
    Added possibility to disable sender ip check by config file 0 for NAT-Environment
  • Windows:
    • Added support for multiple ethernet camera connections
  • Added ethernet camera support (see ethernet section in generic.xml config to enable it)
  • Added support for setting radiation parameters on ethernet deamon (evo_irimager_tcp_init)
  • Fixed incorrect dead pixel correction if radial distortion correction is enabled
  • IRCalibrationManager::findSerial can now be used to detect multiple devices and on windows
  • Added system information to logfile
  • Windows:
    • Added ir_find_serial.exe for windows build
    • Removed dependency to DirectShow NullRenderer and SampleGrabber Filter (missing on Serveredition)
  • Linux:
    • Ignore last characteristic curve value, as it can be incomplete
    • Added missing tiff header “irextras_defs.h”
    • Added example for tiff creation
  • Examples on Windows
    • C#: Added new flagstate “Initializing”
    • C#: Fix for incorect check of format dir parameter
    • Managed C++: Adapted to getFrame calling convention
    • irimagerShow: Adapt thermal image to window size on resizing
  • Increased maximum number of instances in one application from 16 to 32
  • Added “irFlagInitializing” to flagstate enum value in metadata to signal initialization process to user
  • Linux: Increased gcc compiler version from 4.9 to 5
  • Linux: Fix for read of calibration data which lead to console output “test”
  • Added function setReferenceTemperature to calibrate camera to external reference source
  • Added support for Optris external reference probe BR 20AR (see example IRExternalProbe.cpp and External Probe (BR 20AR))
  • Improvements in AutoSkim behavior. Recommend, if a Xi400 is used.
  • Added support for second radial distortion correction (r^4), if available in calibration files.
  • New library libirextras:
    • Create Optris Tiff Files with IRTiffWriter
  • Added optional libuvc IRDevice for Linux (experimental)
  • Disable focus change on startup with negativ config value (<focus>-1</focus>)
  • Easy SDK (direct_binding.h):
    • Added evo_irimager_get_serial for getting the serial number of the connected camera
  • Fixed memory and handle leaks after deletion of IRImager instance
  • Added radial distortion correction. Configurable within xml-file <radial_distortion_correction>0</radial_distortion_correction> <!– Distortion correction: 0=Off, 1=Normal, 2=Wide –>
  • Drop frames which are previously only logged as “DEBUG [OpMetadata.cpp:83] @ 1s :Possible data corruption”
  • Made most getter function of IRImager const
  • Added optics_text support to raw data recording
  • Simple SDK (direct_binding.h)
    • New function evo_irimager_set_pif_framesync_output for setting the pif framesync output
  • Fixed segmentation fault in IRImager.initRawdataHeader
  • Added missing EvoIRFrameMetadata.h for matlab example
  • Simple SDK (direct_binding.h)
    • Added support for multiple cameras in Simple SDK
      • evo_irimager_multi_usb_init returns unique camId
      • all other function starting with evo_irimager_multi requires acquired camId
      • camId 0 is reserved for old single camera functions
    • Set palette temperature range, if eManual scale mode is set (evo_irimager_set_palette_manual_temp_range)
    • Additional frame metadata beside thermal frame or palette image (evo_irimager_get_thermal_image_metadata)
  • Added support for setting the first radial distortion corretion factor (IRImager::setRadialDistortionCorrFact1)


  • Fixed reconnect issue on windows with XI80
  • Return IRArray instead of vector on IRCalibrationManager for compatibility between different compiler versions and debug/release build
  • Added optics_txt info to raw header

See the Migration Guide for migration from 7.x to 8.x

Optris PI camera

Windows or Linux? The choice is yours.

Especially in the field of embedded computing, Linux systems are very common. The IRImagerDirect SDK can be installed on several distributions of Linux like Debian or Ubuntu. The SDK is tested for the x64, x86 and ARM architectures. Example applications are available as a CMake project and introduce the core functionalities of the SDK. The installation procedure for Linux systems is described in detail here.

We support different driver packages depending on your architecture. You can find the different versions in our downloads.

Windows is the most common operating system. You can use and program your application with the same functionality as provided in the Linux version. Further, the API includes example applications, which can be built and started in a Visual Studio environment. The installation procedure for Windows is described in detail here. 

We provide the IRImagerDirect SDK for amd64 and i386 architecture. The version can be reached via our download site.

Framework Integration

Labview is one of the most common frameworks for measuring and testing in different industry sectors. That’s why we offer a Labview integration based on our Direct Binding API, so you can start to program your own application in Labview with low effort. 

If you are used to Matlab and do not want to change your framework, the Matlab interface provides useful functionality for visualization and conversion purposes like e.g. the conversion of raw imager data to thermal images.

For your applications developed with the Robot Operating System (ROS), we maintain the Optris Drivers Package so you can bring an optris PI camera into the ROS framework within just a few minutes.

Select your API level

The Easy API gives you fast access to data streams of multiple Optris cameras. Use features like USB connectivity or TCP/IP streaming with low development effort. The Direct Binding Interface provides access via several programming languages and toolboxes. We recommend to start with the Easy API if you are new to the IRImagerDirect SDK. 

You want to have full control over multiple thermal cameras, configuration, and timing? In this case, the Expert API is your choice. You have full control over hardware features like the shutter flag or the digital I/Os of the Industrial Process Interface (PIF).  

Frequently Asked Questions

Q: Can I convert RAVI files recorded with PI-Connect with the Direct-SDK to different Formats?
A: No, RAVI files are only used by PI-Connect. PI-Connect can import *.raw data files recorded with the Direct-SDK, not vice versa.

Q: Can I import data from my Direct-SDK based application to PI-Connect?
A: Yes, the class IRFileWriter supports a raw data format that can be read by PI-Connect. The example serializeRaw.cpp shows the usage of this class.

Q: The Direct SDK has a subset of features of the PI-Connect software.
A: It is designed for integrating optris PI imagers into your custom software solutions and doing image processing on your own. Please see the documentation for available features.”