Coder Social home page Coder Social logo

romaisaa / cv-toolbox Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 2.0 32.17 MB

Computer Vision algorithms implementation using C++QT & opencv.

C++ 99.85% QMake 0.15%
computer-vision cpp face-recognition opencv qtcreator segmentation active-contour corner-detection edge-detection image-filters

cv-toolbox's Introduction

Computer-Vision-Toolbox

Table of contents:

Introduction

Computer Vision Toolbox Application is a software solution designed to leverage the power of computer vision algorithms through an intuitive and user-friendly graphical user interface (GUI) developed using the Qt framework. This application aims to provide users with a versatile toolset for image analysis, making it suitable for a wide range of applications, including image processing, object detection,image features extraction, and more.

Project Features:

This application mainly consists of 11 tabs (pages) to provide user with all needed CV algorithms, each page has certain features that are related to each other as follows:

  1. Filters, Noise and Edge Detectors page:
    Includes 3 types of noise that the user can add to grey/coloured images:

    Uniform Noise Guassian Noise Salt & Pepper Noise

    Includes 4 edge detector types with the ability to control kernel size and any additional option for detector:

    Sobel Roberts Perwitt Canny

    Includes 3 types of filter enabling user to control kernel size:

    Average Filter Gaussian Filter Median Filter

    for more details about this page and results check Report 1

  2. Normalization, Equalization and Thresholding page:
    Shows images histogram with options to normalize or equalize:

    Histogram Normalization Equalization

    Apply both global or local thresholding on uploaded image:

    Local Global

    for more details about this page and results check Report 1

  3. Frequency Domain Filters and Hybrid Image: User can upload 2 different images and determine the radius for each filter type(high pass or low pass) and then can combine the output to get hybrid image. for more details about this page and results check Report 1

  4. Hough Transform Page: This page enbles users to apply Line/ Circle / Ellipse hough transform:

    Line Circle Ellipse

    for more details about this page and results check Report 2

  5. Active Contour Page: User has the ability to select cirlce from image and tune parameters to contour objects.

    Example 1 Example 2

    for more details about this page and results check Report 2

  6. Harris and Lambda Corner detector page: User can detect corners by Harris or lambda methods and change kernel size and threshold.

    Harris Lambda

    for more details about this page and results check Report 3

  7. Image Matching Methods page: User can match the image template and full image with 2 methods:

    Square Sum of Differences method Cross-Correlation Method

    for more details about this page and results check Report 3

  8. Sift Descriptors Page: User can upload one or two images to get SIFT Keypoints with options to tune, and then compute keypoints matching between images.

    for more details about this page and results check Report 3

  9. Advanced Thresholding Page: Includes Global Thresholding with 2 methods:

    Ostu Thresholding Optimal Thresholding

    Includes Local Thresholding and Multi-level Thresholding:

    Local Thresholding Multi-level Thresholding

    for more details about this page and results check Report 4

  10. Segmentation Methods Page: User can segment RGB images with 4 types of segmentation:

    K-Means Segmentation Mean Shift Segmentation Agglomerative Segmentation Region Growing

for more details about this page and results check Report 4

  1. Face Recognition and detection page:
  • User can upload person or multi-person images and detect faces in images.
  • User can upload a training folder that includes images named with its label.
  • Once training finishes, User can upload a new image to predict the person in the image
  • if the model already exists, Then the user can work directly without training
  • For new training, user can determine number of PCA components to train a nearest neighbour model.
  • User can upload a test folder to visualise ROC for each label.

Project Structure Overview:

main
├─ CV : header/source files related to CV algorithms implementation.
├─ docs : reports related to results and science behind.
├─ images : images used for test.
├─ models : used models in implementation
├─ pages : include ui/header / resource file related to pages design.
├─ plot : plotter used for graphs
├─ resources : resources used for app design.
├─ style : stylesheets used for app design.
└─ utilities: used for app ploting and different ui functionality.

Run the Project

  1. Install opencv libaray version 4.7.0 on your machine from Here.

  2. Install QT Creator on your machine from Here.

  3. Open .pro file and replace by paths on your machine:

    INCLUDEPATH += C:\opencv\build\include
    LIBS += C:\opencv\release\bin\libopencv_core470.dll
    LIBS += C:\opencv\release\bin\libopencv_highgui470.dll
    LIBS += C:\opencv\release\bin\libopencv_imgcodecs470.dll
    LIBS += C:\opencv\release\bin\libopencv_imgproc470.dll
    LIBS += C:\opencv\release\bin\libopencv_features2d470.dll
    LIBS += C:\opencv\release\bin\libopencv_calib3d470.dll
    LIBS += C:\opencv\release\bin\libopencv_objdetect470.dll
    
    
  4. Run the project.

Team Members:

cv-toolbox's People

Contributors

kamel-mohammed avatar kamelmoohamed avatar romaisaa avatar youssef-shaban avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.