A collection of C# and WPF applications exploring fundamental computer graphics, image processing and geometric transformation techniques. The repository contains coursework exercises implemented as separate desktop applications, with the algorithms written directly in C#.
The course required completion of eight out of nine laboratory assignments. Lab 8 was not selected, which is why the repository contains Labs 1–7 and Lab 9.
- Lab 1 — Drawing primitives: interactive creation and editing of lines, rectangles and circles, with JSON save and load support.
- Lab 2 — PPM image viewer: decoding of P3 and P6 PPM files, pixel inspection and JPEG export with configurable quality.
- Lab 3 — Colour models: RGB–CMYK conversion and an interactive 3D RGB colour cube with slice visualization.
- Lab 4 — Image filtering: arithmetic and brightness transformations, grayscale conversion, smoothing, median filtering, Sobel edge detection, sharpening, Gaussian blur and custom convolution kernels.
- Lab 5 — Histograms and binarization: histogram stretching and equalization together with manual, percent-black, iterative mean, entropy, minimum-error and fuzzy minimum-error thresholding.
- Lab 6 — Curves and rasterization: Bresenham line drawing and interactive Bézier curve construction using configurable control points.
- Lab 7 — 2D transformations: polygon creation, vertex editing, translation, rotation and scaling, with JSON persistence.
- Lab 9 — Image analysis: HSV range selection, live colour segmentation and calculation of the percentage of matching pixels.
- C#
- .NET 8 and .NET 10
- Windows Presentation Foundation (WPF)
- XAML
WriteableBitmappixel-buffer processing
Each GK.Lab* directory is an independent WPF project. Shared sample images and PPM files are stored in img/.
The projects target Windows because they use WPF. Open the selected .csproj file in Visual Studio on Windows, or build it with a compatible .NET SDK:
dotnet run --project GK.Lab1/GK.Lab1.csprojReplace GK.Lab1 with the lab you want to run. Labs 1–2 target .NET 8, while the later projects currently target .NET 10.
This repository is a completed collection of computer graphics coursework. The applications are intended for local Windows use and are not deployed services.
Developed by Michał Grochowski.