Úkolem je implementovat kódování obdélníkového obrázku do kvadrantového stromu ("quad-tree"). Vstupní obrázek je barevný (RGB 24bpp) a má obecnou velikost MxN. Kvadrantový strom musí bezeztrátově reprezentovat vstupní data, tj. výstupem dekódování stromu musí být rastrový obraz totožný s originálem.
Základem poslouží projekt 055quadtree z repository grcis. Je připravena jednoduchá aplikace, která po načtení vstupního rastrového obrazu provede jeho zakódování do quad-tree (vaším algoritmem) a následně je strom pro kontrolu ihned dekódován a porovnán s originálem. Budete modifikovat předem založenou třídu QuadTree nacházející se ve zdrojovém souboru QuadTree.cs.
Náměty: nejjednodušší varianta spočívá v implementaci některé techniky z přednášky (s rozšířením pro obrázky libovolné velikosti). Pokročilejší řešení může používat i jiné přístupy dělení 2D mřížky, např. dělení obecného obdélníka na (přibližné) čtvrtiny. V takovém případě budete muset modifikovat i datové struktury (možná) a dekódovací algoritmus (určitě).
Technicky: vstupní/výstupní obrázky jsou předávány jako parametr typu
Bitmap.
Velikost zakódovaného obrázku je explicitně uložena ve třídě QuadTree,
výstupní obrázek musíte před dekódováním sami vytvořit.
Je možné používat rychlejší přístup do bitmapy obrázku (můžete
předpokládat formát pixelu RGB 24-bit), ale není to podmínkou.
TERMÍN: do 9. 12. 2012
BODY: 10 až 14 bodů (více bodů za efektivnější řešení)
PROJEKT: 055quadtree
ZDROJOVÝ SOUBOR: QuadTree.cs
TESTOVACÍ DATA: obrázek s omezeným počtem barev toucan.gif (886x1024)
OSTRÁ DATA: elephant.gif (1024x790, 7 různých barev), factory.gif (1024x662, 9 různých barev), flowers-big.gif (1024x519, 28 různých barev).
Copyright (C) 2010-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