No description
readme_img | ||
.gitignore | ||
colonycounter.py | ||
fileutils.py | ||
LICENSE | ||
README.md | ||
requirements.txt | ||
shell.nix | ||
window.py |
Colony Counter
A simple Utility to count and measure bright spots on dark images 😸
Features
-
Image transformation results are cached and incremental.
-
Provides an ugly user interface with intuitive key binds.
-
Batch process/export image analysis results.
-
Adjust colony recognition and filtering through a couple of simple sliders.
- Remove false positives by clicking on them.
Getting Started
- Install python (>=3.8 recommended... I made sure to explicitly use ordered dictionaries but just in case).
- Install dependencies in whichever way you prefer.
- Create the folders "in", "out" and "cache" (or run colonycounter.py).
- Adjust queue functions in source code to suit your needs (and read through Caveats).
- Copy/Move your images into the "in" folder.
- Start the program by running the colonycounter.py file.
Key Binds
Key | Function |
---|---|
q, left arrow | load previous image |
w, right arrow | load next image |
a | apply changes (always do this before switching images, otherwise changes will be lost) |
r | reset changes that have not yet been applied |
l | load saved settings from disk |
s | save currently applied settings to disk |
left mouse btn | add colony to list of ignored colonies |
right mouse btn | remove colonies in the vicinity from ignore list |
c | clear list of ignored colonies |
e | batch process and export all images |
Caveats
- The current processing queue expects 16bit gray scale images with the file extension .tif (tagged image file).
- watershed function does not work on 16 bit images... so there are some hard coded values to bring measurements back to 16bit brightness values
- this means a loss of resolution
- To get hour and culture type values the following folder structure is expected:
- "$DIRIN/OPTIONAL_FOLDERS/$HOUR/$CULTURETYPE/image.tif"
- $HOUR = integer followed by the letter h
- $CULTURETYPE = whatever string identifies your culture type
- Code documentation is currently lacking
- Not all types are properly annotated