Inhoudsopgave:

Met behulp van variërende grijswaarden intensiteitsdrempels om afwijkingen in mammogramafbeeldingen te visualiseren en te identificeren - Ajarnpa
Met behulp van variërende grijswaarden intensiteitsdrempels om afwijkingen in mammogramafbeeldingen te visualiseren en te identificeren - Ajarnpa

Video: Met behulp van variërende grijswaarden intensiteitsdrempels om afwijkingen in mammogramafbeeldingen te visualiseren en te identificeren - Ajarnpa

Video: Met behulp van variërende grijswaarden intensiteitsdrempels om afwijkingen in mammogramafbeeldingen te visualiseren en te identificeren - Ajarnpa
Video: BlackRock: “Bitcoin ETF Will Send BTC to $1,000,000” 2024, November
Anonim
Variërende drempelwaarden voor grijswaarden gebruiken om afwijkingen in mammogramafbeeldingen te visualiseren en te identificeren
Variërende drempelwaarden voor grijswaarden gebruiken om afwijkingen in mammogramafbeeldingen te visualiseren en te identificeren

Het doel van dit project was om een parameter te identificeren en te gebruiken om grijswaardenmammogrambeelden van verschillende achtergrondweefselclassificaties te verwerken: vet, vetklierweefsel en dicht weefsel. Deze classificatie wordt gebruikt wanneer radiologen mammogrammen analyseren en moeten overwegen of weefseldichtheid afwijkingen zoals laesies of tumoren zal verdoezelen. Dit komt omdat zowel normale fysiologische structuren zoals klierweefsel als fibreus bindweefsel. en abnormale morfologieën zoals calcificaties en tumoren zullen zeer helder op het mammogram verschijnen, terwijl minder dicht vetweefsel zwart zal lijken. Daarom was het passend om een classifier te programmeren die pixelintensiteitsniveaus kan manipuleren om massa's het best te visualiseren en te identificeren.

Stap 1: Mammogramgegevens ordenen

Mammogramgegevens ordenen
Mammogramgegevens ordenen

Een van de eerste dingen die ik me realiseerde dat ik ermee moest omgaan, was het organiseren van de gegevens op een zeer duidelijke, beknopte en toegankelijke manier. Dit zijn de variabelen die ik heb geëxtraheerd uit de mini-MIAS-database met mammogrammen. Ik heb twee arrays gemaakt. Een met 4 kolommen:

  1. Afbeeldingsnummer:
  2. x-coördinaat van massa
  3. y-coördinaat van massa
  4. Massastraal: (Dit definieerde een geschatte grootte voor de massa)

De tweede array bevat classificatie-informatie:

  1. Type achtergrondweefsel: vet (F), vet klierweefsel (G), dicht (D)
  2. Beschrijving van massa: goed gedefinieerd (CIRC), gespiculeerd (SPIC), slecht gedefinieerde andere (MISC) Architecturale vervorming (ARCH), asymmetrie (ASYM), normaal (NORM)
  3. Diagnoses: goedaardig (B), kwaadaardig (M)

Aangezien het doel van dit project was om voor elk type achtergrondweefsel de beste drempel te bepalen, was niet alle informatie nodig. U kunt uw project echter uitbreiden met textuuranalyse en uw classificatie testen aan de hand van de bekende massabeschrijvingen.

Kanttekening: de database waaruit ik de gediagnosticeerde mammogramafbeeldingen kreeg, organiseerde de informatie over elk mammogram in een tekstbestand dat gescheiden was van de afbeeldingen. Het was een beetje moeilijk voor mij om de gegevens uit een tekstbestand te extraheren en in array-formulieren te ordenen, maar de volgende link was erg handig om dat allemaal uit te zoeken. U kunt ook de code aanpassen die ik hierboven heb geplakt voor uw doeleinden.

Mammogram Bestandsformaat:mdb001 G CIRC B 535 425 197

