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.
- IDE: Visual Studio Code
- Compiler: MinGW (GCC)
- Language: C++
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.
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)
| Original Image (Input) | Brightness Enhancement (+200) | Gamma Correction (Gamma = 2.0) |
|---|---|---|
![]() |
![]() |
![]() |
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).
| Original Image (Input) | Laplacian (Weak Enhancement) | Laplacian (Strong Enhancement) |
|---|---|---|
![]() |
![]() |
![]() |
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
- 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) |
|---|---|---|
![]() |
![]() |
![]() |
- 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) |
|---|---|---|
![]() |
![]() |
![]() |
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"










