Obsah:

Použití různých prahových hodnot intenzity šedé stupnice k vizualizaci a identifikaci abnormalit na mamografických obrázcích: 9 kroků
Použití různých prahových hodnot intenzity šedé stupnice k vizualizaci a identifikaci abnormalit na mamografických obrázcích: 9 kroků

Video: Použití různých prahových hodnot intenzity šedé stupnice k vizualizaci a identifikaci abnormalit na mamografických obrázcích: 9 kroků

Video: Použití různých prahových hodnot intenzity šedé stupnice k vizualizaci a identifikaci abnormalit na mamografických obrázcích: 9 kroků
Video: Podrobná recenze Garmin Enduro 2 2024, Listopad
Anonim
Používání měnících se prahových hodnot intenzity šedé k vizualizaci a identifikaci abnormalit na mamografických obrázcích
Používání měnících se prahových hodnot intenzity šedé k vizualizaci a identifikaci abnormalit na mamografických obrázcích

Účelem tohoto projektu bylo identifikovat a použít parametr ke zpracování obrazů mamogramu ve stupních šedi různých klasifikací tkáně pozadí: mastné, mastné žlázové a husté tkáně. Tato klasifikace se používá, když radiologové analyzují mamografy a musí zvážit, zda hustota tkáně zakryje jakékoli abnormality, jako jsou léze nebo nádory. Důvodem je, že jak normální fyziologické struktury, jako je žlázová tkáň, tak vláknitá pojivová tkáň. a abnormální morfologie, jako jsou kalcifikace a nádory, budou na mamografu vypadat velmi jasně, zatímco méně hustá tuková tkáň bude vypadat černá. Proto bylo vhodné naprogramovat klasifikátor, který dokáže manipulovat s úrovněmi intenzity pixelů, aby co nejlépe vizualizoval a identifikoval masy.

Krok 1: Organizace údajů z mamogramu

Organizace údajů z mamogramu
Organizace údajů z mamogramu

