Skip to content

LiWeispace/Image-Processing-Algorithm-Implementation-Project

Repository files navigation

Image Processing Algorithm Implementation Project

This project implements three core image processing algorithms using C++: Low-luminosity Enhancement, Sharpness Enhancement, and Denoise. This project does not rely on external libraries (such as OpenCV). Instead, it implements point-to-point operations and convolution filters from scratch, demonstrating a solid understanding of fundamental image processing principles and C++ programming capabilities.

🛠 Development Environment & Tools

  • IDE: Visual Studio Code
  • Compiler: MinGW (GCC)
  • Language: C++

🚀 Project Execution & Results Demonstration

This project contains three independent sub-programs corresponding to different image processing tasks. All output results will automatically be saved in the same directory as the source code.

1. Low-luminosity Enhancement

This program aims to improve the brightness and contrast of dark images using direct brightness enhancement and Gamma correction.

  • Source Code: Low_luminosity Enhancement.cpp
  • Executable: Low_luminosity Enhancement.exe
  • Input Image: input1.bmp
  • Output Images:
    • output1_brightness200.bmp (Brightness +200)
    • output1_Gamma2_0.bmp (Gamma = 2.0)

📸 Results Showcase

Original Image (Input) Brightness Enhancement (+200) Gamma Correction (Gamma = 2.0)
input1 brightness gamma

2. Sharpness Enhancement

This program uses spatial filtering techniques, specifically Laplacian Kernels, to detect edges and enhance image sharpness.

  • Source Code: Sharpness_Enhancement.cpp
  • Executable: Sharpness_Enhancement.exe
  • Input Image: input2.bmp
  • Algorithm Implementation: Sequentially applies two Laplacian kernels with different intensities for image enhancement.
  • Output Images: output2_1.bmp (Weak enhancement), output2_2.bmp (Strong enhancement).

📸 Results Showcase

Original Image (Input) Laplacian (Weak Enhancement) Laplacian (Strong Enhancement)
input2 laplacian_weak laplacian_strong

3. Multi-stage Denoise

This program implements and compares the Median Filter, Gaussian Filter, and Bilateral Filter for noise removal and edge preservation. This section includes two different noise processing strategies.

  • Source Code: Denoise.cpp
  • Executable: Denoise.exe

Experiment 1: Median Filter Kernel Size Comparison

  • Input Image: input3.bmp
  • Process: Setting the Median Filter window size to 3x3 and 5x5 respectively.
  • Output Images: output3_1.bmp (Window=3), output3_2.bmp (Window=5).
Original Image (Input 3) Median Filter (Window = 3) Median Filter (Window = 5)
input3 median3 median5

Experiment 2: Composite Filter Optimization (Median + Gaussian + Bilateral)

  • Input Image: input4.bmp
  • Process 1: Median Filter (Size: 3) → Gaussian Filter (σ=0.7) → Bilateral Filter (Parameters: 11.5, 16.3).
  • Output 1: output4_1.bmp
  • Process 2: Median Filter (Size: 3) → Gaussian Filter (σ=0.7) → Bilateral Filter (Parameters: 3.0, 50.0).
  • Output 2: output4_2.bmp
Original Image (Input 4) Composite Filter (Param Set 1) Composite Filter (Param Set 2)
input4 composite1 composite2

📌 How to Run

To compile the program yourself, open the terminal in the MinGW environment and execute the following command (using Program 1 as an example):

g++ "Low_luminosity Enhancement.cpp" -o "Low_luminosity Enhancement.exe"

About

Low_luminosity Enhancement & Sharpness Enhancement & Multi-stage Denoise

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages