Turinys:
- 1 žingsnis: Mammogramos duomenų tvarkymas
- 2 žingsnis: vaizdo apdorojimas
- 3 žingsnis: slenksčio kodas
- 4 žingsnis: nustatykite kiekvieno dvejetainio vaizdo anomalijas
- 5 žingsnis: nubrėžkite diagnozuotos masės vietą ir dydį vizualiam palyginimui
- 6 žingsnis: Antrojo palyginimo metodo įgyvendinimas
- 7 veiksmas: surinktų duomenų analizė
- 8 žingsnis: sukurkite savo klasifikatorių
- 9 žingsnis: patobulinimai? Ar yra minčių?
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
Šio projekto tikslas buvo identifikuoti ir naudoti parametrą, skirtą apdoroti pilkos spalvos mamografinius vaizdus iš įvairių foninių audinių klasifikacijų: riebiųjų, riebalinių liaukų ir tankių audinių. Ši klasifikacija naudojama, kai radiologai analizuoja mamogramas ir turi apsvarstyti, ar audinių tankis neužgoš jokių anomalijų, tokių kaip pažeidimai ar navikai. Taip yra todėl, kad tiek normalios fiziologinės struktūros, tokios kaip liaukinis audinys, tiek pluoštinis jungiamasis audinys. ir nenormalios morfologijos, tokios kaip kalcifikacijos ir navikai, mamografijoje pasirodys labai ryškios, o mažiau tankus riebalinis audinys - juodas. Todėl buvo tikslinga užprogramuoti klasifikatorių, kuris gali manipuliuoti pikselių intensyvumo lygiais, kad geriausiai vizualizuotų ir atpažintų mases.
1 žingsnis: Mammogramos duomenų tvarkymas
Vienas iš pirmųjų dalykų, kuriuos supratau, kad turiu tvarkyti, buvo labai aiškus, glaustas ir prieinamas duomenų tvarkymas. Tai yra kintamieji, kuriuos ištraukiau iš mini-MIAS mamografijos duomenų bazės. Aš sukūriau du masyvus. Viename yra 4 stulpeliai:
- Vaizdo numeris:
- x masės koordinatė
- y masės koordinatė
- Masės spindulys: (tai nustatė apytikslį masės dydį
Antrame masyve buvo klasifikavimo informacija:
- Fono audinio tipas: riebus (F), riebalinis liaukas (G), tankus (D)
- Masės aprašymas: gerai apibrėžtas (CIRC), spiculated (SPIC), blogai apibrėžtas kitas (MISC) Architektūrinis iškraipymas (ARCH), asimetrija (ASYM), normalus (NORM)
- Diagnozė: gerybinis (B), piktybinis (M)
Kadangi šio projekto tikslas buvo nustatyti geriausią slenkstį kiekvienam foninio audinio tipui, visa informacija nebuvo būtina. Tačiau galite išplėsti savo projektą, įtraukdami tekstūros analizę ir patikrinkite klasifikatorių pagal žinomus masės aprašymus.
Šoninė pastaba: duomenų bazėje, iš kurios gavau diagnozuotus mamografinius vaizdus, informacija apie kiekvieną mamografiją buvo suskirstyta į tekstinį failą atskirai nuo vaizdų. Man buvo šiek tiek sunku išgauti duomenis iš teksto failo ir suskirstyti į masyvo formas, tačiau ši nuoroda labai padėjo išsiaiškinti visa tai. Arba tiesiog pakeiskite aukščiau įklijuotą kodą savo tikslams.
Mammogramos failo formatas: mdb001 G CIRC B 535 425 197
mdb002 G CIRC B 522 280 69
„TextScan“pagalba: https://www.mathworks.com/help/matlab/ref/textsca… Mamografijos duomenų bazė:
2 žingsnis: vaizdo apdorojimas
Na, antras dalykas, kuris iškilo, kai sugalvojau, kaip atpažinti mases, buvo tas, kad daugeliui nenormalių mamografijų aš negalėjau vizualiai pasakyti, kur anomalija yra ar kokia ji didelė. Akivaizdu, kad nesu patyręs radiologas, to buvo tikimasi. Tačiau paprasčiausias būdas rasti anomalijų (pagal mano ilgas „Google“paieškas) buvo pažvelgti į šviesių ir tamsių sričių koncentracijas. Aš pirmiausia naudojau „adapthisteq“funkciją, kad padidinčiau vaizdo kontrastą, o tada suminkštinau, kad paversčiau vaizdą į dvejetainį vaizdą, kad galėčiau eksperimentuoti su skirtingais slenksčio lygiais.
- adapthisteq: Ši funkcija paverčia pilkos spalvos ir rgb vaizdų intensyvumo vertes, naudojant ribotą kontrasto adaptyvią histogramos išlyginimą. Kitaip tariant, ji koreguoja intensyvumo verčių histogramą pagal nurodytą skirstinio tipą. Šios funkcijos matematinių darbų nuoroda pridedama žemiau, kad galėtumėte toliau skaityti.
- imbinarize: sukuria dvejetainį vaizdą iš pilkos skalės vaizdo, priskirdamas visus pikselius, viršijančius tam tikrą intenisty, 1s, o pikselius žemiau šios vertės a 0. Naudojau šią funkciją norėdamas patikrinti optimalią ribą, kad sumažėtų foninio audinio triukšmas.
3 žingsnis: slenksčio kodas
„A for loop“naudojama binarizuoti mamografiją su skirtingais slenksčiais. Kad vaizdas būtų didesnis, for cikle yra kodas nuo 3 iki 7 veiksmo. Taigi kiekvienas dvejetainis vaizdas bus analizuojamas, ar nėra nukrypimų. Be to, tai ciklui yra įtraukta į kitą kilpą, kuri kiekvienos iteracijos metu iš duomenų bazės importuoja naują mamografijos vaizdą.
4 žingsnis: nustatykite kiekvieno dvejetainio vaizdo anomalijas
Toliau apdorojau dvejetainius vaizdus, naudodamas „strel“funkciją kartu su „imopen“, kad pašalinčiau foninį triukšmą. Ankstesnio veiksmo dvejetainis vaizdas yra apverstas ir filtruojamas naudojant SE apibrėžtą kaimynystę. Tada naudoju „bwlabel“, kad pažymėčiau visas sritis, kuriose buvo bent 8 susieti taškai.
Regiono rekvizitų funkcija buvo naudojama norint rasti kiekvienos vietos, pažymėtos „bwlabel“, centroidą ir ploto savybes.
Tada visos dėmės, didesnės nei 500 pikselių, buvo identifikuotos naudojant ismember. Nustatytų dėmių centroidai buvo pavaizduoti paveikslėlyje, kuriame buvo matomos tik didesnės nei 500 plotų dėmės. Identified area = ismember (Etiketė, nuorodos (surūšiuotos> 500)); Dėmės = nustatyta> 0;
5 žingsnis: nubrėžkite diagnozuotos masės vietą ir dydį vizualiam palyginimui
Norėjau sužinoti, ar „bwlabel“rastos dėmės yra teisingos. Aš tai padariau dviem būdais. Pirmiausia aš išanalizavau savo klasifikatoriaus tikslumą, atlikdamas vaizdinį palyginimą. Aš tiesiog nubraižiau faktinį anomalijos dydį ir vietą (raudonas apskritimas) bei vietą, nustatytą kodu (mėlyna x) ant iš anksto apdoroto mamografinio vaizdo. Aukščiau esantys šeši vaizdai rodo pilkos spalvos slenksčio vertės padidinimo poveikį.
6 žingsnis: Antrojo palyginimo metodo įgyvendinimas
Antrasis būdas, kuriuo išbandžiau klasifikatorių ir slenkstines vertes, buvo nustatyti, ar klasifikatoriaus rastos vietos yra per tam tikrą atstumą nuo diagnozuotų anomalijų koordinačių. Ribas, kurioms bent vienas iš nustatytų taškų buvo 1,5*r atstumu nuo žinomo nukrypimo, išsaugojau atskirame teksto faile, pavadintame „Mammogram Data“. Tikslas buvo surasti minimalią ribą, reikalingą mano klasifikatoriui, kad būtų galima nustatyti anomalijas.
7 veiksmas: surinktų duomenų analizė
Aš paleidau programą, atlikdamas visus nenormalius mamografinius vaizdus, ir man liko didžiulis duomenų tekstinis failas. Norėdami rasti geriausią kiekvieno audinio tipo slenkstį, surūšiavau duomenis pagal audinio tipą ir nubraižiau kiekvieno audinio tipo slenkstinių verčių histogramą. Nustatyta tinkama slenkstinė vertė, pagal kurią slenkstis suteikė tiksliausius kiekvieno audinio tipo rezultatus. Išsaugojau šiuos duomenis, kad galėčiau įkelti į savo klasifikatorių.
8 žingsnis: sukurkite savo klasifikatorių
Suradęs tinkamiausias kiekvieno audinio tipo slenkstines vertes, redagavau savo pradinį kodą, kad vartotojas įvestų vaizdo numerį ir audinio tipą, kad pasirinktų mamografinio vaizdo slenkstį. Tada aš nubraižiau diagnozuotą mamografijos vietą su rastomis vietomis originaliuose mamografijos vaizduose. Norėjau padaryti tai smagiau, todėl užprogramavau funkciją apkarpyti apskritą regioną, supantį IG. Vartotojui bus nurodyta pasirinkti centrinį tašką ir kelis taškus, kurie geriausiai apima IG. Čia pridėjau abu „Matlab“failus.
9 žingsnis: patobulinimai? Ar yra minčių?
Rašydamas šį pamokomą dalyką, aš pradedu pastebėti daugybę klasifikatoriaus patobulinimų, pavyzdžiui, rasti būdų, kaip atskirti skirtingų tipų mases, nustatytas remiantis tekstūros analize, arba patobulinti „SandBoxProject“tikslumo testavimo skyrių. failą. Kadangi tai buvo projektas su terminu, turėjau kažkur sustoti, bet tikiuosi, kad galėsiu panaudoti įgytus vaizdų apdorojimo įgūdžius kitose programose. Be to, pridėjau failą, kuris buvo naudojamas apdorojant visus nenormalius mamografijos vaizdus.