The challenge is to design and implement an algorithm that calculates the effect of an artistic image filter on a given raster image. The result should be similar to impressionist painting techniques - for examples, see the Wikipedia page on of impressionism.
The template application 084filter from the repository grcis serves as the basis of this project. This is a simple application in which it is possible to load an input image, enter a text parameter, and generate an output image. Within the application, the method Filter.Recompute() is responsible for calculating the output image. This method must be re-written, and the relevant location in the source Filter.cs indicated via comment brackets:
// !!!{{ // !!!}}
Original and unconventional approaches are positively evaluated. The result and flexibility (parameters) of your algorithm are more important than its speed and complexity.
If you need functions for conversion between RGB and HSV, please refer to the file common/MathSupport.cs. Greyscale conversion functions can be found in common/RasterDrawing.cs
You have to send us the file Filter.cs.
In the procedure InitParams() you can read any parameters you need.
If you use this string parameter param as input, do not forget to define and describe its semantics.
If you are using images to drive the input, and if you have achieved a nice result with a particular input image, you can also send us that image. But please watch the size of the mail attachment, and use some web upload service if it is too large (Dropbox, GoogleDrive, uloz.to),
and just send us the URL instead.
Also, when submitting the file, please make sure that it includes meaningful comments that describe the algorithm you chose: how you chose it, where you found information on it (literature), or which application inspired you (Photoshop, GiMP, ..). You should also clearly describe what the intended results of the filter are!
Hand in until: 4. 12. 2022
Basis: 7 points, bonus up to 7 points.
Visual Studio project: 084filter.
Modify and hand in the source file: Filter.cs
Please return your name in the InitParams() function!
Your algorithm should work on any input image. For test purposes, you can use images from the repository directory data, and also the images sail.png, silverstone-17671.png, maran-18587.png, monarch.png, skyline129-178-246.png.
Copyright (C) 2015-2022 J. Pelikán & A. Wilkie, last change: 2022-11-09 15:36:12 +0100 (Wed, 09 Nov 2022)