mdb002 G CIRC B 522 280 69

TextScan Help: https://www.mathworks.com/help/matlab/ref/textsca…Mammogram Database:

Stap 2: Beeldverwerking

Afbeelding verwerken
Afbeelding verwerken

Welnu, het tweede dat opkwam toen ik aan het uitzoeken was hoe ik massa's kon identificeren, was dat ik voor veel abnormale mammogrammen niet visueel kon zien waar de afwijking was of hoe groot deze was. Aangezien ik geen ervaren radioloog ben, was dit natuurlijk te verwachten. De eenvoudigste manier om afwijkingen te vinden (volgens mijn lange Google-zoekopdrachten) was echter te kijken naar concentraties van lichte en donkere gebieden. Ik heb voornamelijk de adapthisteq-functie gebruikt om het beeldcontrast te verbeteren en vervolgens te imbinariseren om het beeld om te zetten in een binair beeld om met verschillende drempelniveaus te experimenteren.

  1. adapthisteq: deze functie transformeert intensiteitswaarden van grijswaarden- en rgb-afbeeldingen met behulp van contrastbeperkte adaptieve histogramvereffening. Met andere woorden, het past het histogram van intensiteitswaarden aan een gespecificeerd type distributie aan. De mathworks-link voor deze functie is hieronder bijgevoegd voor verder lezen.
  2. imbinarize: maakt een binaire afbeelding van een grijsschaalafbeelding door alle pixels boven een bepaalde intensiteit toe te wijzen aan 1s en de pixels onder die waarde een 0. Ik heb deze functie gebruikt om de optimale drempel te testen om achtergrondweefselruis te verminderen.

Stap 3: Drempelcode

Drempelcode
Drempelcode

Een for-lus wordt gebruikt om het mammogram binair te maken met verschillende drempels. Om een groter beeld te geven, bevat de for-lus de code van stap 3 tot stap 7. Dus elke binaire afbeelding wordt geanalyseerd op afwijkingen. Bovendien is deze for-lus ingekapseld in een andere for-lus die in elke iteratie een nieuw mammogrambeeld uit de database importeert.

Stap 4: Afwijkingen zoeken voor elke binaire afbeelding

Afwijkingen vinden voor elke binaire afbeelding
Afwijkingen vinden voor elke binaire afbeelding
Afwijkingen vinden voor elke binaire afbeelding
Afwijkingen vinden voor elke binaire afbeelding

Ik heb de binaire afbeeldingen verder verwerkt met behulp van de strel-functie in combinatie met imopen om achtergrondruis te verwijderen. Het binaire beeld van de vorige stap wordt omgekeerd en gefilterd met behulp van de buurt gedefinieerd door SE. Daarna gebruikte ik bwlabel om alle gebieden te labelen die ten minste 8 verbonden pixels hadden.

De regio-rekwisietenfunctie werd gebruikt om de zwaartepunt- en gebiedseigenschappen van elke door bwlabel geïdentificeerde plek te vinden.

Vervolgens werden alle spots groter dan 500 pixels geïdentificeerd met ismember. De zwaartepunten voor de geïdentificeerde vlekken zijn uitgezet op een afbeelding die alleen de vlekken weergeeft die groter zijn in een gebied dan 500. Geïdentificeerd gebied = ismember(Labeled, indicies(sortedAreas>500)); Vlekken = Geïdentificeerd>0;

Stap 5: De gediagnosticeerde massalocatie en -grootte uitzetten voor visuele vergelijking

De gediagnosticeerde massalocatie en -grootte plotten voor visuele vergelijking
De gediagnosticeerde massalocatie en -grootte plotten voor visuele vergelijking
De gediagnosticeerde massalocatie en -grootte plotten voor visuele vergelijking
De gediagnosticeerde massalocatie en -grootte plotten voor visuele vergelijking
De gediagnosticeerde massalocatie en -grootte plotten voor visuele vergelijking
De gediagnosticeerde massalocatie en -grootte plotten voor visuele vergelijking

