======= 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' \, .$$ */