Práca s obrázkami v 8-bitovej čiernobielej rovine.


Funkčnosť celého scriptu:

  • Systém si načíta 3 čiernobielé obrázky s 8-bitovými odtieňami sivej v rozmerze 512x512px pracovného priečinka, alebo iného s aboslútnou cestou, s ktorými budeme pracovať.
  • Je nutné, aby obrázky používali 8-bitovú čiernobielu paletu, pri použití čiernobieleho obrázku z 24-bitovej palety RGB sa obrázok nenačíta a program sa neskompiluje.
  • Systém si vygeneruje náhodnú postupnosť bitov, s ktorými budeme stĺpce každého obrázku násobiť. Stĺpec predstavuje daný bit každého pixelu obrázka, od LSB -> MSB.
  • Systém si každý pixel vyjadrí cez dátový typ unsigned int na ôsmich bitoch [0-255], čo určuje hodnotu čiernej. Čierna = 0, biela = 255.
  • Systém generuje 8 pozmenených obrázkov, pričom sa vždy mení jeden stĺpec - daný bit rozsahu 0-255 s váhou (1, 2, 4 ,8,16,32,64,128)
  • Systém vykreslí každý pozmenený obrázok podľa bitov LSB (less significant bit) až po MSB (most significant bit), teda celkovo 8
  • Týchto 8 pozmenených obrázkov spojí do jedného - finálneho, na ktorom sa pozmenené bitové úrovne prejavia najviac
  • Všetky prechody, pôvodný a finálny obrázok systém následne vykreslí do okna, kde si je možné rozdiely celkom zreteľne pozrieť.
  • Script určuje aj Špičkový výkon (pomer) signálu voči šumu (PSNR) a určuje aj strednú kvadratickú chybu (MSE).
  • Source code on Github: Github repo