Tuning OpenCV pipelines is usually a huge chore, involving enabling/disabling transformations, tuning values, redeploying, and tons of boilerplate code. We sought to make this process easier with our open-source CV Toolkit. Users can:
Upload a source image
Toggle processing steps on/off
Modify step settings through UI controls
Save current pipeline + parameters to JSON
Reload configurations later to continue from where they left off
Steps are Python files representing individual CV operations
JSON files represent pipelines and store:
step metadata (name, enabled state, etc.)
parameter values (e.g., kernel size, blur intensity)
setting input types (slider, text input, and more)
The CV Toolkit comes with over 10 different steps, but you can always add more. We highly recommend using agentic AI to create steps based off of our examples.
Clone the `cv-toolkit` repository from our GitHub and open it using the command line or an IDE (like VSCode)
Create a virtual environment using `python -m venv .venv` (Windows) or `python3 -m venv .venv` (Mac/Linux)
Launch the virtual environment with `source .venv/bin/activate`
Install dependencies using `pip install -r requirements.txt`
Launch the program using `streamlit run main.py`
Load a pipeline JSON file. You can start with a provided example JSON or create one from a template. Use the `Load` button to upload the file.
Tune your pipeline! Enable/disable steps, adjust settings, preview the output, and export your JSON once you're done. You can always load it later if you need to.
Using AI Agents (Recommended)
Spin up an AI agent such as GitHub Copilot, Claude Code, OpenAI Codex, or something else
Ask the AI agent to create a step for your new CV operation using the format of the existing steps in the step folder. Copy the instructions below to give it more specific instructions on what to do.
Manually
Create a step file in the `steps` folder. Draw inspiration from other step files: use Object Oriented Programming (OOP), define local variables for settings, apply the OpenCV operation and return the frame.
Add your step to the `__init__.py` file
Go to your JSON file and add your step to it. Draw inspiration from the implementation of other steps: fill out information for type, name, description, inputs, outputs, and anythng else that is required. Include information for all settings.