||2 years ago|
|readme_img||2 years ago|
|.gitignore||2 years ago|
|LICENSE||2 years ago|
|README.md||2 years ago|
|colonycounter.py||2 years ago|
|fileutils.py||2 years ago|
|requirements.txt||2 years ago|
|shell.nix||2 years ago|
|window.py||2 years ago|
A simple Utility to count and measure bright spots on dark images 😸
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.
- 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.
|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|
- 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:
- $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