OpenCV Node Editor – Project Overview

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 frame
  • outputLabel: 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:

  1. Create a Python class in nodes/
  2. Create a corresponding .json config with parameters
  3. Register the node in node_factory.py

Supported parameter types (via JSON):

  • intQSpinBox
  • floatQDoubleSpinBox

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.