is an open source application designed for high throughput analyzing of microscopy images in the biological sciences.
With ImageC image processing pipelines can be defined which are applied on a set of images to analyze. The resulting data is stored in a file-based database (duckdb) and can either be viewed directly in ImageC using the built-in reporting tool, or the data can be exported to other file formats.
ImageC (EVAnalyzer 2), the direct successor of EVAnalyzer an imageJ plugin with more than 3000 downloads (June 2024), is a standalone application written in C++. The main goals were to improve performance, allow the processing of big tiffs and improve usability.
ImageC | EVAnalyzer | |
---|---|---|
BioFormats support | x | x |
OME-XML support | x | x |
XLSX report generation | x | x |
Max. image channels | 10 | 5 |
Max image size | no limit | 2GB |
Support for big tiff | x | - |
AI based object detection | x | - |
Database based result processing | x | - |
Heatmap generation | x | - |
Image density map generation | x | - |
In image object marker | x | - |
Built-in reporting tool | x | - |
Side by side image comparison | x | - |
This section contains information needed for anyone who is interested and especially for those who would like to contribute.
All data generated during an analysis run are stored using the file based database duckdb. Following database schema is used:
The data generated for each detected ROI are stored in the objects
table.
The object.image_id
identifies an image unique per run.
This id is calculated by the fnv1a
hash: object.image_id = fnv1a(<ORIGINAL-IMAGE-PATH>)
valgrind --tool=massif --log-file="filename" ./build/build/tests "[pipeline_test_spots]" valgrind --gen-suppressions=all --tool=massif --log-file="filename" ./build/build/tests "[pipeline_test_nucleus]"
Instal
apt-get install -y xserver-xorg xinit libxcb-cursor-dev libxcb-*
and execute
xhost +local:docker
on your host machine
Use Windows powershell and execute imagec with:
Start-Process -RedirectStandardOutput out.txt imagec.exe
conan graph info . --profile conan/profile_linux --format=html > graph.html
JNI generates some internal false positive segfaults which can be supressed for debugging.
Execute one of the two following lines in gdb
handle SIGSEGV nostop noprint pass
or
handle SIGSEGV nostop print pass
- Create new command in
backend/commands/image_functions
- Add the new command to
backend/settings/pipeline/pipeline_step.hpp
- Add the new command to
backend/settings/pipeline/pipeline_factory.hpp
- Add the command tp
ui/container/dialog_command_selection.cpp
docker build --target live -t joda001/imagec:live . docker build --target build -t joda001/imagec:v1.7.x . docker push joda001/imagec:v1.7.x
Add powershell permissions:
set-executionpolicy remotesigned
Install:
- Python3
pip install conan
Execute build_win.ps1
Many thank's to the authors of following open source libraries I used:
Thank's to the authors of imagej I ported some image processing algorithms from to C++.
ImageC is the follower of evanalyzer.
chmod +x imagec.app/Contents/MacOS/imagec xattr -dr com.apple.quarantine imagec.app open imagec.app
Copyright 2019-2025 Joachim Danmayr
Most parts of this software are licensed for non-commercial use only. Educational, research, and personal use are permitted. For Commercial please contact the copyright owner.
Some parts are licensed under AGPL-3.0.