Ú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 klasických grafických technik: mosaika či vitráž.
Základem poslouží projekt 067mosaic z repository grcis. Je připravena jednoduchá aplikace, ve které uživatel zadává vstupní obrázek a ihned se automaticky spouští metoda Mosaic.TransformImage() přepočítávající vstupní obrázek 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 Mosaic.cs označen závorkami:
// !!!{{ // !!!}}
Technicky: vstupní obrázek je předán Vaší metodě v parametru Bitmap input, navrhuji ponechat rychlý přístup do vstupních dat. Uživatelem zadaný textový parametr použijte k příp. modifikaci chování vašeho algoritmu. Výstupní obrázek vracíte pomocí výstupního parametru out Bitmap output.
Inspirace: použití Voroného
diagramů pro generování tvaru dílků mozaiky
(viz např. A Method
for Creating Mosaic Images Using Voronoi Diagrams).
Obecné teselace použité přímo nebo
nějakým způsobem adaptované na konkrétní vstupní obrázek. Výsledek by měl vypadat pěkně a/nebo
zajímavě, tím se řiďte.
Podpora: Pokud byste potřebovali, tak 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
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 nějakým filtrem (PhotoShop, GiMP, ..),
je-li to podle nějaké knížky/článku, apod. Na jaká data se má filtr aplikovat, jaký má být
výsledek výpočtu.. (nemusíte posílat žádné obrázky, ale pokud vám algoritmus bude výjimečně pracovat
na nějakém vstupu, přiložit ho můžete).
Také je potřeba dostatečně podrobně popsat parametry - jaký mají význam, jejich přípustné
hodnoty, ..
TERMÍN: do 8. 12. 2013
BODY: základ 8 bodů (smysluplná implementace efektu), tvary buněk dle obrázku, zajímavá teselace, .. až 7 bodů navíc
PROJEKT: 067mosaic
ZDROJOVÝ SOUBOR: Mosaic.cs
DATA: 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 J.Pelikán,
last change: $Date: 2014-10-03 15:44:39 +0200 (Fri, 03 Oct 2014) $
Send comments/requests to
pepca.at.cgg.mff.cuni.cz