Úkolem je navrhnout a implementovat algoritmus, který počítá efekt nad rastrovým obrázkem. Výsledek by se měl podobat některé z impresionistických malířských technik, např. viz Wiki stránka o impresionismu.
Základem poslouží projekt 084filter z repository grcis (GIT). Je připravena jednoduchá aplikace, ve které uživatel zadává vstupní obrázek a ihned se automaticky spouští metoda Filter.Recompute() přepočítávající vstup do nové podoby. Výstup je poté zobrazen ve formuláři. Tuto metodu musíte přeprogramovat, příslušný úsek kódu je ve zdrojáku Filter.cs označen závorkami:
// !!!{{ // !!!}}
Pokud nechcete používat rychlou (ale nebezpečnější a méně přehlednou) variantu přístupu k datům obrázků, nemusíte, prostě použijte kód založený na druhé větvi #if.
Originální nebo nekonvenční přístupy oceníme při bodování. Důležitý je zde vzhled výsledku a snadnost zadávání parametrů algoritmu (flexibilita je téměř vždy vítána), ne nutně rychlost práce algoritmu nebo obtížnost implementace.
Pokud byste potřebovali, funkce pro převody mezi RGB a HSV najdete v souboru common/MathSupport.cs. Funkci na převod do odstínů šedé najdete v common/RasterDrawing.cs
Musíte poslat zdrojový soubor Filter.cs.
Do procedury InitParams() napište sadu vhodných vstupních parametrů.
V parametru 'name' vraťte své jméno.
Pokud použijete stringový parametr param, nezapomeňte popsat jeho
formát a sémantiku.
Pokud jste dosáhli nějakého pěkného výsledku s konkrétním vstupním obrázkem,
můžete poslat i ten vstup. Ale pozor na velikost přílohy, radši ho někam vystavte
(Dropbox, GoogleDrive, uloz.to) a pošlete jen URL.
Do odevzdaného zdrojáku připište podrobnější komentář o původu vašeho algoritmu: zda jste ho sami vymysleli, zda jste se inspirovali literaturou, nějakým efektem (PhotoShop, GiMP...), apod. Na jaká data se má filtr aplikovat, jaký má být výsledek výpočtu..
Odevzdat do: 4. 12. 2022
Základ: 7 bodů za funkční filtr modifikující smysluplně vstupní obrázek,
bonus až 7 bodů za zajímavost výsledku, rychlost, pracnost, estetiku (subjektivně).
Visual Studio projekt: 084filter.
Modifikujte a odevzdejte soubor: Filter.cs
Do funkce InitParams() napište své jméno!
Váš algoritmus by měl fungovat na libovolný vstupní obrázek, pro testování můžete použít pár obrázků přímo z repository, z adresáře data, dále můžete použít třeba obrázky sail.png, silverstone-17671.png, maran-18587.png, monarch.png, skyline129-178-246.png.
Copyright (C) 2013-2022 J.Pelikán, last change: 2022-11-03 00:29:02 +0100 (Thu, 03 Nov 2022)