Tech Tinkerer

Target Analysis Banner Art Image

Colony Counter

Colony Counter uses computer vision to detect and count colonies of bacteria on agar plates.

When doing a bacterial transformation lab in AP Biology, I decided that I wanted a tool that could automate the process of counting colonies to measure transformation efficiency.

Colony Counter allows you to upload an image of an agar plate with bacterial colonies and easily tune detection settings to ensure that all are counted properly.

I built this project using Python and OpenCV. The web interface was created using Streamlit, a Python library for creating data science web apps. Streamlit re-runs your app whenever you interact with the UI, so you can quickly see the results of your changes. This was ideal for a quick project like this, and I will certainly use it again the future.

Want to give it a try? I have self-hosted Colony Counter on my homelab server, so head to and see for yourself!

By building Colony Counter, I have learned:

  • Streamlit for easy data visualizations
  • Dockerizing a Python application
  • Troubleshooting websockets through a reverse proxy
  • Quickly iterating on a project for school