PabloPicose / ComputerVisionBlueprint

ComputerVisionBlueprint is an open-source tool that simplifies computer vision with a drag-and-drop interface using Qt, OpenCV, and Qt Node Editor. It supports camera inputs, image processing, and basic OpenCV operations. Available as a Linux AppImage, it's designed for easy experimentation and contribution.
MIT License
10 stars 1 forks source link
blueprint dlib nodeeditor nodes opencv opencv-cpp opencv4 qt6 workflow


Logo

Computer Vision Blueprint

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.

About the Project

Product Name Screen Shot

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.

Key Features

Motivation

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.

(back to top)

Getting Started

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.

Direct download

For now only AppImage is available for linux. You can download the latest from the tags

Prerequisites

Before you begin, ensure you have the following installed on your system:

Setting up in Ubuntu 20.04 LTS

# 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>

Setup

  1. 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
  2. Install OpenCV Ensure OpenCV is installed on your system. You can download and install it from the OpenCV official website or use your distribution's package manager

Example detected faces

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.

  1. 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"

  2. 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

  3. 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.

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

(back to top)

Roadmap

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

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!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the MIT License. See LICENSE.txt for more information.

(back to top)

Acknowledgments

(back to top)