< back

Cvičení 3 - Aritmetické operace

A) Teoretický úvod

Obdobně jako u veličin skalárních jsou i u vektorových a maticových definovány elementární aritmetické operace součet, rozdíl, násobení a dělení. Vzhledem k tomu, že na libovolný diskrétní obraz lze pohlížet jako na matici konečných hodnot, je patrné, že tyto elementární operace jsou definovány i pro obrazy.

Na šedotónovém obrazu lze provádět aritmetické operace přímo s prvky matic a výsledky uložit do výstupního pole, které bude mít stejný rozměr jako vstupní. Mezi základní aritmetické operace s obrazem patří součet, rozdíl, součin, dělení a míchání. Každou uvedenou operaci lze navíc provádět se dvěma obrazy nebo jedním obrazem a konstantou. Matematické definice aritmetických operací součtu (S), rozdílu (D) a míchání (B) uvádí následující vztahy.

Aritmetické operace lze aplikovat jak na šedotónové, tak na barevné i na binární obrazy. Nejedná se ovšem o binární operace s obrazy, ale o aritmetické operace s binárními obrazy. Binární obrazy se zpravidla vyskytují jako masky aplikované na jiný šedotónový nebo barevný obraz.

V případě barevných obrazů se operace provádí pro každou barevnou složku zvlášť a zvlášť se také ukládá výsledek do výstupního obrazu. Pokud je třeba provést aritmetickou operaci nad jedním barevným a jedním šedotónovým obrazem, má situace tři řešení. Za prvé je možné provést aritmetickou operaci nad šedotónovým obrazem a jednou složkou barevného obrazu a zbylé dvě ponechat nezměněné. Za druhé lze tentýž postup aplikovat na všechny tři složky barevného obrazu s třetinovou vahou prvků šedotónového obrazu a výsledky sečíst a nakonec za třetí lze barevný obraz převést na šedotónový podle následujícího vzorce a dále pokračovat jako v případě dvou šedotónových obrazů.

Při převodu barevného obrazu na šedotónový za účelem strojového zpracování obrazových dat je možné koeficienty CR, CG a CB volit libovolně, nejčastěji však rovné 1/3, kdy mají všechny tři spektrální složky stejnou váhu. V případě převodu barevného obrazu na šedotónový pro interpretaci lidským okem je ale situace odlišná. Vzhledem k rozdílné citlivosti lidského oka na různé spektrální složky nejsou jednotlivé koeficienty Ci rovny přesně 1/3, ale empiricky zjištěným konstantám CR=0.299, CG=0.587, CB=0.114.

B) Úkoly

  1. Pomocí syntaxe pro přístup k jasové hodnotě pixelu obrazu nebo pomocí maticových operací Matlabu proveďte s obrazy obraz05.bmp a obraz03.bmp popř. jedním obrazem a konstantou následující aritmetické operace:
    • součet obrazů: S(i,j) = P1(i,j) + P2(i,j) a R(i,j) = P1(i,j) + C
    • rozdíl obrazů: D(i,j) = P1(i,j) – P2(i,j) a R(i,j) = P1(i,j) – C
    • součin obrazů: M(i,j) = P1(i,j)*P2(i,j) a R(i,j) = P1(i,j)*C
    • dělení obrazů: Q(i,j) = P1(i,j)/P2(i,j) a R(i,j) = P1(i,j)/C
    • míchání obrazů: B(i,j) = X*P1(i,j) + (1-X)*P2(i,j) a R(i,j) = X*P1(i,j) + (1-X)*C, X<0;1>

    Sledujte rozdíly při práci s nativním datovým typem šedotónového obrazu (uint8) a při přetypování na vhodný vyšší datový typ a při zobrazování s a bez [] na místě druhého parametru funkce imshow.

  2. Z výše uvedených operací vyberte takovou, která: a) celkově zvýší jas obrazu, b) zvýší kontrast obrazu. U barevného obrazu rubikovaC.bmp zvyšte jas nejprve pouze jedné složky a vzniklý barevný obraz zobrazte. Následně zvyšte jas všech složek a zobrazte do vedlejšího podokna.
  3. Pro barevný obraz rubikovaC.bmp proveďte konverzi na šedotónový obraz s různými koeficienty {CR, CG, CB} jednotlivých spektrálních složek. Do jednoho okna zobrazte původní barevný obraz, šedotónový obraz s koeficienty převodu 1/3 a s koeficienty respektující citlivost lidského oka a zvlášť jednotlivé barevné složky.
  4. Vygenerujte syntetický obraz o rozměrech 512×512 pixelů jako šachovnicovou masku pro binární filtraci přičemž rozměr jednoho políčka volte tak, aby byla celá maska rozdělena na 8×8 políček. Poté proveďte s obrazem lenaM.bmp prostorovou filtraci (operace násobení obrazu a masky).

C) Dobré vědět

D) Ilustrace výsledků