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 section guides you through the initial setup and building of the ComputerVisionBlueprint project. The project leverages Qt (version 6+), CMake for building, and requires OpenCV as a dependency. It also integrates the NodeEditor for graphical node-based editing.
For now only AppImage is available for linux. You can download the latest from the tags
Before you begin, ensure you have the following installed on your system:
# this may take a while
./scripts/setup.sh
# this will compile the project
# the path to qt installation is the path to the bin directory of the qt installation, i.e /home/user/Qt/6.2.0/gcc_64/
./scripts/compile.sh --qt <path to qt installation> --type <release or debug>
Clone the ComputerVisionBlueprint Repository
First, clone the ComputerVisionBlueprint repository to your local machine using Git:
git clone https://github.com/yourgithubusername/ComputerVisionBlueprint.git
cd ComputerVisionBlueprint
mkdir 3rdparty
Clone the NodeEditor repository from GitHub into the 3rdparty directory you just created
git clone https://github.com/paceholder/nodeeditor.git 3rdparty/nodeeditor
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
[x] AppImage for Linux (download and run)
[ ] Windows executable
[ ] MacOS executable
[ ] Documentation
[ ] User interface
[x] Image conversion formats
[x] Scale image
[ ] OpenCV
[ ] Files
[ ] Video
[x] Input video
[ ] DLib integration
[ ] Draws
See the open issues for a full list of proposed features (and known issues).
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!
git checkout -b feature/AmazingFeature
)git commit -m 'Add some AmazingFeature'
)git push origin feature/AmazingFeature
)Distributed under the MIT License. See LICENSE.txt
for more information.