[MIT License](./LICENSE) # 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. ![](./readme_img/Filter_Colony.gif) - Remove false positives by clicking on them. ![](./readme_img/Remove_Colony.gif) ## 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](#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