====== Počítačová tomografie (CT) - přímá projekce ======
[[http://en.wikipedia.org/wiki/Radon_transform|Radonova transformace]] je matematická transformace, který se používá například při počítačové tomografii.
===== Stručné zadání =====
/* - Najděte analyticky či graficky maximum a minimum //p// a //q// z rovnic (2) níže. Předpokládejte, že //x// a //y// jsou omezené a platí \max{(x)}=-\min{(x)}, \max{(y)}=-\min{(y)} a \theta\in\langle 0,\pi\rangle. [0.5b.] */
- 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í //phantom(vel)//, 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 =====
/*
V tomto cvičení se seznámíte se vznikem a měřením signálu v počítačové tomografii, přímou Radonovou transformací. Radonův obraz funkce (obrázku) f(x,y) označme J(\theta,p).
*/
Souřadná soustava //(p,q)// vznikla pootočením souřadné soustavu //(x,y)// o zvolený úhel \theta
p=x\cos\theta+y\sin\theta ~~~~;~~~~ q=-x\sin\theta+y\cos\theta
//(2)//
a zpětná transformace je tedy následující
x=p\cos\theta-q\sin\theta ~~~~;~~~~ y=p\sin\theta+q\cos\theta
//(3)//
Úhel \theta určuje otočení projekce proti ose //x// a parametr //p// je vzdálenost projekční přímky od počátku. Vztah soustav //x,y// a //p,q// při úhlu \theta ilustruje obrázek.
{{ :courses:a6m33zsl:ct_projection_souradnice.png?300 |Ilustrační obrázek projekce}}
Radonova transformace převádí obraz v kartézských souřadnicích //x// a //y// do Radonova prostoru o souřadnicích //p// a \theta. 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 //(1)//
===== Možný postup =====
- Nastavte si souřadnou soustavu obrázku tak, aby bod //[0,0]// ležel uprostřed.
- Ze vztahů odvozených v 1. bodě zadání vypočítejte maximální a minimální hodnoty //p// a //q// z transformací //(x,y)// na //(p,q)// podle rovnice (2).
- Zvolte celočíselnou diskretizaci //p// v rozsahu //'max p'//, //'min p'//, a //q// v rozsahu //'max q'//, //'min q'//..
- Pro všechny //p//, //q// a \theta vypočtěte J(\theta,p) podle rovnice (1).
* Pro body vyjádřené v souřadnicích //p//, //q// s otočením \theta vypočítejte souřadnice //x//, //y//.
* Pomocí [[http://cs.wikipedia.org/wiki/Interpolace|interpolace]] ([[http://www.mathworks.com/help/matlab/ref/interp2.html|interp2]]) najděte intenzity v těchto bodech.
* Numericky vypočítejte J(\theta,p) (integrál diskretizujme).
//Poznámka: čím méně for cyklů použijete, tím rychleji vám výpočet poběží.//
Doporučujeme odladit kód na malém fantomu, např. 64\times 64px a teprve pak jej pustit na data 256\times 256px. Výsledek svého snažení porovnejte s funkcí [[http://www.mathworks.es/es/help/images/ref/radon.html|radon]], která je standardně implementovaná v Matlabu a do zprávy vložte rozdílový obrázek.
{{tag>medical CT projection Radon filter}}