===== Cvičení 4 : Počítačová tomografie (CT), přímá projekce =====
Na dnešním cvičení se budeme zabývat principem měření v počítačové tomografii (CT). CT pracuje při měření objektu (v kartézských souřadnicích x, y) pomocí sady projekcí pod různými úhly \theta. To odpovídá [[http://en.wikipedia.org/wiki/Radon_transform|Radonově transformaci]] vstupního obrázku a dnešním úkolem je naprogramovat tuto transformaci pomocí vlastní funkce ''myRadon''. Při rekonstrukci dat CT z měřeného signálu se pak používá inverzní Radonova transformace, kterou se budeme zabývat příště.
==== Zadání ====
- Najděte analyticky či graficky maximální absolutní hodnotu p_m = \max |p| a q_m = \max |q|, kde p=x\cos\theta+y\sin\theta, q=-x\sin\theta+y\cos\theta a (x,y)\in [-x_m,x_m] \times [ -y_m, y_m]. [0.5b.]
- Diskretizujte rovnici (1). [0.5b.]
- Naprogramujte funkci //{{courses:a6m33zsl:myradon.m?linkonly|imgRadon=myRadon(img,theta)}}// která vrátí přímou Radonovu transformaci ''imgRadon'' [(2p_m+1) \times k] obrázku //image// [m\times n] pro úhly //theta// [1\times k]. Úhly zadávejte ve stupních. Dodržte šablonu funkce. [3b.]
- Pomocí vámi napsané funkce transformujte Shepp-Loganův fantom, který si můžete vytvořit funkcí {{https://www.mathworks.com/help/images/ref/phantom.html|phantom}}, parametrem funkce je velikost fantomu. Do reportu vložte výsledek spočítaný na fantomu s velikostí 256px pro úhly 0,1\ldots 179^\circ. Nezapomeňte na správná měřítka a popisy os. [1b.]
==== Podrobný popis ====
Stručná ilustrace souřadných systémů pro danou projekci pod úhlem \theta je na následujícím obrázku.
{{ :courses:a6m33zsl:radonproj.png?400 | Radonova transformace pro projekci p, theta}}
Souřadná soustava (p, q) vznikne otočením soustavy (x, y) o úhel \theta. Pro transformaci tedy platí
\begin{equation*}
p = x \cos(\theta) + y \sin(\theta) \qquad \qquad q = -x \sin(\theta) + y \cos(\theta)
\end{equation*}
a pro inverzní transformaci pak platí
\begin{equation*}
x = p \cos(\theta) - q \sin (\theta) \qquad \qquad y = p \sin(\theta) + q \cos(\theta)
\end{equation*}
Výsledná Radonova projekce ze souřadného systému obrázku //(x,y)// do Radonova prostoru (\theta,p) je dána integrálem
J(\theta,p) = \int_{-\infty}^\infty f\left ( p\cdot\cos(\theta) - q\cdot\sin(\theta) ~ , ~ p\cdot\sin(\theta) + q\cdot\cos(\theta) \right ) dq
==== Možný postup ====
- Je dobré nastavit souřadnice obrázku tak, aby bod ''[0, 0]'' ležel uprostřed obrázku
- Určete minimální a maximální hodnoty pro p, q (1. krok zadání)
- Zvolte diskretizaci pro p, q v rozsahu [\min p, \max p] , respektive [\min q, \max q]
- Pro všechny úhly \theta a všechny diskretizační body p_h, q_h spočtěte J(\theta,p_h)
- pro uvažované body p_h, q_h spočtěte souřadnice x, y při otočení o \theta
- intenzitu obrázku v daném bodě, který nebude ve většině případů ležet přímo ve středu pixelu, dostaneme interpolací (funkce {{http://www.mathworks.com/help/matlab/ref/interp2.html|interp2}}
- spočtěte numerickou hodnotu J(\theta,p_h)