This is the home page of the scientific image analysis program IMAL (the Image Measurement and Analysis Lab).
New! version 4.0.9 released (Nov 25, 2024)
Imal (formerly tnimage) is a powerful open-source scientific image
analysis program that allows you to create, edit, measure, and analyze
images. It is particularly useful for densitometric analysis of images
of SDS and agarose gels and X-ray or MRI images. It is also useful in
forensic image analysis, with many tests to detect image manipulation.
Latest DOS version: 2.2.7
Latest Linux version: 4.0.9 (Debian recommended)
Installation
instructions
Instructions for
image forensic testing in imal
Tutorial for image deconvolution in Imal
Basic principles of image deconvolution: why you need it, what
it does, and how to sharpen and de-alias images without losing detail
Tutorial on densitometry in imal
How to quantify bands and spots in Western blots, dot blots, and microscope
images
Tutorial on image forensic testing in imal
How to analyze scientific images to detect image manipulation
in the free open-source Imal software package
Compiling Imal in OSX (from V. Guerreiro)
Imal is primarily designed for image densitometry. It incorporates several unique and sophisticated algorithms that give demonstrably superior results to other software packages. Even poor quality images that cannot be analyzed with other software can often be successfully analyzed in imal.
Imal is also useful for astrophotography images and for general image analysis.
Imal is free to use and modify and is distributed under the GPL version 2.
Version 4.0.9 (Nov 25, 2024)
New options for opening and saving 'desktop' containing many images
Many other changes
Version 4.0.7 (June 27, 2024)
Many improvements with multiple image processing
Version 4.0.5 (December 19, 2023)
Added tagging dialog and ability to tag images by range (improvement
for resizing or rotating multiple images, where the image number changes)
Version 4.0.4 (October 22, 2023)
Added encrypted privacy file format to provide security so that images
are protected by password
Automatic opening and saving of AES-encrypted images
Improved handling of multiple image processing
Improved handling of tagged images and FFT spatial filtering
Histogram is now live
Removed custom file formats
Several bug fixes
Version 3.8.9 (Apr 02, 2023)
Improvements in automatic spot finding in densitometry
Fix for xwd image reading
Version 3.8.8 (Mar 18, 2023)
Improved interface for image convolution and deconvolution
Batch mode for FFT and Richardson-Lucy deconvlution
Version 3.8.7 (Mar 03, 2023)
Highlighting saturated pixels function added, accessible from main button
panel or in config menu
Minor bug fixes
Minor compilation fixes for new changes in C++ compiler
Default image format for new images is now a configure option. This is useful
when you use a macro command to create a large number of new images and save
them in a single command. Previously if a default format was not set, they
would all be saved as TIFF files.
R-L Deconvolution now also works in batch mode on groups of images.
Version 3.8.4 (Sep 20, 2022)
BioRad scn image format files from Chemidoc are now supported (so far read-only).
Version 3.8.3 (Aug 31, 2022)
Image forensic features added. See imal-image-forensics.html
included in the tar.gz file for a summary.
Version 3.8.2 (Aug 16, 2022)
Minor bug fixes
Added feature to save all tagged images at once instead of individually
Added image forensic features to document image manipulation. This is
still experimental and not intended for legal purposes. It is intended
for educational use and as a complement to other widely used image forensic
software. A unique feature of Imal is that it does not use “AI”!
Version 3.8.1 (Mar 20, 2022)
Fixed weird bug where statements like if(r==g){r=255;g=255;b=255}
worked for r and b but not g in some images.
More functions now work with tagged images.
Other minor bug fixes.
Version 3.8.0 (Mar 04, 2022) Added ability to apply a command to all images or any combination of images (tagging). Tagging is done in the Select Image dialog box. If some images are tagged, commands are applied only to the tagged images. If no images are tagged, commands are applied to the currently selected image.
Version 3.7.18 (Mar 01, 2022)
Inverse gamma function added.
Gamma functions not marking image as touched; fixed.
Paste sometimes requires two attempts; fixed.
Improved contrast adjustment
Improved color aliasing in circles.
Version 3.7.17 (Dec 02, 2021) Fix bugs introduced by previous bugfix including Frame Controls and Foreground Pattern. Image selection dialog box was preventing image cropping; fixed. Bezier curve color change in three-panel Dialogue not working; fixed.
Version 3.7.15 (Oct 07, 2021) Minor bug fixes
Version 3.7.14 (Sep 21, 2021) Fixed calibration not displaying correctly when image is not at upper left corner. Improved window focus hierarchy in noncompliant window managers. Fixed bug in Force Background filter in 16 bit images. Fixed bug in image flipping when the image has not yet been touched.
Version 3.7.13 (Jul 06, 2021) Pixel subtract dialog box behavior changed. Potential bug in image rotations fixed.
Version 3.7.12 (Dec 18, 2020) Improved and simplified flat field function. It is now in the Mask menu. Minor bugfix in image rotation for 16- and 24-bit grayscale images.
Version 3.7.11 (Nov 26, 2020) Minor changes to accommodate window managers that mess up window hierarchy. Fixed grayscale image handling so it's no longer necessary to set the grayscale map. Now if you set the grayscale mapping, settings are preserved. Fixed display error when mouse was moved with scroll wheel instead of up/down buttons.
Version 3.7.10 (Sep 21, 2020) minor bugfixes to enable compilation in Debian 11.5.0. See below for notes if you want to try to compile it.
Version 3.7.9 (Jun 02, 2019) minor bugfixes to enable compilation in Debian 9.9. Minor bugfixes in image calibration dialog box and elsewhere.
Version 3.7.8 (Nov. 24, 2017) was a major bugfix release. The recommended distro
to use is Debian 9.2.1 or later. This distro will save you the trouble of
compiling Motif. See install.txt
for details on compiling imal.
New in v.3.7.7: Richardson-Lucy deconvolution
NOTICE: As of version 3.6.0, new versions will be available in source code
or partially static format only. Older precompiled versions are still available.
NOTICE: To compile imal, you need Motif. This is often included in Linux and called "motif" and "motif-devel". You also must have the development files for libstdc++, freetype2 (libXft), libXrender, libjpeg, libtiff, and libpng. All of these are included in most Linux distributions. LibXbae is used if present. It is needed for the optional image spreadsheet editor. The manual gives detailed instructions for compiling for various operating systems.
WARNING: We have discovered that some Linux distributions are now including a bogus version of libjpeg known as libjpeg.8.0.2. This version uses a completely different API and is not supported in Imal. Please use only the authentic Jpeg libraries from IJG. Imal will compile in all versions of IJG libjpeg up to at least jpeg-9.
Note: some window managers handle click events in a different way from others. If this happens, the crop function may not work. To change this, select "Config . . . Configure" and check the "Buggy Window Manager" box.
New: Richardson-Lucy deconvolution, complete FITS r/w file format, 48-bit image processing, vignetting correction, and two types of binning. Major improvements for astronomical image processing.
Pre-compiled Linux versions for X11-Motif for Linux (Intel), SGI Irix, Mac OS X, Solaris, and ConvexOS are also available (Click below)
Several versions are provided. Download the version appropriate for your operating system. The dynamically-linked version will work if you have Motif and your libraries are up to date and in standard locations. If you don't have Motif, or if the dynamically-linked "linux" version doesn't work, you can either install Motif yourself, or use the "nomotif" or "static" version. OpenMotif 2.2.3 is the recommended version to use. You will also need the OpenMotif developers package to compile imal.
Note: The static version is no longer available due to an unknown change that was made to gcc.
Note: Two dynamically-linked and no-motif versions are included: imal and imal64, for 32- and 64-bit x86 Linux systems, respectively.
NOTE The source code version is the only file guaranteed to be the latest version. As of April 2011, pre-compiled versions are created only on an intermittent basis.
Conditions of use: This software is distributed under the GPL version 2. As a condition of use, users are asked to report any problems they encounter with the software.
1. Because each windowing system in Linux handles clicks in a different way, some features will not work properly in all window managers. What happens is the window manager grabs the focus away while you're selecting an area. This interferes with selecting non-rectangular areas and certain area selection functions in densitometry. Some window managers block focus in text boxes even among different applications, turning them into modal dialog boxes that prevent entering text in another window until they are closed. The lack of adherence to windowing standards in Linux is a big problem for us developers and it needs to be addressed. For now, the only solution is to avoid noncompliant window managers.
The non-recommended window managers below may or may not adhere to the standard, but they differ from the others. Future versions of imal will have a setting to switch from one type to the other. Here is a partial list of window managers known to work:
Recommended | Not recommended (at present) | Untested |
---|---|---|
Enlightenment | XFCE | KDE |
Cinnamon | Fluxbox | |
Gnome | Windowmaker |
2. Freetype2 headers are installed in a new location and might not be found
by configure
. It may be necessary to copy the freetype and freetype/config
headers into /usr/local/include for the time being, e.g.:
su
cd /usr/include
cp -pruv /usr/include/freetype2/* .
3. Many required packages aren't installed in Debian by default. These include:
Xpm, libxft2, libxft2-dev, libxmu-dev, libxmu-headers, libfl-dev,
libfl2, libXpm-dev, libxpm4, libpng-dev, libtif-dev, liftiff5-dev, libjpeg-dev,
libxbae4m, flex, bison, libfl-dev, libfl2,
and libmotif-dev.
4. There seems to be a problem with bison nowadays. If you get an error saying that yylex is an undefined reference, for example:
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/libfl.so:
try removing
undefined reference to `yylex'
collect2: error: ld returned 1 exit status
-lfl
from the makefile. If this doesn't
work, recompile a new version of bison and configure it with an empty
LEXLIB, i.e. type configure LEXLIB=
.
Another option is to use libfl.a instead of libfl.so. To do this,
remove the -lfl command in the makefile and add -Bstatic /usr/lib/x86_64-linux-gnu/libfl.a
.
5. DO NOT run flex against the files in this package. If you do, the files it produces will need to be manually edited according to the comments in calculator.y.
6. Some distributions do not install libXbae correctly. This means the
spreadsheet function will be disabled. To fix this, become root and
type
cd /usr/lib/x86_64-linux-gnu
Xbae include files are also needed if you want to use the spreadsheet function.
ln -s libXbae.so.4.0.60 libXbae.so
ldconfig
If you get the message
imal: loadlocale.c:220: _nl_load_locale: Assertion `idx % __alignof__ (u_int32_t) == 0' failed.
Type the command:
export LC_ALL=POSIX
before starting Imal.
If you get the message
Warning: translation table syntax error: Unknown keysym name: osfActivate
Warning: String to TranslationTable conversion encountered errors
this is caused by an incompatibility between the X11 and Motif.
This will prevent all Motif applications from displaying user-entered
text and will eventually cause the program to crash. To fix the problem,
become the superuser and copy XKeysymDB to its proper place:
su
cd /usr/share/X11
cp XKeysymDB /usr/X11R6/lib/X11
Feedback on usability issues, suggestions for new feature, errors in
the documentation, and bug reports are welcome.
Send reports to