Die gebruik van verskillende grysskaalintensiteitsdrempels om afwykings in mammogrambeelde te visualiseer en te identifiseer: 9 stappe
Die gebruik van verskillende grysskaalintensiteitsdrempels om afwykings in mammogrambeelde te visualiseer en te identifiseer: 9 stappe
Anonim
Gebruik verskillende grysskaalintensiteitsdrempels om abnormaliteite in mammogrambeelde te visualiseer en te identifiseer
Gebruik verskillende grysskaalintensiteitsdrempels om abnormaliteite in mammogrambeelde te visualiseer en te identifiseer

Die doel van hierdie projek was om 'n parameter te identifiseer en te gebruik om mammogrambeelde van grysskaal van verskillende agtergrondweefselklassifikasies te verwerk: Fatty, Fatty Glandular en Dense Tissue. Hierdie klassifikasie word gebruik wanneer radioloë mammogramme ontleed en moet oorweeg of weefseldigtheid enige afwykings soos letsels of gewasse sal verduister. Dit is omdat beide normale fisiologiese strukture soos klierweefsel en veselagtige bindweefsel. en abnormale morfologieë soos verkalkings en gewasse sal baie helder op die mammogram verskyn, terwyl minder dig vetweefsel swart sal lyk. Daarom was dit gepas om 'n klassifiseerder te programmeer wat die pixelintensiteitsvlakke kan manipuleer om massas die beste te visualiseer en te identifiseer.

Stap 1: Organiseer mammogramdata

Organiseer mammogramdata
Organiseer mammogramdata