Ik wilde kijken of de door bwlabel gevonden plekken klopten. Ik deed dit op twee manieren. Ik heb eerst de nauwkeurigheid van mijn classifier geanalyseerd door een visuele vergelijking te maken. Ik heb eenvoudig de werkelijke grootte en locatie van de afwijking (rode cirkel) en de locatie bepaald door de code (blauwe x) op het voorbewerkte mammogrambeeld uitgezet. De zes afbeeldingen hierboven tonen de effecten van het verhogen van de grijswaardendrempelwaarde.

Stap 6: De tweede vergelijkingsmethode implementeren

De tweede vergelijkingsmethode implementeren
De tweede vergelijkingsmethode implementeren

De tweede manier waarop ik de classifier en de drempelwaarden heb getest, was door te bepalen of de door de classifier gevonden locaties zich binnen een bepaalde afstand van de gediagnosticeerde afwijkingscoördinaten bevonden. Ik heb de drempels waarvoor ten minste één van de geïdentificeerde punten binnen 1,5*r van de bekende afwijking lag, opgeslagen in een apart tekstbestand met de naam Mammogramgegevens. Het doel hiervan was om de minimumdrempel te vinden die nodig was voor mijn classifier om de afwijking te identificeren.

Stap 7: Verzamelde gegevens analyseren

Verzamelde gegevens analyseren
Verzamelde gegevens analyseren
Verzamelde gegevens analyseren
Verzamelde gegevens analyseren

Ik liet het programma draaien op alle abnormale mammogrambeelden en ik bleef achter met een enorm tekstbestand met gegevens. Om de beste drempel voor elk type weefsel te vinden, heb ik de gegevens per weefseltype geordend en een histogram van de drempelwaarden voor elk weefseltype uitgezet. De juiste drempelwaarde werd bepaald op basis van welke drempel de meest nauwkeurige resultaten opleverde voor elk weefseltype. Ik heb deze gegevens opgeslagen om te uploaden naar mijn classifier.

Stap 8: Maak je eigen classifier

Maak je eigen classifier!
Maak je eigen classifier!
Maak je eigen classifier!
Maak je eigen classifier!
Maak je eigen classifier!
Maak je eigen classifier!
Maak je eigen classifier!
Maak je eigen classifier!

Nadat ik de meest geschikte drempelwaarden voor elk weefseltype had gevonden, bewerkte ik mijn oorspronkelijke code om een gebruiker het afbeeldingsnummer en weefseltype te laten invoeren om de drempel voor het mammogrambeeld te kiezen. Vervolgens heb ik de gediagnosticeerde mammogramlocatie uitgezet met de gevonden locaties op de originele mammogrambeelden. Ik wilde dit leuker maken, dus programmeerde ik een functie om een cirkelvormig gebied rond ROI bij te snijden. De gebruiker zou worden geïnstrueerd om een middelpunt te kiezen en verschillende punten die de ROI het beste omvatten. Ik heb beide matlab-bestanden hier bijgevoegd.

Stap 9: Verbeteringen? Nog ideeën?

Terwijl ik deze instructable aan het schrijven was, begon ik veel verbeteringen te zien die ik in de classifier kon aanbrengen, zoals het vinden van manieren om onderscheid te maken tussen verschillende soorten massa's die zijn geïdentificeerd op basis van textuuranalyse of het verbeteren van mijn tests voor nauwkeurigheid van het SandBoxProject. het dossier. Aangezien dit een project met een deadline was, moest ik ergens stoppen, maar ik hoop dat ik de beeldverwerkingsvaardigheden die ik heb geleerd in andere toepassingen kan gebruiken. Ik heb ook het bestand bijgevoegd dat werd gebruikt om alle abnormale mammogramafbeeldingen batchgewijs te verwerken.

Aanbevolen: