Sisällysluettelo:

Vaihtelevien harmaasävyjen intensiteettikynnysten käyttäminen Mammogram -kuvien poikkeavuuksien visualisointiin ja tunnistamiseen: 9 vaihetta
Vaihtelevien harmaasävyjen intensiteettikynnysten käyttäminen Mammogram -kuvien poikkeavuuksien visualisointiin ja tunnistamiseen: 9 vaihetta

Video: Vaihtelevien harmaasävyjen intensiteettikynnysten käyttäminen Mammogram -kuvien poikkeavuuksien visualisointiin ja tunnistamiseen: 9 vaihetta

Video: Vaihtelevien harmaasävyjen intensiteettikynnysten käyttäminen Mammogram -kuvien poikkeavuuksien visualisointiin ja tunnistamiseen: 9 vaihetta
Video: Vaihtelevien olosuhteiden teräsrunkohaaste osa 1 2024, Marraskuu
Anonim
Vaihtelevien harmaasävyjen intensiteettikynnysten käyttäminen Mammogram -kuvien poikkeavuuksien visualisointiin ja tunnistamiseen
Vaihtelevien harmaasävyjen intensiteettikynnysten käyttäminen Mammogram -kuvien poikkeavuuksien visualisointiin ja tunnistamiseen

Tämän projektin tarkoituksena oli tunnistaa ja käyttää parametria harmaasävyisten mammografiakuvien käsittelyyn erilaisista taustakudosluokituksista: rasvainen, rasvainen rauhas ja tiheä kudos. Tätä luokitusta käytetään, kun radiologit analysoivat mammografioita ja heidän on harkittava, peittääkö kudosten tiheys mahdolliset poikkeavuudet, kuten vauriot tai kasvaimet. Tämä johtuu siitä, että sekä normaalit fysiologiset rakenteet, kuten rauhaskudos että kuituinen sidekudos. ja epänormaalit morfologiat, kuten kalkkeutumat ja kasvaimet, näyttävät mammografialla erittäin kirkkailta, kun taas vähemmän tiheä rasvakudos näyttää mustalta. Siksi oli asianmukaista ohjelmoida luokittelija, joka pystyy manipuloimaan pikselien intensiteettitasoja parhaiten visualisoimaan ja tunnistamaan massat.

Vaihe 1: Mammogrammitietojen järjestäminen

Mammogrammitietojen järjestäminen
Mammogrammitietojen järjestäminen