Een van die eerste dinge wat ek besef het dat ek moes hanteer, was om die data op 'n baie duidelike, bondige en toeganklike manier te organiseer. Dit is die veranderlikes wat ek uit die mini-MIAS-databasis van mammogramme onttrek het. Ek het twee skikkings gemaak. Een wat 4 kolomme bevat:

  1. Beeldnommer:
  2. x massa koördinaat
  3. y massa koördinaat
  4. Masseradius: (Dit het 'n benaderde grootte vir die massa gedefinieer

Die tweede skikking bevat klassifikasie -inligting:

  1. Tipe agtergrondweefsel: vetterig (F), vetterig klier (G), dig (D)
  2. Massabeskrywing: Goed gedefinieerd (CIRC), spiculated (SPIC), ongedefinieerde ander (MISC) Argitektoniese vervorming (ARCH), asimmetrie (ASYM), normaal (NORM)
  3. Diagnose: goedaardig (B), kwaadaardig (M)

Aangesien die doel van hierdie projek was om die beste drempel vir elke tipe agtergrondweefsel te bepaal, was nie al die inligting nodig nie. U kan u projek egter uitbrei met tekstuuranalise en u klassifiseerder toets aan die bekende massabeskrywings.

Kantopmerking: die databasis waaruit ek die gediagnoseerde mammogrambeelde gekry het, het die inligting oor elke mammogram in 'n tekslêer apart van die beelde georganiseer. Dit was vir my effens moeilik om die data uit 'n tekslêer te onttrek en in skikkingvorms te organiseer, maar die volgende skakel was baie nuttig om dit alles uit te vind. U kan ook die kode wat ek hierbo geplak het, aanpas vir u doeleindes.

Mammogram lêerformaat: mdb001 G CIRC B 535 425 197

mdb002 G CIRC B 522 280 69

TextScan -hulp: https://www.mathworks.com/help/matlab/ref/textsca… Mammogramdatabasis:

Stap 2: Beeldverwerking

Beeldverwerking
Beeldverwerking

Die tweede ding wat opgekom het toe ek agtergekom het hoe om massas te identifiseer, was dat ek vir baie abnormale mammogramme nie visueel kon sien waar die abnormaliteit was of hoe groot dit was nie. Aangesien ek nie 'n ervare radioloog is nie, is dit duidelik verwag. Die eenvoudigste manier om afwykings te vind (volgens my lang Google -soektogte) was om na die konsentrasies van helder en donker gebiede te kyk. Ek het hoofsaaklik die adapthisteq -funksie gebruik om die beeldkontras te verbeter en dan te imbinariseer om die beeld na 'n binêre beeld om te skakel om met verskillende drempelvlakke te eksperimenteer.

  1. adapthisteq: Hierdie funksie transformeer intensiteitswaardes van grysskaal- en rgb -beelde met behulp van kontrasbeperkte adaptiewe histogramvergelyking. Met ander woorde, dit pas die histogram van intensiteitswaardes aan op 'n gespesifiseerde verspreidingstipe. Die wiskunde -skakel vir hierdie funksie is hieronder aangeheg vir verdere lees.
  2. imbinarize: skep 'n binêre beeld uit 'n grysskaalbeeld deur alle pixels bo 'n sekere intenistie aan 1s toe te ken en die pixels onder die waarde 'n 0. Ek gebruik hierdie funksie om die optimale drempel te toets om agtergrondweefselgeraas te verminder.

Stap 3: Drempelkode

Drempelkode
Drempelkode

'N A -lus word gebruik om die mammogram met verskillende drempels te binariseer. Om 'n groter prentjie te gee, bevat die for -lus die kode van stap 3 tot stap 7. Elke binêre beeld sal dus geanaliseer word vir afwykings. Boonop is hierdie vir lus ingeslote in 'n ander vir lus wat in elke iterasie 'n nuwe mammogrambeeld uit die databasis invoer.

Stap 4: vind afwykings vir elke binêre beeld

Vind afwykings vir elke binêre beeld
Vind afwykings vir elke binêre beeld
Vind afwykings vir elke binêre beeld
Vind afwykings vir elke binêre beeld

Ek het die binêre beelde verder verwerk met die strel -funksie saam met imopen om agtergrondgeraas te verwyder. Die binêre beeld van die vorige stap word omgekeer en gefiltreer met behulp van die omgewing wat deur SE gedefinieer word. Toe gebruik ek bwlabel om enige gebiede met ten minste 8 verbind pixels te benoem.

Die streekstutte -funksie is gebruik om die sentroïede en oppervlakteienskappe van elke plek wat deur bwlabel geïdentifiseer is, te vind.

Toe is alle kolle groter as 500 pixels geïdentifiseer met behulp van islid. Die sentroïede vir die geïdentifiseerde kolle is op 'n prentjie geteken wat slegs die kolle groter as 500 vertoon het. Area geïdentifiseer = islid (Gemerk, aanduidings (sortedAreas> 500)); Spots = geïdentifiseer> 0;

Stap 5: Plot die gediagnoseerde massaplek en -grootte vir visuele vergelyking

Skets die gediagnoseerde massaplek en -grootte vir visuele vergelyking
Skets die gediagnoseerde massaplek en -grootte vir visuele vergelyking
Skets die gediagnoseerde massaplek en -grootte vir visuele vergelyking
Skets die gediagnoseerde massaplek en -grootte vir visuele vergelyking
Skets die gediagnoseerde massaplek en -grootte vir visuele vergelyking
Skets die gediagnoseerde massaplek en -grootte vir visuele vergelyking

Ek wou kyk of die vlekke wat deur bwlabel gevind is, korrek is. Ek het dit op twee maniere gedoen. Ek het eers die akkuraatheid van my klassifiseerder ontleed deur 'n visuele vergelyking te doen. Ek het eenvoudig die werklike grootte en ligging van die abnormaliteit (rooi sirkel) en die ligging bepaal deur die kode (blou x) op die voorafverwerkte mammogrambeeld geteken. Die ses afbeeldings hierbo toon die gevolge van die verhoging van die grysskaaldrempelwaarde.

Stap 6: Implementering van die tweede vergelykingsmetode

Implementering van die tweede vergelykingsmetode
Implementering van die tweede vergelykingsmetode

Die tweede manier waarop ek die klassifiseerder en die drempelwaardes getoets het, was deur te bepaal of die liggings wat deur die klassifiseerder gevind is, binne 'n sekere afstand van die gediagnoseerde abnormaliteitskoördinate was. Ek het die drempels gestoor waarvoor ten minste een van die geïdentifiseerde punte binne 1,5*r was van die bekende abnormaliteit na 'n aparte tekslêer genaamd Mammogram Data. Die doel hiervan was om die minimum drempel te vind wat my klassifiseerder nodig het om die abnormaliteit te identifiseer.

Stap 7: Ontleed versamelde data

Ontleed versamelde data
Ontleed versamelde data
Ontleed versamelde data
Ontleed versamelde data

Ek het die program op al die abnormale mammogrambeelde uitgevoer, en ek het 'n groot tekslêer met data agtergelaat. Om die beste drempel vir elke tipe weefsel te vind, het ek die data volgens weefseltipe georganiseer en 'n histogram van die drempelwaardes vir elke weefseltipe opgestel. Die regte drempelwaarde is bepaal op watter drempel die akkuraatste resultate vir elke tipe weefsel verskaf het. Ek het hierdie data gestoor om na my klassifiseerder op te laai.

Stap 8: Maak u eie klassifiseerder

Maak u eie klassifiseerder!
Maak u eie klassifiseerder!
Maak u eie klassifiseerder!
Maak u eie klassifiseerder!
Maak u eie klassifiseerder!
Maak u eie klassifiseerder!
Maak u eie klassifiseerder!
Maak u eie klassifiseerder!

Nadat ek die geskikste drempelwaardes vir elke weefseltipe gevind het, het ek my oorspronklike kode gewysig sodat 'n gebruiker die beeldnommer en weefseltipe kon invoer om die drempelwaarde vir die mammogrambeeld te kies. Ek het toe die gediagnoseerde mammogram -ligging met die gevind plekke op die oorspronklike mammogrambeelde geteken. Ek wou dit nog meer pret maak, en ek het 'n funksie geprogrammeer om 'n sirkelvormige gebied rondom ROI te snoei. Die gebruiker kry die opdrag om 'n middelpunt te kies en verskeie punte wat die ROI die beste omvat. Ek het albei matlab -lêers hier aangeheg.

Stap 9: Verbeterings? Enige gedagtes?

Terwyl ek hierdie instruksies geskryf het, begin ek baie verbeterings sien wat ek aan die klassifiseerder kon aanbring, soos om maniere te vind om te onderskei tussen verskillende soorte massas wat geïdentifiseer is op grond van tekstuuranalise of die verbetering van my toets vir akkuraatheidsafdeling van die SandBoxProject. lêer. Aangesien dit 'n projek was met 'n sperdatum, moes ek iewers stop, maar ek hoop dat ek die beeldverwerkingsvaardighede wat ek in ander toepassings geleer het, kan gebruik. Ek het ook die lêer aangeheg wat gebruik is om al die abnormale mammogrambeelde te verwerk.