OpenCV Node Editor is a Qt-based visual programming tool designed for building real-time computer vision pipelines using OpenCV. It provides an intuitive node editor interface where users can drag, drop, and configure image processing blocks, offering live feedback on video or camera inputs. Whether you’re experimenting with filters, building custom image pipelines, or testing computer vision ideas, this tool accelerates the process by eliminating the need to write boilerplate code.
Core Features
- Node-based workflow: Build OpenCV pipelines visually by connecting processing blocks.
- Live video support: Use a webcam or video file as input.
- Real-time preview: See input and processed output side by side.
Technical Stack
Frontend: Qt (via PySide6) for a responsive and native GUI
Backend: Python for processing logic
Computer Vision: OpenCV for image and video processing
UI/UX: Modular node editor architecture, easy to extend with custom nodes
User Interface Overview
The main application window consists of two resizable panes:
Left Pane – Video Display
- Displays both input and output video frames
- Supports live camera feed or pre-recorded videos
- Widgets:
inputLabel: Raw frameoutputLabel: Processed frame
Right Pane – Node Editor
- Visual canvas for editing your node graph
- Dynamically updates based on selected node type
- Widgets:
- Dropdown for node types
- Add/Delete node buttons
- Properties pane for parameter tweaking
The layout uses Qt splitters, allowing users to resize panes interactively.

Node System: Under the Hood
Every node is a Python class backed by a JSON configuration file for UI elements. Nodes are self-contained units that process data and define editable parameters.
To Add a New Node:
- Create a Python class in
nodes/ - Create a corresponding
.jsonconfig with parameters - Register the node in
node_factory.py
Supported parameter types (via JSON):
int→QSpinBoxfloat→QDoubleSpinBox
Parameters are rendered dynamically in the UI, and changes reflect instantly.
Example: Text Detection Node
The Text Detection node performs OCR on frames using EasyOCR, no external binaries required.
This node demonstrates how easily complex functionality can be added through the node system. By default text_detection.txt is appended.

For Developers
This project is ideal for:
- Prototyping OpenCV pipelines
- Teaching visual processing concepts
- Rapid development of vision-based tools
You can extend it with custom filters, deep learning models, or detection logic — just drop a new node into the nodes/ folder.
License & Credits
Originally designed using Qt, OpenCV, and Python by me.
