Napište funkci Iout = imsharpen(I,c)
. Vstupní
parameter c
určuje míru zaostření. Čím vyšší hodnota, tím
větší efekt, pro pak musí platit
I=Iout
. Rozumné chování funkce se očekává pro hodnoty
.
[1 bod]
Pro experimenty s restaurováním obrazu/dekonvolucí můžete použít předpřipravený rozmazaný obraz. Budeme uvažovat rozmazání pohybem pouze ve směru řádků nebo sloupců, v celočíselných hodnotách.
Implementujte funkci Iout = deconvolve(I,h)
, kde
h
je konvoluční jádro, které způsobilo rozmazání. Řádkový
vektor znamená rozmazání v horizontálním směru, sloupcový vektor
pak ve směru vertikálním. Připomínáme požadavek shodného typu a
velikosti Iout
a I
. Splnění tohoto požadavku
bude možná tady vyžadovat trochu péče.
[1 bod]
Implementujte funkci Iout =
removemotionblur(I,length,direction)
, kde vstupní parametery
length
a direction
jsou nepovinné. V
případě, že je funkce volána pouze s jedním parametrem, musí funkce
odhadnout směr rozmazání a jeho délku sama. Funkce bude testována postupně ve variantách:
I
- čili funkce musí spočíst jak délku tak i směr rozmazání
I,length
- neboli funkce musí ještě rozhodnout,
zda rozmazání je vertikálním či horizontálním směrem.
Počet vstupních parametrů
lze zjistit pomocí nargin
. Očekávává se, že funkce
použije výše požadovanout funkci deconvolve
. Parametr
length
je nezáporný, celočíslený, parametr
direction
je 'char', může nabývat hodnoty
'h'
pro horizontální směr nebo 'v'
vertikální směr rozmazání.
[2 body]