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:
Some Computer Vision functions are in planning for a later stage of development.
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.
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.
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.
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.
Images can be cropped, with optional constrained aspect. Images can also be expanded by setting negative borders or offsets.
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.
Various filters help to find detail, hide unwanted detail/noise and detect edges.
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.
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.