======= Cvičení 2 : Segmentace a mikroskopie =======
V tomto cvičení si vyzkoušíme segmentaci, tentokráte na CT obrázcích, pro segmentaci budeme používat MATLAB. Ve druhé části cvičení si projdeme pár příkladů z mikroskopie.
===== Zadání =====
* [[#Segmentace kosti v MATLABu]]
* Vhodně zkombinujte zmiňované metody a získejte segmentace kostní dřeně pro tři dané axiální řezy. Okomentujte postup a pro každý vstupní obrázek zobrazte vstupní obrázek a výslednou segmentaci. [3b]
* **BONUS** U vybraného obrázku najděte segmentaci svalové hmoty. [+1b]
* [[#Příklady z mikroskopie]] - Vyřešte příklad označený hvězdičkou. [2b]
Postup řešení, výsledek a případně ilustrace z obou zadaných částí vložte do zprávy. Kód v MATLABu odevzdávat nemusíte, pokud použité metody a zvolené parametry dostatečně popíšete ve zprávě.
==== Segmentace kosti v MATLABu ====
Běžné snímky CT zobrazují větší oblast než je ta, která je předmětem dalšího zkoumání. V našem případě se jedná o snímek stehenní kosti, pro nás zajímavá je oblast kostní dřeně, tj. vnitřku kosti, tak jak je znázorněno na následujících obrázcích.
^ Vstupní CT řez ^ Segmentace dřeně ^
| {{:courses:a6m33zsl:ct_slice.png?300 |}} | {{ :courses:a6m33zsl:ct_mask.png?300}} |
| Obrázek zobrazen v rozpětí [-500, 1000] HU | Červeně vyobrazená maska kostní dřeně |
Hodnoty jednotlivých pixelů odpovídají {{https://en.wikipedia.org/wiki/Hounsfield_scale|Hounsfieldovým jednotkám}}, jedná se o normalizovanou škálu intenzit při zobrazování CT obrázků, více se dozvíte na přednášce o CT. V rámci této úlohy je pro nás relevantní informace, že oblast kosti kolem dřeně získáme prahováním při hodnotě 250.
== Data ==
Vstupní data jsou tři axiální řezy podobné tomu na obrázku výše, všechny soubory (ve formátu .TIF) jsou zabalené do jednoho archivu {{ :courses:a6m33zsl:Slices.zip | zde}}.
== Postup ==
- Oprahováním při dané hranici získáme segmentace kostí
- Pokud nám oprahování ohraničí více oblastí, než jenom kost, pak lze pomocí vhodného kritéria (poloměr, plocha, apod.) odfiltrovat nežádoucí oblasti
- Když máme segmentaci kosti, tak se oblast kostní dřeně nachází uvnitř této segmentace.
- Vyplněním této mezery získáme pak segmentaci kosti a jejího vnitřku, hledaná vnitřní oblast je pak rozdílem segmentace kosti a vyplněné segmentace
Vhodné operace v MATLABu:
* Načtení obrázku: //imread//
* Zobrazení obrázků: //imshow//, //imtool// (umožňuje při zobrazení měnit kontrast), //imagesc//
* Prahování: //im2bw//, ale lze použít i přímé nahrazení hodnot, např
filtered = original;
filtered( filtered > a) = 0;
vytvoří kopii obrázku ''original'' a pak všechny hodnoty větší než ''a'' nastaví na 0.
* Morfologické operace pro binární obrázky: {{https://www.mathworks.com/help/images/ref/imopen.html|imopen}}, {{https://www.mathworks.com/help/images/ref/imclose.html|imclose}}, vyplňování děr -- {{https://www.mathworks.com/help/images/ref/imfill.html|imfill}}
* Filtrace segmentovaných oblastí podle plochy: {{https://www.mathworks.com/help/images/ref/bwareafilt.html|bwareafilt}} nebo {{https://www.mathworks.com/help/images/ref/regionprops.html|regionprops}}
* Zobrazení masky přes originální obrázek - můžeme použít následující //trik//:
imshow(image, [-500, 1000], 'InitialMag', 'fit');
% Make a green image of same size as mask
green = cat(3, zeros(size(mask)), ones(size(mask)), zeros(size(mask)));
% turn overpainting on; and plot the green image
hold on
h = imshow(green);
% turn overpainting off
hold off
% Transparency of the green image is read from the mask image (values 1 for masked are, 0 otherwise)
set(h, 'AlphaData', mask);
kdy nejprve vykreslíme originální obrázek v rozmezí hodnot -500 až 1000, pak si vytvoříme zelený obrázek stejné velikosti jako naše spočtená maska a vykreslíme přes originální obrázek. Na závěr nastavíme, že transparentnost u zeleného obrázku se řídí hodnotami v obrázku ''mask'', tj. vše mimo segmentovanou oblast (''mask == 1'') je plně transparentní
==== Příklady z mikroskopie ====
Všechny potřebné vzorce najdete v {{courses:a6m33zsl:microscopy.pdf|přednáškách}} nebo na [[http://en.wikipedia.org/wiki/Optics|wiki]]. Další přehledový text o mikroskopii {{courses:a6m33zsl:microscopic_techniques.pdf|zde}}.
**Důležité vzorce**
* konvenční zraková vzdálenost $d = 250mm \, ,$
* zvětšení $Z = \frac{y'}{y} = -\frac{a'}{a} \, ,$
* zobrazovací rovnice spojné čočky $\frac{1}{a} + \frac{1}{a'} = \frac{1}{f} \, ,$
* zvětšení mikroskopu je určeno vztahem $Z = \frac{\Delta}{f_{ob}} \frac{d}{f_{oc}}$
* Abbé-Rayleigho kriterium $d = 1.22 \frac{\lambda}{2 NA}$
* difrakce na mřížce $b \sin \alpha = k \lambda \, ,$
===== Čočka =====
Máme dánu jednoduchou spojnou čočku s ohniskovou vzdáleností 10 cm. Spočtěte zvětšení této čočky pro červený objekt o velikosti 7 cm umístěný do vzdálenosti 14 cm před rovinu čočky.
/*
* ohnisková vzdálenost f=0.1 m,
* velikost předmětu y=0.07 m,
* vzdálenost předmětu a=0.14 m.
==== Řešení ====
Zvetšení spočteme jako poměr velikosti obrazu ku původnímu objektu
Z = \frac{y'}{y} = -\frac{a'}{a} \, ,
zobrazovací rovnice spojné čočky je následující
\frac{1}{a} + \frac{1}{a'} = \frac{1}{f} \, ,
ze kterého jednoduše vyjádříme obrazovou vzdálenost
a' = \frac{f a}{a - f} \, ,
a po dosazení do rovnice získáme následující řešení
Z = \frac{f}{a - f} = \frac{0.1}{0.14 - 0.1} = 2.5 \, .
*/
===== Mikroskop - zvětšení I. =====
Máme dán jednoduchý mikroskop tvořený dvěma spojnými čočkami o ohniskové vzdálenosti objektivu 5mm a s průměrem 1cm, optické délce tubusu (optický interval) 100mm a ohniskové vzdálenosti okuláru 25mm. Konvenční zrakovou vzdálenost uvažujeme 25cm. Nakreslete jeho schéma a určete jeho zvětšení.
/*
* ohnisková vzdálenosti objektivu f_{ob}=0.005 ,
* ohnisková vzdálenosti okuláru f_{oc}=0.025 ,
* optická délka tubusu \Delta=0.1 m,
* konvenční zraková vzdálenost d=0.25 m.
{{ :courses:a6m33zsl:mikroskop.jpg?600 |Mikroskop}}
==== Řešení ====
Zvětšení mikroskopu je určeno vztahem
Z = \frac{\Delta}{f_{ob}} \frac{d}{f_{oc}} = \frac{0.1}{0.005}\frac{0.25}{0.025} = 200 \, ,
*/
===== (*) Mikroskop - zvětšení II. =====
Mikroskop má zvětšení objektivu 40, zvětšení okuláru je 10 a optický interval 12 cm. Určete zvětšení mikroskopu a ohniskové vzdálenosti objektivu a okuláru.
/*
* zvětšení Z_{ob}=40 ,
* úhlové zvětšení okuláru \gamma_{oc}=10 ,
* optický interval \Delta=0.12 m,
* d=0.25 m.
==== Řešení ====
Zvětšení mikroskopu je určeno vztahem
Z = \frac{\Delta}{f_{ob}} \frac{d}{f_{oc}} \, ,
což je vlastně součin jednotlivých zvětšení
P=Z_{ob} \gamma_{oc} = 40 \cdot 10 = 400 \, .
Pro ohniskovou vzdálenost objektivu platí
Z_{ob} = \frac{\Delta}{f_{ob}} ~~~\rightarrow~~~ f_{ob}=\frac{\Delta}{Z_{ob}} = \frac{0.12}{40} = 3 ~ \text{mm} \, .
Pro ohniskovou vzdálenost okuláru platí
\gamma_{oc} = \frac{d}{f_{oc}} ~~~\rightarrow~~~ f_{oc}=\frac{d}{\gamma_{oc}} = \frac{0.25}{10} = 25 ~ \text{mm} \, .
*/
===== Mikroskop - rozlišení =====
Mějme optický mikroskop s numerickou aperturou objektivu 0.4 a uvažujme, že vlnová délka světla je 650nm. Určete maximální rozlišení, kterého lze za těchto podmínek dosáhnout při snímání biologického materiálu o velikosti 10x5cm.
/*
* numerickou aperturu objektivu NA=0.4 ,
* vlnová délka světla \lambda=6.5 \cdot 10^{-7} .
==== Řešení ====
Pro výpočet nejmenších pozorovatelných detailů, omezených difrakčním limitem, se používá Abbé-Rayleigho kriterium dané rovnicí
d = 1.22 \frac{\lambda}{2 NA} = 1.22 \cdot \frac{6.5 \cdot 10^{-7}}{2 \cdot 0.4} = 990 ~n \text{m} = 1 ~\mu \text{m} \, .
*/
===== Difrakce =====
Světlo o vlnové délce 600nm dopadá kolmo na optickou mřížku o periodě $20\mu \textrm{m}$. Určete úhel o který se odchyluje maximum druhého řádu od směru kolmého k rovině mřížky.
/*
* vlnová délka $\lambda=6 \cdot 10^{-7}$ m,
* perioda mřížky $b=2 \cdot 10^{-5}$ m,
* řád difrakčního maxima $k=2$.
==== Řešení ====
Pro difrakční maximum platí podmínka
$$b \sin \alpha = k \lambda \, ,$$
ze kterého určíme úhel $\alpha$
$$\sin \alpha = \frac{k \lambda}{b} = \frac{2 \cdot 6 \cdot 10^{-7}}{2 \cdot 10^{-5}} = 0.06 ~~~\rightarrow~~~ \alpha = 3^{\circ}26' \, .$$
*/