Omar-Saad-ELGharbawy / Filtering-and-Edge-Detection-App

Filtering & Edge-Detection Image Processing Application Using C++ & QT Creator

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Image Processing Application

Table of contents:

Introduction

It’s an image processing implementation functions project implemented in C++ with a desktop application (Qt) that consists of five tabs that let the user add noise to an image, filter the added noise, view different types of histograms, apply thresholds to an image, and create hybrid images.

Project Features

In this project you can:

  • Add different types of noise to the image:
    • Salt and Papper noise.
    • Uniform noise.
    • Gaussian noise.
  • Using different types of filtering:
    • Average filter .
    • Gaussian filter.
    • Median filter.
  • Detect edges in the image using:
    • Sobel edge detector.
    • Roberts edge detector.
    • Prewitt edge detector.
    • Canny edge detector.
  • Draw Histograms and Distribution curves for the uploaded image.
  • Equalize and Normalize the image.
  • Create Local, and Global thresholding.
  • Transform the image from color to gray scale image and plot Red, Green, and Blue histograms with their cumulative curves.
  • Apply filtering in the frequency domain.
    • Ideal Low Pass filter (smoothing).
    • Ideal High Pass filter (sharpening).
  • Create Hybrid images.

Project Structure

Imgpro is built using:

  • C++/Opencv:

    • Opencv 14/15/16 versions
  • QT framework:

    • QT 6.4.2 version
  • Python Notebook

    • For visualization and comparing implmented algorithms results by built in functions.
QT_GUI_TASK_1
├─  Filters
│  ├─ add_noise 
│  ├─ convolution
│  ├─ edge_detection
│  ├─ helper_functions
│  └─ remove_noise
├─  Frequency
│  └─ frequency
├─  Histogram
│  └─ Histogram
├─  Threshold
│  └─ Thresholding
├─  UI
│  ├─ cannyparameters 
│  ├─ gaussiannoiseparameters
│  ├─ qcustomplot
│  ├─ saltpepperparameters
│  ├─ thresholdwindow
│  └─ uniformnoiseparameters
├─  Forms
├─  Icons
├─  Images
├─  Common
├─  imageClass
├─  main
├─  mainwindow
README.md

Quick Preview

Add different types of noises to the image and filtering them.

Filter Tab

Draw histograms and distribution curves for the uploaded image.

Histogram Tab

Detect edges in the image using edge detectors

Edge Detection Tab

Equalization, Normalization, Local, and Global thresholding to the image.

Threshold Tab

Low and High pass filtering and create Hybrid images.

Hybrid Tab

Requirements to run

Qt Setup and openCV

Run the project

Try a demo

Download Here !

Team

Second Semester - Biomedical Computer Vision (SBE3230) class project created by:

Team Members' Names Section B.N.
Dina Hussam 1 28
Omar Ahmed 2 2
Omar saad 2 3
Mohamed Ahmed 2 16
Neveen Mohamed 2 49