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 Paper 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.
  • Transform the image from color to gray scale image and plot Red, Green, and Blue histograms with their cumulative curves.
  • Implement Filtering in the Frequency Domain.
    • Ideal Low Pass filter (smoothing).
    • Ideal High Pass filter (sharpening).
  • Implement Corner Detection Technique (Harris Operator)
  • Implement SIFT Algorithm
  • Implement Thresholding Techniques such as:
    • Optimal
    • Otsu
    • Global Spectral
    • Local Spectral
  • Implement various types of segmenations such as:
    • K-Means Segmentation
    • Region Growing Segmentation
    • Agglomerative Segmentation
    • Mean Shift Segmentation

Project Structure

The ToolKit is built using:

  • C++/OpenCV:

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

    • QT 6.4 version or above
  • Python

    • Python Notebook
    • For visualization and comparing implmented algorithms results by built in functions.

Quick Preview

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

Filter Tab

Detect edges in the image using edge detectors

Edge Detection Tab

Contrast Enhancing Tab

Contrast Enhancing Tab

Low and High pass filtering and create Hybrid images (Old UI).

Hybrid Tab

Active Contour on Images

Active Contour Tab

Hough Transfrom

Hough Transfrom Tab

Applying Thresholding on Images

Threshold Tab

Applying Segmentation Techniques on Images

Segmentation Tab

Requirements to run

Qt Setup and openCV

Try a demo

Download Here !

Reports

You can find detailed reports about each algorithm implemented in this project 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