Yksi ensimmäisistä asioista, jotka tajusin tarvitsevani, oli tietojen järjestäminen hyvin selkeällä, ytimekkäällä ja helposti saavutettavalla tavalla. Nämä ovat muuttujia, jotka otin mammografioiden mini-MIAS-tietokannasta. Tein kaksi matriisia. Yksi sisältää 4 saraketta:

  1. Kuvan numero:
  2. x massan koordinaatti
  3. y massakoordinaatti
  4. Massasäde: (Tämä määritteli massan likimääräisen koon

Toinen ryhmä sisälsi luokitustietoja:

  1. Taustakudoksen tyyppi: rasvainen (F), rasvainen rauhas (G), tiheä (D)
  2. Massan kuvaus: Hyvin määritelty (CIRC), spiculated (SPIC), huonosti määritelty muu (MISC) Arkkitehtoninen vääristymä (ARCH), epäsymmetria (ASYM), normaali (NORM)
  3. Diagnoosit: Hyvänlaatuinen (B), Pahanlaatuinen (M)

Koska tämän hankkeen tavoitteena oli määrittää paras kynnys kullekin taustakudostyypille, kaikki tiedot eivät olleet tarpeen. Voit kuitenkin laajentaa projektiasi sisältämään tekstuurianalyysin ja testata luokittelijaasi tunnettujen massakuvausten perusteella.

Sivuhuomautus: Tietokanta, josta sain diagnosoidut mammografiakuvat, järjesti kunkin mammografian tiedot tekstitiedostoon erillään kuvista. Minun oli lievästi vaikeaa poimia tiedot tekstitiedostosta ja järjestää taulukkomuodoiksi, mutta seuraava linkki oli erittäin hyödyllinen kaiken selvittämisessä. Vaihtoehtoisesti voit vain säätää yllä liittämääni koodia tarkoituksiasi varten.

Mammografiatiedostomuoto: mdb001 G CIRC B 535425197

mdb002 G CIRC B 522280 69

TextScan -ohje: https://www.mathworks.com/help/matlab/ref/textsca… Mammografiatietokanta:

Vaihe 2: Kuvankäsittely

Kuvankäsittely
Kuvankäsittely

Toinen asia, joka tuli esille, kun keksin kuinka tunnistaa massat, oli se, että monien epänormaalien mammografioiden osalta en voinut visuaalisesti kertoa, missä poikkeavuus oli tai kuinka suuri se oli. Ilmeisesti, koska en ole kokenut radiologi, sitä odotettiin. Kuitenkin helpoin tapa löytää poikkeavuuksia (pitkien Google -hakujeni mukaan) oli tarkastella kirkkaiden ja tummien alueiden pitoisuuksia. Käytin ensisijaisesti adapthisteq -toimintoa parantaakseni kuvan kontrastia ja sekoittamalla sitten kuvan binaariseksi kuvaksi kokeilemaan eri kynnystasoja.

  1. adapthisteq: Tämä toiminto muuttaa harmaasävy- ja rgb -kuvien intensiteettiarvoja kontrastin rajoitetun mukautuvan histogrammin tasauksen avulla. Toisin sanoen se säätää intensiteettiarvojen histogrammin tietyn jakautumistyypin mukaan. Tämän toiminnon matematiikkalinkki on alla alla lisätietoa varten.
  2. imbinarize: luo binäärikuvan harmaasävyisestä kuvasta määrittämällä kaikki tietyn intenistisen alueen yläpuolella olevat pikselit arvoon 1s ja sen alapuolella olevat pikselit.

Vaihe 3: Kynnyskoodi

Kynnyskoodi
Kynnyskoodi

A for loop käytetään binarisoimaan mammografia vaihtelevilla kynnyksillä. Suuremman kuvanäkymän saamiseksi for -silmukka sisältää koodin vaiheista 3 vaiheeseen 7. Joten jokainen binäärikuva analysoidaan poikkeavuuksien varalta. Lisäksi tämä silmukalle on koteloitu toiseen silmukkaan, joka tuo uuden mammografiakuvan tietokannasta jokaisessa iteraatiossa.

Vaihe 4: Poikkeavuuksien löytäminen jokaiselle binaarikuvalle

Poikkeavuuksien löytäminen jokaiselle binaarikuvalle
Poikkeavuuksien löytäminen jokaiselle binaarikuvalle
Poikkeavuuksien löytäminen jokaiselle binaarikuvalle
Poikkeavuuksien löytäminen jokaiselle binaarikuvalle

Käsittelin edelleen binäärikuvia käyttämällä strel -toimintoa yhdessä imopen -tekniikan kanssa taustamelun poistamiseksi. Edellisen vaiheen binäärikuva käännetään ja suodatetaan käyttämällä SE: n määrittämää naapurustoa. Sitten käytin bwlabelia merkitsemään kaikki alueet, joissa oli vähintään 8 yhdistettyä pikseliä.

Aluetukitoimintoa käytettiin jokaisen bwlabel -tunnistetun paikan keskipisteen ja alueen ominaisuuksien löytämiseen.

Sitten kaikki yli 500 pikselin suuret paikat tunnistettiin ismemberin avulla. Tunnistettujen pisteiden keskikohdat piirrettiin kuvaan, joka näytti vain pisteitä, joiden pinta -ala oli suurempi kuin 500. Area Identified = ismember (merkitty, merkinnät (lajiteltu alueet> 500)); Pisteet = tunnistettu> 0;

Vaihe 5: Diagnosoidun massan sijainnin ja koon piirtäminen visuaalista vertailua varten

Diagnosoidun massan sijainnin ja koon piirtäminen visuaalista vertailua varten
Diagnosoidun massan sijainnin ja koon piirtäminen visuaalista vertailua varten
Diagnosoidun massan sijainnin ja koon piirtäminen visuaalista vertailua varten
Diagnosoidun massan sijainnin ja koon piirtäminen visuaalista vertailua varten
Diagnosoidun massan sijainnin ja koon piirtäminen visuaalista vertailua varten
Diagnosoidun massan sijainnin ja koon piirtäminen visuaalista vertailua varten

Halusin nähdä, olivatko bwlabelin löytämät paikat oikeita. Tein tämän kahdella tavalla. Analysoin ensin luokittelijan tarkkuutta tekemällä visuaalisen vertailun. Piirroin yksinkertaisesti poikkeavuuden todellisen koon ja sijainnin (punainen ympyrä) sekä koodilla määritetyn sijainnin (sininen x) esikäsitellyssä mammografiassa. Yllä olevat kuusi kuvaa osoittavat harmaasävyisen kynnysarvon nostamisen vaikutukset.

Vaihe 6: Toisen vertailumenetelmän käyttöönotto

Toisen vertailumenetelmän toteuttaminen
Toisen vertailumenetelmän toteuttaminen

Toinen tapa testasin luokittelijaa ja kynnysarvoja määrittämällä, olivatko luokittelijan löytämät sijainnit tietyn etäisyyden sisällä diagnosoiduista poikkeavuuden koordinaateista. Tallensin kynnysarvot, joiden osalta ainakin yksi tunnistetuista pisteistä oli 1,5*r: n sisällä tunnetusta poikkeavuudesta, erilliseen tekstitiedostoon nimeltä Mammogram Data. Tämän tarkoituksena oli löytää vähimmäiskynnys, jota luokittelijani tarvitsee havaitakseen poikkeavuuden.

Vaihe 7: Kerättyjen tietojen analysointi

Kerättyjen tietojen analysointi
Kerättyjen tietojen analysointi
Kerättyjen tietojen analysointi
Kerättyjen tietojen analysointi

Suoritin ohjelman kaikille epänormaaleille mammografiakuville ja minulle jäi valtava tekstitiedosto. Jotta voisin löytää parhaan kynnyksen kullekin kudostyypille, järjestin tiedot kudostyypeittäin ja piirsin histogrammin kunkin kudostyypin kynnysarvoista. Oikea kynnysarvo päätettiin, mikä kynnys antoi tarkimmat tulokset kullekin kudostyypille. Tallensin nämä tiedot ladattavaksi luokittelijaani.

Vaihe 8: Tee oma luokittelija

Tee oma luokittelija!
Tee oma luokittelija!
Tee oma luokittelija!
Tee oma luokittelija!
Tee oma luokittelija!
Tee oma luokittelija!
Tee oma luokittelija!
Tee oma luokittelija!

Kun olen löytänyt sopivimmat kynnysarvot kullekin kudostyypille, muokkasin alkuperäistä koodiani saadakseni käyttäjän syöttämään kuvan numeron ja kudostyypin valitakseen kynnyksen mammografikuvalle. Sitten piirsin diagnosoidun mammografian sijainnin ja löydetyt paikat alkuperäisissä mammografiakuvissa. Halusin tehdä tästä hauskempaa, joten ohjelmoin toiminnon rajaamaan ROI: ta ympäröivän pyöreän alueen. Käyttäjää kehotetaan valitsemaan keskipiste ja useita pisteitä, jotka kattavat parhaiten ROI: n. Liitin tänne molemmat matlab -tiedostot.

Vaihe 9: Parannuksia? Ajatuksia?

Kirjoittaessani tätä opettavaista aloitan näkemään monia parannuksia, joita voisin tehdä luokittelijaan, kuten löytää keinoja erottaa erilaiset massatyypit, jotka on tunnistettu tekstuurianalyysin perusteella, tai parantaa SandBoxProjectin tarkkuustestauksen osiota. tiedosto. Koska tämä oli projekti, jolla oli määräaika, jouduin pysähtymään jonnekin, mutta toivon, että voin käyttää oppimiani kuvankäsittelytaitoja muissa sovelluksissa. Liitin myös tiedoston, jota käytettiin eräprosessoimaan kaikki epänormaalit mammografiakuvat.

Suositeltava: