IDL for Rapid Scripting of Image Processing

Interactive Data Language (IDL) is a language environment for rapidly scripting algorithms for processing imagery. IDL is closely tied to the more graphical ENvironment for Visualizing Images (ENVI) image processing environment from the same company. This simple high-level scripting language, supported by extensive tools, enables quickly hacking algorithms to find workable solutions.


IDL enables rapidly roughing out ideas at a high level by freeing developers from first building an extensive tool-kit of common image processing routines. As with most scripting languages, there is no need to declare variables with specific data types as in lower-level languages like C/C++. This level of control is available for optimizing performance on large arrays of data.

IDL is interactive, allowing the developer to enter and execute code fragments line by line without compiling and linking. Once the code fragment matures to being useful, it is simple to edit into a text file that can be run as a function or program within the IDL environment. Although the IDL library of functions is extensive, there will always be more functions that you will want to add.

As functions in IDL mature, they can be ported to lower level languages and compiled into binary executable code or libraries to improve speed and reduce memory requirements.

You can continue running algorithms in IDL as long as you have a licensed copy. But applying your algorithms more broadly on machines that do not have IDL, will require porting to another language.

Although there is an open-source version of MatLab, Octave, I have not heard of an open-source version of IDL. IDL does have a virtual machine that enables running IDL code “compiled” on a fully licensed version.