The arrayShow tool is a Matlab image viewer which has been designed for the evaluation of multidimensional complex images.



The data of an MRI scan often comprises various frames which may represent different slices, echoes, encodings etc. of the same object. Within the Matlab environment, such data can be conveniently stored in a multidimensional complex matrix. However, most imaging functions are restricted to two-dimensional matrices and cannot deal with complex data. The arrayShow tool has been designed specifically to overcome these limitations. It therewith offers practical solutions to some common MRI data visualization problems in Matlab.



 Figure 1.


Core functionality

Figure 1 illustrates an example of the arrayShow user interface (UI) for a Fourier reconstruction of an MRI scan with 25 echoes, 10 slices, a 4-element receiver coil and a base resolution of 160 x 160 data points. The main control panels (1-6) offer quick access to different image orientations and frames (1), informations about the data origin (2), windowing (3), statistics (4), the selected complex part (5), and the cursor position (6). The core of the tool is written in object oriented Matlab language with every panel representing a different class.


Complex data

Besides explicit selection of the real, imaginary, magnitude or phase part (5), arrayShow offers a combined representation by encoding phase in color and magnitude in brightness (Fig. 1). The phase angle below the current cursor position can also be visualized with a circular plot (7).


Cursor-position functions

Selection of a "plot dimension" (8) in the data address panel allows for quick inspection of signal evolutions at the current cursor position (9). The functionality can be easily extended by user-defined functions, e.g. to include signal fitting routines or statistics (10).


Inter-object communication

Being derived from a handle class, each arrayShow instance can be controlled directly from the Matlab workspace. Besides possible access from within user-defined functions this enables arrayShow objects to "communicate" with each other. Most UI controls therefore include a "send" button which allows for copying object properties such as orientation, windowing, colormap, cursor position, or ROIs (11) to other arrayShow windows. A dedicated arrayShow browser (12) helps keeping track of the open windows and provides multi-object commands such as batch export, the creation of difference maps, etc.


Quick access to Matlab functions

To speed up workflow, keyboard shortcuts are assigned to frequently-used functions as fft, fftshift, etc. Other tools as surf, rot90, or  impixelregion are made accessible from the menu bar (13).



arrayShow extends the functionality of the Matlab image viewer with a selection of powerful custom build tools which can substantially simplify evaluations of MRI data within Matlab. The open source can easily be extended with user-defined functionality.




Download the latest snapshot as a zip archive from the GitHub project page,

or clone the Git repository:

PowerPoint introduction (ePoster 3719, ISMRM 2013).


Citable abstract

T.J. Sumpf and M. Untenberger, "arrayShow: a guide to an open source Matlab tool for complex MRI data analysis," Proc. Int. Soc. Mag. Reson. Med., vol. 21, p. 3719, 2013. [pdf]


Legal information

Copyright © 2009-2013 Biomedizinische NMR Forschungs GmbH.
Distributed under the Boost Software License, Version 1.0


External Links

arrayShow has been incorporated into Fang Liu's MRiLab.

A collection of open source algorithms for image reconstruction can be found in Jeff Fessler's Image Reconstruction Toolbox.

Next >