Active Segmentation is an interactive image segmentation and classification plugin for ImageJ that leverages both machine learning and geometric features. It enables biologists and researchers to perform pixel-level classification and whole image segmentation without requiring deep machine learning expertise.
Active Segmentation integrates:
- Expert domain knowledge via partial ground truth labeling
- Geometric feature extraction based on multi-scale signal processing
- Machine learning classifiers (Random Forest, SVM via Weka)
It supports two main workflows:
- Image Segmentation β pixel-level classification of microscopic images
- Image Classification β whole image classification using the same pipeline
Originally developed at Zuse Institute Berlin (ZIB) and published in:
Vohra, S.K.; Prodanov, D. The Active Segmentation Platform for Microscopic Image Classification and Segmentation. Brain Sci. 2021, 11, 1645.
- Interactive segmentation using machine learning
- Support for multiple classifiers via Weka (Random Forest, SVM, etc.)
- Geometric and differential invariant feature extraction
- Multi-scale signal processing pipeline
- SQLite-based feature model persistence
- Extensible filter and transform plugin architecture
- Works as an ImageJ plugin β no separate installation needed
Before setting up the project, make sure you have the following installed:
| Tool | Version | Link |
|---|---|---|
| Java JDK | 8 or later | https://www.oracle.com/java/technologies/downloads/ |
| Eclipse IDE | Latest | https://www.eclipse.org/downloads/ |
| ImageJ | Latest | https://imagej.net/ij/index.html |
| Weka | 3.8+ | https://www.cs.waikato.ac.nz/ml/weka/ |
| Git | Latest | https://git-scm.com/ |
- Go to sumit3203/ACTIVESEGMENTATION
- Click the "Fork" button in the top right corner
- This creates a copy under your account at
https://github.com/YOUR_USERNAME/ACTIVESEGMENTATION
Open a terminal and run:
git clone https://github.com/YOUR_USERNAME/ACTIVESEGMENTATION
cd ACTIVESEGMENTATION
git remote add upstream https://github.com/sumit3203/ACTIVESEGMENTATION
git remote -v- Open Eclipse IDE
- Go to File β Import β Existing Projects into Workspace
- Select the cloned
ACTIVESEGMENTATIONfolder - Eclipse will auto-detect the project using
.projectand.classpath
- Right-click the project β Build Path β Add External JARs
- Add all
.jarfiles from thejars/folder in the project root
- Right-click
ActSeg.jardescβ Create JAR - This will generate the plugin JAR file
- Copy the generated JAR into ImageJ's
plugins/directory - Launch ImageJ
- Find Active Segmentation under the Plugins menu
- Open a microscopic image in ImageJ
- Launch Active Segmentation from Plugins menu
- Draw ROIs (Regions of Interest) on the image to provide ground truth labels
- Select desired features and a classifier
- Click Train to train the model
- Click Segment to apply segmentation
- Open a set of images in ImageJ
- Launch Active Segmentation
- Label sample images for each class
- Train and classify the full dataset
ACTIVESEGMENTATION/
βββ src/ # Java source code
β βββ Active_Segmentation_.java # Main ImageJ plugin entry point
β βββ FAbout.java # About dialog UI
β βββ activeSegmentation/ # Core segmentation logic
β βββ dsp/ # Digital signal processing / filters
β βββ ijaux/ # ImageJ auxiliary utilities
β βββ test/ # Test classes
βββ jars/ # External dependency JARs (Weka, ImageJ)
βββ docs/ # Project documentation
βββ resources/ # Icons and UI resources
βββ plugins.config # ImageJ plugin registration
βββ ActSeg.jardesc # JAR build descriptor
βββ README.md # This file
Contributions are welcome! Here's how to get started:
- Fork the repository
- Create a new branch for your feature or fix:
git checkout -b feature/your-feature-name- Make your changes
- Commit with a clear message:
git commit -m "feat: describe your change here"- Push to your fork:
git push origin feature/your-feature-name- Open a Pull Request against the
masterbranch
- Add unit tests using JUnit
- Improve Javadoc on core interfaces (
IFilter,IMoment) - Add support for new image filters
- Improve UI/UX of the plugin panels
- Add support for 3D volumetric images
This project is licensed under the terms found in the LICENSE file.
For questions or suggestions, please open an issue on GitHub.