![]() |
Crystal ImageQuantitative Image Analysis |
Click on the thumbnail to the right for more imformation about the book.
Haidekker, M.A. Image Analysis and Visualization Software (Chapter 14). In: Advanced Biomedical Image Analysis, Wiley 2011.
Volunteers would be welcome.
Click here for the list of known bugs and some workarounds.
When you download software without paying a royalty, this does not mean that the software is Free (with capital F) in the sense of Free Software. If you download a compiled executable binary (such a a Windows .exe file), you have hardly any control over its actions. Such software is not Free. The Free Software philosophy enumerates four specific freedoms:
It is noteworthy that the Free Software philosophy does not leave the software in an anarchistic void. Rather, the goal of Free Software is to give all users the freedom to redistribute and change Free Software. So instead of putting Free Software in the public domain, we "copyleft" it. Copyleft says that anyone who redistributes the software, with or without changes, must pass along the freedoms listed above. For this purpose, Free Software is released under the terms of a legally binding license, known as the GNU General Public License.
In a scientific setting, an even stronger case can be made for Free Software where the source code is accessible for everybody. Imagine the following fictional section in the Materials & Methods section of a publication:
(...) Samples were prepared from spectroscopy-grade ethanol (Sigma-Aldrich no. 02850) by pipetting 1.0 ml solvent (Rainin PipetteLite LTS) with 20 microliters of the fluorophore in a 20 mM stock solution. The solution was vigorously mixed in 15 ml centrifuge tubes (Fisher cat. no. 05-539-5) for 30 seconds on a vortex mixer (Cole-Parmer). The sample was then (...) |
Contrast the meticulous description of the sample preparation with the superficial description of the statistical treatment. Proprietary, closed-source software does not allow you to examine the underlying algorithms. More generally, when you use software with unpublished source code, data processing steps (such as, for example, image analysis, or statistical analysis) cannot be reproduced by others. In fact, not even the users of closed-source software can know how their software has processed the data. Bugs may remain undiscovered, and unless the software users take tedious steps of validating their software, incorrect data may enter the scientific literature and remain undiscovered. There is a stark contrast between the meticulous disclosure of the methods in scientific articles and the black-box nature of the data processing and analysis components in the same articles. For this reason, a strong case must be made in favor of Free Software in scientific applications not only with respect to the liberties listed above, but also with respect to transparency and reproducibility of scientific data.
That said, Crystal Image relies on the GTK library. GTK is well-known to run under Windows with the Cygwin X-window emulator. Although I have not tried it, it is almost certain that Crystal Image can be compiled to run with Windows/Cygwin. Another good reason for having access to the source code: You want it on Windows? Great. Go ahead and compile it.
Another very elegant alternative is for you Windows users to install VMWare or Virtualbox. These are virtual machines. You run Linux inside an application window, which is safe to install. Myself, I run those few unavoidable Windows apps inside VirtualBox on a Linux host. You can install your virtual machine with the LiveDVD, and you should be up and running within less than 30 minutes.
Evidently, a more comprehensive revision is needed in which global variables are properly declared extern in the header files and defined in one module only. In subsequent releases, this will be accomplished. However, the gcc-10 incident raises the question of a broader cimage roadmap. Crystal Image has been developed over a long time, and some code sections appear like the old ramparts of a historical building. Some date back to GTK 1.2, and deteriorating compatibility becomes evident. Over time, some compatibility issues were simply patched over, but they continue to accumulate. These issues affect almost exclusively the GUI component and not the image processing algorithms. At some point, it appears that a major overhaul becomes inevitable, which leads back to the roadmap. As of this version, the roadmap issue is left open, though.
Click here for the list of bug fixes and new features in the most recent Crystal Image release. This includes a list of changes for older versions.
2. Precompiled binaries:
For Ubuntu/Debian systems, pre-compiled binaries are available.
Due to library changes in the distros, multiple versions of cimage-0.9.9
were maintained, but support for really old releases (14.04, 16.04) has been
discontinued for cimage-1.0.0. Precompiled older revisions, including those
compiled for 14.04 and 16.04, are still available.
Choose the binary package suited for for your system:
** New feature: I will be building packages for the Raspberry Pi as well, since we are using the RPi in a research project for a distributed imaging system. Crystal Image works surprisingly well on the Raspberry Pi. However, I am not sure about compatibility. If yours does not work, drop me a line.
Download the package and install with dpkg -i cimage-1.0.0_xxxxx.deb. Files will be installed in /usr/local/cimage with symbolic links to the executables in /usr/local/bin. NOTE: The installer may complain about some non-standard install features. This is not a bug. By using /usr/local/bin, I am violating some Ubuntu standards that in turn violate GNU/Linux standards: /usr/local is INTENDED for optional packages such as Crystal Image -- those, which the Ubuntu install database actually incorrectly labels as "obsolete or locally created". You can safely ignore those install warnings.
If the package install fails due to unsatisfied dependencies, try
sudo apt-get install libc6-dev libtiff5 libtiff5-dev fftw3-dev libgtkglext1-dev libgsl0-dev \ libglu1-mesa-dev libgtkgl2.0-dev libgl1-mesa-devThis will install those libraries and development headers that the cimage binary package needs.
Tip: I found Aptitude to be incredibly helpful for dragging in missing packages: It is convenient, sure, but it is also transparent, more transparent than some GUI package managers.
3. Installation from source:
You can also download the source tarball from this link:
cimage-1.0.2_src.tar.bz2.
Save the file in a suitable directory, decompress (bunzip2), and unpack
with tar xvf cimage-1.0.2_src.tar. To compile the package, you need
to satisfy the following dependencies:
sudo apt-get install build-essential automake autogen libc6-dev libgtk2.0-dev \ libgdk-pixbuf2.0-dev libtiff5-dev fftw3-dev libgtkglext1-dev \ libgsl0-dev libglu1-mesa-dev libgtkgl2.0-dev libgl1-mesa-devOnce these libraries and their development headers are installed, use a command-line terminal, enter the source directory and type these commands:
./autogen.sh
This command should collect the libraries you have installed and create the necessary Makefiles. Note that you may have to remove the libtiff dependency in 'configure.in' for older systems.
Next, compile the entire package, including the modules, with
makeProvided that there were no errors, you can now start Crystal Image with src/cimage or you can install the program:
sudo cp src/cimage /usr/local/bin sudo mkdir -p /usr/local/cimage/dso sudo cp modules/*.dso /usr/local/cimage/dsoIf you want to use the external OpenGL-based 3D surface viewer, you need to additionally enter these commands:
cd modules make cimage_sv sudo cp cimage_sv /usr/local/bin
If you have a BLUE DVD, the DVD will not work. You have two options:
If you want to check if the download was successful, here are the checksums:
md5sum: 9378d7442ff99ba78dc1fda586d6f1a2
sha1sum: 02691996bab71dd7618818f2aaa6211dbd222972