Skip to content

Commit

Permalink
docs: add project features to README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
Romaisaa committed Sep 19, 2023
1 parent 8a5b395 commit 8ee058b
Show file tree
Hide file tree
Showing 38 changed files with 125 additions and 1 deletion.
126 changes: 125 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,125 @@
# CV Toolbox
# Computer-Vision-Toolkit

## Table of contents:

- [Introduction](#introduction)
- [Full Project Features](#project-features)
- [Project Structure](#project-structure)
- [How to Run The Project](#run-the-project)
- [Team](#team)

### Introduction

Computer Vision Toolkit 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:<br />
Includes 3 types of noise that user can add to gray/coloured images:

| Uniform Noise | Guassian Noise | Salt & Pepper Noise |
| :----------------------------: | :-----------------------------: | :--------------------------------: |
| ![](samples\uniform-noise.png) | ![](samples\guassian-noise.png) | ![](samples\salt-pepper-noise.png) |

Includes 4 edge detectors types with the ability to control kernal size and any additional option for detector:
| Sobel | Roberts | Perwitt | Canny |
| :----------------------------: | :-----------------------------: | :--------------------------------: | :--------------------------------: |
| ![](samples\sobel-detector.png) | ![](samples\roberts-detector.png) | ![](samples\perwitt-detector.png) | ![](samples\canny-detector.png) |

Includes 3 types of filter enanling user to control kernal size:

| Average Filter | Guassian Filter | Median Filter |
| :-----------------------------: | :------------------------------: | :----------------------------: |
| ![](samples\average-filter.png) | ![](samples\guassian-filter.png) | ![](samples\median-filter.png) |

for more details about this page and results check [Report 1](docs\Report%201.pdf)

2. Normalization, Equalization and Thresholding page:<br />
Shows images histogram with options to normalize or equalize:
| Histogram | Normalization | Equalization |
| :----------------------------: | :-----------------------------: | :-----------------------------: |
| ![](samples\histogram.png) | ![](samples\normalization.png) | ![](samples\equalizer.png) |

Apply both global or local thresholding on uploaded image:
| Local | Global |
| :----------------------------: | :-----------------------------: |
| ![](samples\local-thresh.png) | ![](samples\global-thresh.png) |

for more details about this page and results check [Report 1](docs\Report%201.pdf)

3. Frequency Domain Filters and Hybird Image:
User upload 2 different images and determine the raduis for each filter type(high pass or low pass) and then can combine the output to get hybird image.
![](samples\hybird.png)
for more details about this page and results check [Report 1](docs\Report%201.pdf)

4. Hough Transform Page:
This page enbles user to apply Line/ Circle / Ellipse hough transform:
| Line | Circle | Ellipse |
| :----------------------------: | :-----------------------------: | :-----------------------------: |
| ![](samples\hough-line.png) | ![](samples\hough-circle.png) | ![](samples\hough-ellipse.png) |

for more details about this page and results check [Report 2](docs\Report%202.pdf)

5. Active Contour Page:
User has the ability to select cirlce fro image and tune paramters to contour objects.
| Example 1 | Example 2 |
| :----------------------------: | :-----------------------------: |
| ![](samples\active-contour.png) | ![](samples\active-contour-2.png) |

for more details about this page and results check [Report 2](docs\Report%202.pdf)

6. Harris and Lambda Corner detector page:
User can detect corners by harris or lambda methods and change kernal size and threshold.
| Harris | Lambda |
| :----------------------------: | :-----------------------------: |
| ![](samples\harris.png) | ![](samples\lambda.png) |

for more details about this page and results check [Report 3](docs\Report%203.pdf)

7. Image Matching Methods page:
User can match between image template and full image with 2 methods:
| Square Sum of Differences method | Cross Correlation Method |
| :----------------------------: | :-----------------------------: |
| ![](samples\match-ssd.png) | ![](samples\match-ncc.png) |

for more details about this page and results check [Report 3](docs\Report%203.pdf)

8. Sift Descriptors Page:
User can upload one or two image to get SIFT Keypoints with options to tune, and then compute keypoints matching between images.
<p align="center">
<img src="samples\sift-match.png" />
</p>

for more details about this page and results check [Report 3](docs\Report%203.pdf)

9. Advanced Thresholding Page:
Includes Global Thresholding with 2 methods:
|Ostu Thresholding| Optimal Thresholding |
| :----------------------------: | :-----------------------------: |
| ![](samples\ostu-thresh.png) | ![](samples\optimal-thres.png) |

Includes Local Thresholding and Multi-level Thresholding:
|Local Thresholding| Multi-level Thresholding |
| :----------------------------: | :-----------------------------: |
| ![](samples\local-thresh-2.png) | ![](samples\multi-thresh.png) |

for more details about this page and results check [Report 4](docs\Report%204.pdf)

10. Segmentation Methods Page:
User can segment RGB images with 4 types of segmentation:
| K-Means Segmentation | Mean Shift Segmentation | Agglomerative Segmentation | Region Growing |
| :----------------------------: | :-----------------------------: | :--------------------------------: | :--------------------------------: |
| ![](samples\k-means.png) | ![](samples\mean-shift-seg.png) | ![](samples\agg-seg.png) | ![](samples\region-growing.png) |

for more details about this page and results check [Report 4](docs\Report%204.pdf)

11. Face Recognition and detection page:

- User can upload person or multi persons images and detect faces in images.
- User can upload training folder includes images named with its label.
- Once training finishes, User can upload new image to predict person in the image
- if model already exists, Then user can work dirctley without training
- For new training, user can determin number of PCA compenets to train a nearest neigbour model.
- User can upload test folder to visulaize ROC for each label.
Binary file added samples/active-contour-2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added samples/active-contour.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added samples/agg-seg.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added samples/average-filter.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added samples/canny-detector.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added samples/equalizer.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added samples/global-thresh.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added samples/guassian-filter.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added samples/guassian-noise.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added samples/harris.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added samples/high-pass.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added samples/histogram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added samples/hough-circle.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added samples/hough-ellipse.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added samples/hough-line.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added samples/hybird.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added samples/k-means.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added samples/lambda.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added samples/local-thresh-2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added samples/local-thresh.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added samples/low-pass.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added samples/match-ncc.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added samples/match-ssd.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added samples/mean-shift-seg.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added samples/median-filter.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added samples/multi-thresh.png
Binary file added samples/normalization.png
Binary file added samples/optimal-thres.png
Binary file added samples/ostu-thresh.png
Binary file added samples/perwitt-detector.png
Binary file added samples/region-growing.png
Binary file added samples/roberts-detector.png
Binary file added samples/salt-pepper-noise.png
Binary file added samples/sift-feat.png
Binary file added samples/sift-match.png
Binary file added samples/sobel-detector.png
Binary file added samples/uniform-noise.png

0 comments on commit 8ee058b

Please sign in to comment.