Ix is a research tool for investigating images and useful functions.

Ix, pronounced "icks", is a research tool for viewing images and some image processing tasks, particularly comparisons. Ix is intended to be fast, small and optimised for research work, unlike The GIMP or Photoshop.

Ix is being developed simultaneously on Mac and Linux. Porting to Windows would be trivial. Most of what you see below is partially or fully functional. All icon designs are temporary.


The primary functions of Ix are:

Image comparison
Switching between images to visually compare, generating difference images and computing metrics
Image study
Viewing pixel values, looking at high or low frequency details, visualising block boundaries, measuring distances
Basic image manipulations
Scaling, cropping, rotations, projections
Basic image processing
Filtering, colour modifications, histogram processing
Advanced image processing functions
Red eye removal, white balance, etc.

Some Computer Vision functions are in planning for a later stage of development.


Main Window

Main Window

Image files can be dropped onto the list for loading. Ix supports loading/saving high bit depth images, JPEG, PNG, TIFF, TGA, PNM, JPEG-2000, BMP formats and SRIM (my proprietary format). The arrow buttons on the right hand side allow you to rearrange the viewing order. At the bottom is a status line.

From this window you can rotate images in 90 degree increments, mirror horizontally/vertically and edit the order in which images can be viewed.

Image files can be given a label, for example, so that you may refer to img2071.jpg as "Reference Image" and img2071_edited.png as "Proposed Edit"; for convenience.

Viewing Window

Ix is designed so that you can quickly flip back and forth between images for comparisons. This is complemented by independent viewing parameters and global view locking.

Each image has independent interactive viewing transform parameters of scale and translation. For example, you can open image 1, scale and shift it, then switch to image 2, modify scale and position, then switch back and image 1 will be as you viewed it last.

With global view lock enabled, any changes to the interactive viewing parameters are applied to all images. For example, you can open image 1, zoom in centred on a co-ordinate, switch to image 2 and it will also be zoomed in on the same co-ordinate.

Image co-ordinates can be shown for the mouse pointer position as well as pixel values. Interpolation can be disabled for zooming.

Information and Process List

Info dialog

Image information with an editable list of operations that have been performed on the image: simply choose the operation you wish to undo and 'pop' from the list. All image operations are performed in the native colour space (e.g. RGB, YCbCr) and colour standard (e.g. Rec 601, 709, 2020, etc). Cropping information is shown with the same format as used by ImageMagick *.

The process list allows images to be reloaded and the same operations to be performed. Lists may be saved as recipes (macros) and applied to other images. The list is automatically reduced; e.g. rotate 90 degrees left followed by rotate 90 degrees right results in no rotation.

Further list manipulations, such as re-ordering of operations could possibly be implemented.

* Note: Ix is not based on ImageMagick.


Scale dialog

Images can be scaled by giving new dimensions or setting a scaling factor. Dimensions can be constrained to fit a particular aspect. The interpolation kernel is selectable, with automatic anti-alias filtering.


Crop dialog

Images can be cropped, with optional constrained aspect. Images can also be expanded by setting negative borders or offsets.

Geometric Transform

Transform dialog

Images can be projected using a perspective transform, parameters are set using the 3×3 matrix convention. Some useful functions for normalising and inverting matrices are provided.

Matrices can be input via the number widgets or into the text box using either Matlab or CSV formats.

Image Processing


Various filters help to find detail, hide unwanted detail/noise and detect edges.

Advanced Functions

Colour Editor

Colour Editor

Functions available include

Colour channel manipulations can be performed, e.g. RGB to BGR, remove a channel, etc.



The distance between images can be found as MSE, PSNR, MSSIM and also NICE *. Difference images can be generated.

Automatic alignment via Phase Correlation can be used to overlap images for visual comparison or images can be manually aligned.

* NICE = Natural Image Contour Evaluation, see Rouse and Hemami, ICIP 2009.

Block Explorer

Block Explorer

The block explorer is a tool for investigating block transform coding, to help find which block a pixel belongs to.


The name "Ix" is a reference to Dune and furthermore IX looks like roman numerals, just like xv, which is intentional. Ix was inspired by xv but is not intended to be a copy.