Computer Vision Blueprint is an innovative open-source tool designed to simplify the process of image analysis and manipulation using OpenCV through a user-friendly graphical node editor interface.
The Computer Vision Blueprint project is an innovative open-source tool designed to simplify the process of image analysis and manipulation using OpenCV through a user-friendly graphical node editor interface. This project leverages the power of Qt 6 for its GUI components, CMake for building and compiling, and integrates OpenCV for comprehensive image processing functionalities.
This project is intended to use the same nomenclature as OpenCV, DLib, and other libraries to make it easier for users to understand and use the nodes then in their own projects.
-
Graphical Node-Based Editor: At the heart of ComputerVisionBlueprint is a visually intuitive node editor that allows users to create, connect, and configure a series of processing steps in an easy-to-understand graphical format. This approach demystifies complex image processing workflows, making them accessible to both novices and experienced professionals alike.
-
Extensive OpenCV Integration: The project fully harnesses the capabilities of OpenCV, one of the most robust and versatile libraries for computer vision and image processing. Users can apply various operations such as face detection, image filtering, color conversion, and much more, directly within the node editor interface.
-
Custom Node Development: Users are not limited to predefined nodes. The ComputerVisionBlueprint platform supports the creation of custom nodes, enabling the addition of unique image processing functionalities tailored to specific project needs.
-
Cross-Platform Compatibility: Thanks to Qt 6, the project is designed to be cross-platform, supporting various operating systems including Windows, macOS, and Linux. This ensures that a wide range of users can access and benefit from the tool, regardless of their preferred development environment.
The motivation behind ComputerVisionBlueprint was to address the steep learning curve associated with image processing and computer vision applications. By providing a graphical interface for constructing and visualizing workflows, the project aims to lower the barrier to entry, fostering innovation and experimentation in fields ranging from academic research to industry-specific applications.
This project uses Qt 6, CMake, Conan, OpenCV, and the NodeEditor dependency checked out at 3rdparty/nodeeditor.
- Linux: an AppImage is available from the tags.
- Windows: source builds are supported with the PowerShell workflow documented below and in WINDOWS_BUILD.md.
Before building from source, install:
- Git
- CMake
- Qt 6
- Python 3
The setup scripts also install Conan dependencies and clone 3rdparty/nodeeditor when needed.
./scripts/setup.sh installs the Ubuntu packages used by the project, creates a local virtual environment, installs Conan 2.11, resolves Conan dependencies for Debug and Release, and clones 3rdparty/nodeeditor if it is missing.
# one-time dependency setup
./scripts/setup.sh
# configure a release build
cmake -S . -B build/linux-release \
-G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_TOOLCHAIN_FILE=.conan/Release/conan_toolchain.cmake \
-DCMAKE_PREFIX_PATH="/home/user/Qt/6.8.3/gcc_64;.conan/Release" \
-DOpenCV_DIR=.conan/Release
# build
cmake --build build/linux-release --parallelUse your local Qt installation root for CMAKE_PREFIX_PATH (for example /home/user/Qt/6.8.3/gcc_64). For a Debug build, switch Release to Debug in both .conan/... paths and CMAKE_BUILD_TYPE.
The Windows workflow uses the recently added PowerShell scripts and keeps Qt, Conan output, and the packaged executable inside the repository.
.\scripts\setup.ps1
.\scripts\compile.ps1 -Type Release -Deploy
.\build\vs2022-release\dist\ComputerVisionBlueprint.exesetup.ps1 installs Conan 2.11 and aqtinstall, clones 3rdparty\nodeeditor, installs Qt 6.8.3 for MSVC 2022 into .qt, and prepares .conan\Debug plus .conan\Release. compile.ps1 configures a Visual Studio 2022 build, builds it, and -Deploy packages a runnable executable with windeployqt.
Additional Windows details, optional flags, and output locations are documented in WINDOWS_BUILD.md.
If you prefer to prepare the repository manually instead of using the setup scripts:
git clone https://github.com/PabloPicose/ComputerVisionBlueprint.git
cd ComputerVisionBlueprint
mkdir -p 3rdparty
git clone https://github.com/paceholder/nodeeditor.git 3rdparty/nodeeditorYou will also need a Qt 6 installation and Conan-generated dependency files before configuring CMake.
Use this space to show useful examples of how a project can be used. Additional screenshots, code examples and demos work well in this space. You may also link to more resources.
-
Convert color In this example we will use the "Convert color" node to convert an image from BGR to Grayscale. The node has two input ports, one for the image and another for the conversion code. The output port will be the converted image. We will use the conversion code "Grayscale8"

-
Scale image In this example we will use the "Scale" node to resize an image. The node has two input ports, one for the image and another for the scale factor. The output port will be the resized image. We will scale the image by a factor of 0.15

-
Detect faces In this example we will use the "Detect multiscale" node to detect faces in an image. First we will use the Equalize Hist node to convert the image to an image with better contrast. Then with the "File" node we will load the cascade file and create the CascadeClassifier. Finally we will use the "Detect multiscale" node to detect the faces in the image. The output is a list of rectangles that represent the faces. Then we can simply draw the rectangles in the resized image (the equalized image or the scaled).
We will use the cascade file "haarcascade_frontalface_alt.xml" that can be found in the OpenCV repository frontal face alt link.

-
Detect faces on original We will scale the Rectangles x 15 and draw them on the original image

-
AppImage for Linux (download and run)
-
Windows executable
-
MacOS executable
-
Documentation
- Specific how to build
-
User interface
- Dark mode
- Light mode
- Customizable theme
- Drag and drop nodes
- Internationalization
- Spanish
- Save and load workflows
- Help widget
-
Image conversion formats
-
Scale image
-
OpenCV
- Equalize Hist
- Blur
- Gaussian Blur
- Canny
- Cascade Classifier
- Pyramids
- Pyr Up
- Pyr Down
- Median Blur
- Bilateral Filter
- Box Filter
- SQR Box Filter
- Filter2D
- Erode
- Dilate
- MorphologyEx
- Distance Transform
- Watershed
-
Files
- From file
- From URL
-
Video
- From file
- From URL
-
Input video
- Camera input
- Take screenshot from video to an image
-
DLib integration
- Face landmarks
-
Draws
- Draw rectangles
- Draw circles
- Draw lines
See the open issues for a full list of proposed features (and known issues).
Note: the main window already exposes Save and Load actions, but the roadmap item for workflow persistence remains unchecked until that workflow is documented and complete end-to-end.
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE.txt for more information.
