Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/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.
https://github.com/astrodynamic/photolab-in-qt-cpp
bmp-image cmake convolution convolution-filter cpp filter gui image image-processing make matrix mvc qt qtw unit-testing
Last synced: 3 days ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/astrodynamic/photolab-in-qt-cpp
- Owner: Astrodynamic
- License: mit
- Created: 2022-12-16T07:55:36.000Z (about 2 years ago)
- Default Branch: develop
- Last Pushed: 2023-05-09T03:43:44.000Z (over 1 year ago)
- Last Synced: 2025-01-12T18:09:44.474Z (3 days ago)
- Topics: bmp-image, cmake, convolution, convolution-filter, cpp, filter, gui, image, image-processing, make, matrix, mvc, qt, qtw, unit-testing
- Language: C++
- Homepage:
- Size: 7.84 MB
- Stars: 5
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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.
## 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
Negative
Picking tone
Toning
Emboss
Sharpen
Box blur
Gaussian blur
Laplacian filter
Sobel left
Sobel right
Sobel full
Custom widget
Custom filter
## License
PhotoLab v1.0 is licensed under the MIT License. See the [LICENSE](LICENSE) file for more information.