Obsah:
- Krok 1: Zahájení grafického uživatelského rozhraní (GUI)
- Krok 2: Načítání a čtení obrázků MRI v MATLABu
- Krok 3: Filtrování obrázků
- Krok 4: Izolace tumoru pomocí eliptické masky
- Krok 5: Obrys nádoru
- Krok 6: Analýza fyzikálních vlastností nádorů
Video: Detekce MRI mozkového nádoru pomocí Matlabu: 6 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:22
Autor: Madhumita Kannan, Henry Nguyen, Ashley Urrutia Avila, Mei Jin
Tento kód MATLAB je program pro detekci přesné velikosti, tvaru a umístění nádoru nalezeného ve skenech MRI mozku pacienta. Tento program je navržen tak, aby původně pracoval s detekcí nádorů při vyšetřeních MRI mozku, ale může být také použit pro diagnostiku rakoviny v jiných orgánových skenech.
Následující pokyny nejprve popíší metody analýzy obrazu pomocí filtrování a vyčištění skenu MRI, binarizace, filtrování mediánu a posuvná okna. Dále poučí o tom, jak izolovat nádor pomocí předem vygenerované eliptické masky, a dále ji filtrovat, aby nastínila obvod tvaru nádoru.
Jakmile je nádor detekován, instrukce dále popíšou, jak začlenit tento program do grafického uživatelského rozhraní (GUI). V rámci těchto pokynů bude připojen příslušný kód a soubory, které pomohou vysvětlit, jak tato analýza skenování MRI funguje.
Něco, co byste měli vědět, stáhnout a mít připraveno, než budete pokračovat v tomto pokynu: 1. Ujistěte se, že máte staženou nejnovější verzi MATLABu. R2018b můžete nainstalovat zde:
2. Abyste mohli tento program spustit, musíte mít přístup k souborům MRI skenování mozku. Ačkoli některé lze vždy najít z obrázků Google, lze u každého pacienta provést důkladnou a přesnou analýzu ze správných snímků různých vrstev skenů mozku. K souborům pro 20 různých pacientů s glioblastomem před a po léčbě můžete přistupovat z této databáze:
3. Zaměření tohoto programu a různé metody, kterými se tento projekt řídí, jsou popsány v tomto výzkumném dokumentu:
Krok 1: Zahájení grafického uživatelského rozhraní (GUI)
Prvním krokem by bylo vytvoření a spuštění grafického uživatelského rozhraní, GUI. To lze provést zadáním průvodce do příkazového okna, stisknutím klávesy Enter a vytvořením nového grafického uživatelského rozhraní. Jakmile je tento krok dokončen, můžete začít vytvářet funkce, jako jsou osy, statický text, upravovat text a tlačítka, která se zobrazí, když je program spuštěn a uživatel s ním může komunikovat. Tyto funkce lze upravovat a manipulovat pomocí inspektora vlastností, ale nejdůležitější funkcí, kterou je třeba při vytváření těchto funkcí změnit, je název značky. Je důležité změnit název tagu každé implementované funkce, protože nám to umožní vytvořit rozlišitelnou funkci zpětného volání. Jakmile budete s rozvržením svého grafického uživatelského rozhraní spokojeni, můžete přejít k načítání souborů DICOM, které se zobrazí v grafickém uživatelském rozhraní.
Krok 2: Načítání a čtení obrázků MRI v MATLABu
Abyste mohli načíst soubory DICOM, musíte správně inicializovat funkci zpětného volání, která by byla provedena po stisknutí tlačítka „Načíst obrázek MRI“. Jakmile je toto dokončeno, musíte vytvořit globální proměnnou, která by zobrazovala obraz na osách držadel, kde chcete zobrazit původní obraz MRI. Snímky skenování MRI stažené z databáze jsou všechny soubory ve formátu DICOM, které je třeba načíst do vašeho adresáře MATLAB. Vyhledejte soubor pomocí souboru imgetfile a načtěte je do programu. Obrázky se čtou pomocí vestavěné funkce MATLAB „dicomread“a první surový obrázek pro každý soubor je vložen do levé osy GUI pomocí imshow.
Vestavěná funkce MATLAB „dicominfo“je také velmi užitečná při adresování všech informací každého souboru MRI dicom. Tuto funkci jsme využili k extrakci všech popisných informací o pacientech, jako je jejich pohlaví, věk, hmotnost a výška. Tato funkce vám také poskytuje pořadí zásobníků, které je užitečné pro implementaci programu v grafickém uživatelském rozhraní. Vytvořili jsme proměnné pro každou z popisných informací pacientů, které budou použity pro GUI po stisknutí tlačítka detekce.
Krok 3: Filtrování obrázků
Jakmile je načten a načten soubor DICOM surového obrázku, je třeba obrázek převést ze stupňů šedi do binarizované podoby obsahující pouze černé a bílé pixely K vytvoření binárního obrazu ze surového obrázku jsme použili funkci „imbinarize“kontrolní aspekty adaptivního prahování při hodnotě citlivosti 0,59. Výchozí faktor prahové citlivosti 0,5 byl nízký a nebyl schopen detekovat jasnější skvrny a skvrny z obrázku, proto jsme ho zvýšili na 0,59.
Binarizovaný obraz je poté zpracován přes mediánový filtr pomocí funkce „medfilt2“, protože binarizovaný obraz je dvourozměrný. Nastavíme každý výstupní pixel tak, aby obsahoval střední hodnotu v sousedství 5 x 5 kolem odpovídajícího pixelu ve vstupním binarizovaném obrázku. To snižuje šum a zachovává okraje ve čtverci 5 x 5 kolem každého pixelu. Dále použijeme posuvné okno pomocí „strel“, abychom vytvořili plochý strukturní prvek ve tvaru disku s poloměrem sousedství 2 k identifikaci každého centrálního počátečního pixelu v každém sousedství disku. Použili jsme prvek pro strukturování disku, protože analyzujeme každé kruhové místo a pixely v každém místě, takže prvek tvaru disku je užitečnější.
Jakmile je obrázek zfiltrován, lze jej vyčistit pomocí funkce „imclose“a odstranit tak černé skvrny mezi filtrovanými bílými pixely na obrázku a uzavřít všechny mezery kolem něj. Kompletně zpracovaný obraz pak může být vykreslen do druhého subplotu předem přiděleného obrázku, což umožňuje srovnání mezi surovým a filtrovaným obrazem.
Krok 4: Izolace tumoru pomocí eliptické masky
Světlá místa nádoru lze poté izolovat z hlavního filtrovaného obrazu pomocí předem vygenerované eliptické masky. Chcete-li vytvořit tuto masku, měli byste znát velikost původního, nezpracovaného obrazu skenu MRI a pomocí jeho délky řádku a sloupce jako souřadnic x a y přidělit středové souřadnice pro eliptický trenažér. Osu y nastavíme jako hlavní osu s poloměrem 50 jednotek od středu a vedlejší osu s poloměrem 40 jednotek od středu.
Použili jsme funkci MATLAB „síťová mřížka“ke generování kartézské roviny se dvourozměrnými souřadnicemi mřížky na základě souřadnic obsažených ve vektorech od 1 do délky osy x a od 1 do délky osy y obrázku. Col je matice, kde každý řádek je kopií osy x, a řádek je matice, kde každý sloupec je kopií osy y. Kartézská mřížka reprezentovaná souřadnicemi Col a Row má řádky délky (1: Y_Size) a sloupce délky (1: X_Size). Pomocí indexů Col a Row generovaných kartézskou mřížkou určete rovnici elipsy v závislosti na předem určeném poloměru a středových souřadnicích. Eliptický obrys lze nyní vyplnit bílými pixely nalezenými z nádorových skvrn.
Pomocí předem vygenerované eliptické masky můžeme z filtrovaného obrázku oříznout konkrétní nádor, který chcete analyzovat. Eliptická maska detekuje, která místa logicky zapadají do obrysu elipsy, a přijme to jako místo na filtrovaném obrázku, aby bylo přijatelné jako nádor. Funkce „bwareafilt“poté odfiltruje ze snímku všechny ostatní objekty mimo tento detekovaný nádor. Použili jsme konkrétní okno 500 x 4000 empiricky na základě rozměrů všech obrázků. Poté jsme použili další posuvné okno s „strel“jako strukturní prvek ve tvaru plochého disku s větším poloměrem sousedství 6, abychom uzavřeli mezery mezi každým centrálním bílým pixelem v detekovaném tumoru. Zjištěné nádorové místo se dále vyčistí pomocí „imclose“, aby se dále odstranily černé pixely a vyplnily všechny otvory „imfill“. Takto zpracovaný nádor lze poté zobrazit ve třetím subplotu v předem přiděleném grafu za účelem srovnání izolovaného nádoru s původními a filtrovanými obrazy MRI skenu.
Krok 5: Obrys nádoru
Nyní, když je nádor izolován maskou, lze jej obrysovat a zobrazit na původním obrázku a ukázat jeho přesnou polohu. K tomu jsme použili funkci „bwboundaries“ke sledování dříve detekovaného nádoru pomocí obrysu. Zadali jsme obrys, aby nezahrnoval otvory v objektu nádoru, jak je naznačován. To lze vykreslit na původní surový obrázek pomocí smyčky „for“, která vykreslí obrys kolem nádoru pomocí indexů čáry o šířce čáry 1,5 pixelu. Tento obrys je pak vynesen na surový obraz, ukazující přesnou velikost a umístění nádoru, vzhledem k původnímu vyšetření MRI.
Krok 6: Analýza fyzikálních vlastností nádorů
Izolované a naznačené místo nám může poskytnout užitečné informace o velikosti, oblasti a umístění nádoru. Použili jsme funkci „regionprops“k detekci vlastností nádoru, které se týkají oblasti, obvodu, centroidů a hodnoty pixelového indexu. Tato hodnota pixelového indexu nám dává jednotky reálného světa pro každý pixel každého obrázku, jedinečné pro každé skenování. Tyto vlastnosti pak lze převést na jednotky skutečného světa v milimetrech. Empirické informace, které nám program poskytuje, jsou jedinečné pro každé vyšetření MRI a jsou velmi užitečné při určování velikosti, umístění a typu nádoru, které mohou uživatelé analyzovat a začlenit do grafického uživatelského rozhraní.
Doporučuje:
Detekce vibrací pomocí modulu senzoru kohoutku s piezoelektrickým šokem: 6 kroků
Detekce vibrací pomocí piezoelektrického modulu senzoru klepání: V tomto tutoriálu se naučíme detekovat otřesy pomocí jednoduchého piezoelektrického senzoru Vibrační modul a Visuino. Podívejte se na ukázkové video
Detekce objektů pomocí desek Sipeed MaiX (Kendryte K210): 6 kroků
Detekce objektů pomocí desek Sipeed MaiX (Kendryte K210): Jako pokračování mého předchozího článku o rozpoznávání obrazu pomocí karet Sipeed MaiX Boards jsem se rozhodl napsat další tutoriál zaměřený na detekci objektů. S čipem Kendryte K210 se nedávno objevil zajímavý hardware, včetně S
Ovládání Raspberry Pi pomocí Matlabu: 5 kroků
Ovládání Raspberry Pi pomocí Matlabu: Hej, tento tutoriál je o ovládání vašeho bezhlavého malinového pi pomocí matlabu. Možná budete muset nainstalovat matlab na nejnovější verzi, abyste mohli podporovat novější malinovou desku pi
Jak provést test sluchu pro dospělé pomocí MATLABu: 6 kroků
Jak provést test sluchu pro dospělé pomocí MATLABu: UPOZORNĚNÍ: Náš test NENÍ lékařskou diagnostikou a neměl by být používán jako takový. Chcete -li přesně změřit sluch, navštivte lékaře. Pomocí materiálů, které jsme již měli, naše skupina provedla test sluchu. Náš test je určen pouze pro dospělé a dospívající
Ovládejte Arduino bezdrátově pomocí MATLABu: 11 kroků
Ovládejte Arduino bezdrátově pomocí MATLAB: Viděl jsem několik kutilů o tom, jak navázat komunikaci mezi aplikací MATLAB a Arduino, která je pevně připojena k počítači. Nesetkal jsem se však s ničím, co by bezdrátově ovládalo Arduino přes MATLAB pomocí ethernetového štítu kompatibilního s ENC28J60