ARTIMAGEN or Artificial Scanning-Charged-Particle-Microscope Image Generator is a small library designed to generate artificial images of various samples for C++ programming language.
ARTIMAGEN was originally developed for scanning electron microscopy (SEM), but now it is applicable in helium-ion microscopy as well. Numerous effects that appear in real instruments are simulated (noise, drift-distortion, edge-effect, etc.), which enables assessment of imaging, metrology or other techniques that work with micrographs. Unlike the real images, the artificial images exhibit defined types and amounts of these effects, which is their key advantage.
The artificial images that ARTIMAGEN can generate are:
- Gold on Carbon
- Periodic Crosses
- Dense GoC
- Heavily distorted Cross
At this time, also programs written in C or other languages may be linked with the library, which is enabled by the C wrapper. The basic usage of the library is quite easy.
For compilation, libfftw3 and libtiff4 are needed. If Lua scripting is desired, liblua5.1 is required as well. For Debian or Ubuntu Linux, download either the corresponding binary package, or the source package. For other Unix systems, get the source and use the standard install method. The Windows package contains DLL, and DEF files, which is all anybody should need for compilation against this library under Windows.
When the library is installed, the C++ or C programs can be linked with it.
As an example of the ARTIMAGEN library usage, the gAIG program was written, which is a GUI front end to the library (demonstrating just the basic usage).
Here it is an example of an image generation: we start with an empty image of a certain size.
Then, the background may be added. The library supports two background classes: CEvenBackground and CWavyBackground. The background can then be painted into the image using its apply () method.
CWavyBackgroud back(0.2,0.3,5,5); // pars: min-bg-level, max-bg-level, x-density, y-density back.apply(&im); // paint the background pattern
After application of the background, the sample may be painted on the top of the background: sam.paint(&im); // paint the sample
Further, you can add various effects to the image: drift-distortion or noise, or you can crop the image.
The program is multi-platform, it can be compiled for Windows32, Linux (32-bit and 64-bit versions), MacOSX, and others (untested).
Why is ARTIMAGEN famous?
ARTIMAGEN is a small but complex library designed to generate artificial images of various samples for C++ programming language, very useful for programmers.
Publisher: Petr Cizmar
Tags: generate artificial image, gold-on-carbon resolution sample,