Astrodynamic / PhotoLab-in-Qt-CPP

PhotoLab is a C++17 program that applies filters to BMP images. It implements the MVC pattern, provides a GUI using the Qt library, and includes convolution filters and color correction algorithms. Developed within the PLab namespace and with a full set of unit-tests.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PhotoLab Project in Qt/CPP

PhotoLab v1.0 is an open-source image processing application developed in C++17, using the Model-View-Controller pattern and a GUI library with API for C++17. The program provides a pool of ready-made filters, including conversion to grayscale, negative, and toning, as well as the ability to apply convolution filters such as emboss, sharpen, box blur, Gaussian blur, Laplacian filter, and Prewitt filter or Sobel filter. Additionally, the program allows the user to enter an arbitrary filter kernel matrix (up to size 16x16) by hand through a separate dialog window.

Main window

Dependencies

PhotoLab v1.0 uses the following dependencies:

  • CMake 3.15 or higher
  • Qt5 (Widgets module)
  • GTest (for unit tests)

Build

To build PhotoLab v1.0, please follow these steps:

  1. Clone this repository to your local machine.
  2. In the terminal, navigate to the project's root directory.
  3. Run the following command to build the project: make all

To rebuild the project, run make rebuild. To clean the project, run make clean.

Usage

To use PhotoLab v1.0, please follow these steps:

  1. Open the program by running the executable.
  2. Load an arbitrary image in BMP format using the "Load Image" button.
  3. Apply a filter from the pool of ready-made filters or enter an arbitrary filter kernel matrix using the appropriate buttons.
  4. Save the result of filtering into a separate file (BMP format) using the "Save Image" button.

Examples

To apply the "Negative" filter to an image, follow these steps:

  1. Load an image using the "Load Image" button.
  2. Click on the "Negative" button.
  3. Save the result using the "Save Image" button.

To apply the "Gaussian blur" filter to an image with a 3x3 kernel, follow these steps:

  1. Load an image using the "Load Image" button.
  2. Enter the filter kernel matrix in the appropriate dialog window.
  3. Click on the "Gaussian blur" button.
  4. Save the result using the "Save Image" button.
Filters
Grayscale Grayscale Negative Negative
Picking tone Picking tone Toning Toning
Emboss Emboss Sharpen Sharpen
Box blur Box blur Gaussian blur Gaussian blur
Laplacian filter Laplacian filter Sobel left Sobel left
Sobel right Sobel right Sobel full Sobel full
Custom widget Custom widget Custom filter Custom

License

PhotoLab v1.0 is licensed under the MIT License. See the LICENSE file for more information.

About

PhotoLab is a C++17 program that applies filters to BMP images. It implements the MVC pattern, provides a GUI using the Qt library, and includes convolution filters and color correction algorithms. Developed within the PLab namespace and with a full set of unit-tests.

License:MIT License


Languages

Language:C++ 85.5%Language:CMake 13.4%Language:Makefile 1.1%