Jedna z prvních věcí, které jsem si uvědomil, že musím zvládnout, byla organizace dat velmi jasným, stručným a přístupným způsobem. Toto jsou proměnné, které jsem extrahoval z databáze mammogramů mini-MIAS. Vytvořil jsem dvě pole. Jeden obsahující 4 sloupce:

  1. Číslo obrázku:
  2. x souřadnice hmotnosti
  3. y souřadnice hmotnosti
  4. Hmotnostní poloměr: (Toto definovalo přibližnou velikost hmotnosti

Druhé pole obsahovalo informace o klasifikaci:

  1. Typ tkáně na pozadí: Mastný (F), Mastný žlázový (G), Hustý (D)
  2. Popis hmoty: Dobře definovaný (CIRC), spiculated (SPIC), špatně definovaný jiný (MISC) Architektonické zkreslení (ARCH), Asymetrie (ASYM), Normální (NORM)
  3. Diagnózy: Benigní (B), Maligní (M)

Jelikož cílem tohoto projektu bylo určit nejlepší prahovou hodnotu pro každý typ tkáně pozadí, nebyly všechny informace nutné. Svůj projekt však můžete rozšířit o analýzu textur a otestovat svůj klasifikátor proti známým hromadným popisům.

Boční poznámka: Databáze, ze které jsem získal diagnostikované obrázky mamografu, uspořádala informace o každém mamografu do textového souboru odděleného od obrázků. Bylo pro mě mírně obtížné extrahovat data z textového souboru a organizovat je do polí, ale následující odkaz byl velmi užitečný při zjišťování toho všeho. Případně stačí upravit kód, který jsem vložil výše, pro vaše účely.

Formát souboru mamogramu: mdb001 G CIRC B 535 425 197

mdb002 G CIRC B 522 280 69

Nápověda TextScan: https://www.mathworks.com/help/matlab/ref/textsca…Mammogramová databáze:

Krok 2: Zpracování obrazu

Zpracování obrazu
Zpracování obrazu

Druhá věc, která přišla, když jsem zjišťoval, jak identifikovat masy, bylo to, že u mnoha abnormálních mamografů jsem nemohl vizuálně zjistit, kde je ta abnormalita nebo jak velká je. Vzhledem k tomu, že nejsem zkušený radiolog, se to očividně očekávalo. Nejjednodušší způsob, jak najít abnormality (podle mého dlouhého vyhledávání na Googlu), bylo podívat se na koncentrace světlých a tmavých oblastí. Primárně jsem použil funkci adapthisteq k vylepšení kontrastu obrazu a poté imbinarizaci k převodu obrazu na binární obraz k experimentování s různými prahovými úrovněmi.

  1. adapthisteq: Tato funkce transformuje hodnoty intenzity obrázků ve stupních šedi a rgb pomocí adaptivního vyrovnávání histogramu s omezeným kontrastem. Jinými slovy, upravuje histogram hodnot intenzity na určený typ distribuce. Odkaz na mathworks pro tuto funkci je přiložen níže pro další čtení.
  2. imbinarize: vytvoří binární obraz z obrázku v šedém měřítku přiřazením všech pixelů nad určitou intenzitou k 1 s a pixelů pod touto hodnotou a 0. Tuto funkci jsem použil k testování optimálního prahu pro snížení šumu pozadí tkáně.

Krok 3: Prahový kód

Prahový kód
Prahový kód

K binarizaci mamografu s různými prahovými hodnotami se používá smyčka for. Aby byl obraz větší, smyčka for obsahuje kód od kroku 3 do kroku 7. Takže každý binární obraz bude analyzován na abnormality. Tato smyčka for je navíc uzavřena v jiné smyčce for, která importuje nový obrázek mamografu z databáze v každé iteraci.

Krok 4: Hledání abnormalit pro každý binární obrázek

Nalezení abnormalit pro každý binární obrázek
Nalezení abnormalit pro každý binární obrázek
Nalezení abnormalit pro každý binární obrázek
Nalezení abnormalit pro každý binární obrázek

Dále jsem zpracoval binární obrázky pomocí funkce strel ve spojení s imopen, abych odstranil šum pozadí. Binární obraz z předchozího kroku je invertován a filtrován pomocí sousedství definovaného SE. Pak jsem použil bwlabel k označení všech oblastí, které měly alespoň 8 připojených pixelů.

Funkce regionálních rekvizit byla použita k nalezení těžiště a plošných vlastností každého místa identifikovaného bwlabelem.

Poté byla pomocí ismember identifikována všechna místa větší než 500 pixelů. Centroidy pro identifikovaná místa byly vyneseny na obrázek, který zobrazoval pouze skvrny větší v ploše než 500. Plocha identifikována = ismember (Označeno, indicies (tříděné oblasti> 500)); Spots = Identified> 0;

Krok 5: Vykreslení diagnostikované hmotnosti a umístění pro vizuální srovnání

Vykreslení diagnostikované hmotnosti a umístění pro vizuální srovnání
Vykreslení diagnostikované hmotnosti a umístění pro vizuální srovnání
Vykreslení diagnostikované hmotnosti a umístění pro vizuální srovnání
Vykreslení diagnostikované hmotnosti a umístění pro vizuální srovnání
Vykreslení diagnostikované hmotnosti a umístění pro vizuální srovnání
Vykreslení diagnostikované hmotnosti a umístění pro vizuální srovnání

Chtěl jsem zjistit, zda jsou skvrny nalezené bwlabelem správné. Udělal jsem to dvěma způsoby. Nejprve jsem analyzoval přesnost svého klasifikátoru vizuálním porovnáním. Jednoduše jsem do předem zpracovaného mamografického obrázku zakreslil skutečnou velikost a umístění abnormality (červený kruh) a místo určené kódem (modré x). Šest výše uvedených obrázků ukazuje účinky zvýšení prahové hodnoty ve stupních šedi.

Krok 6: Implementace druhé srovnávací metody

Implementace druhé srovnávací metody
Implementace druhé srovnávací metody

Druhým způsobem, jak jsem testoval klasifikátor a prahové hodnoty, bylo zjistit, zda umístění nalezená klasifikátorem byla v určité vzdálenosti od diagnostikovaných souřadnic abnormality. Prahové hodnoty, pro které byl alespoň jeden z identifikovaných bodů v rozmezí 1,5*r, jsem uložil ze známé abnormality do samostatného textového souboru s názvem Mammogram Data. Účelem bylo najít minimální práh potřebný pro můj klasifikátor k identifikaci abnormality.

Krok 7: Analýza shromážděných dat

Analýza shromážděných dat
Analýza shromážděných dat
Analýza shromážděných dat
Analýza shromážděných dat

Spustil jsem program na všech abnormálních mamografických obrázcích a zůstal mi obrovský textový soubor dat. Abych našel nejlepší práh pro každý typ tkáně, uspořádal jsem data podle typu tkáně a vynesl histogram prahových hodnot pro každý typ tkáně. Bylo rozhodnuto o správné prahové hodnotě, která prahová hodnota poskytuje nejpřesnější výsledky pro každý typ tkáně. Tato data jsem uložil k nahrání do mého klasifikátoru.

Krok 8: Vytvoření vlastního klasifikátoru

Vytvoření vlastního klasifikátoru!
Vytvoření vlastního klasifikátoru!
Vytvoření vlastního klasifikátoru!
Vytvoření vlastního klasifikátoru!
Vytvoření vlastního klasifikátoru!
Vytvoření vlastního klasifikátoru!
Vytvoření vlastního klasifikátoru!
Vytvoření vlastního klasifikátoru!

Poté, co jsem našel nejvhodnější prahové hodnoty pro každý typ tkáně, upravil jsem svůj původní kód tak, aby uživatel zadal číslo obrázku a typ tkáně a vybral prahovou hodnotu pro snímek mamografu. Poté jsem vykreslil diagnostikovanou polohu mamografu s nalezenými místy na původních mamografických obrázcích. Chtěl jsem to udělat zábavnějším, proto jsem naprogramoval funkci oříznutí kruhové oblasti kolem ROI. Uživatel bude instruován, aby si vybral středový bod a několik bodů, které nejlépe pokrývají ROI. Zde jsem připojil oba soubory matlabu.

Krok 9: Vylepšení? Nějaké nápady?

Když jsem psal tento instruktáž, začínám vidět mnoho vylepšení, která bych mohl udělat pro klasifikátor, jako je hledání způsobů, jak rozlišovat mezi různými typy hmot identifikovaných na základě analýzy textur nebo zlepšení mého testování sekce přesnosti SandBoxProject. soubor. Protože se jednalo o projekt s konečným termínem, musel jsem se někde zastavit, ale doufám, že budu schopen využít dovednosti zpracování obrazu, které jsem se naučil v jiných aplikacích. Také jsem připojil soubor, který byl použit k dávkovému zpracování všech abnormálních obrazů mamografu.

Doporučuje: