Auswertung von Computertomograhiebildern der Lunge


Seminararbeit, 1999

84 Seiten


Leseprobe


Inhalt

Zusammenfassung

Abbildungsverzeichnis

Tabellenverzeichnis

Abkürzungen

1. Einführung

2. Aufgabenstellung
2.1. Vorgegebenes Datenmaterial

3. Analyse bisher verwendeter Verfahren
3.1. Auswertung der Dichteverteilung
3.2. Globaler Emphysemindex
3.3. Bestimmung des regionalen Emphysemindex
3.4. Bestimmung von Anzahl und Größe der Emphysemblasen

4. Spezifikation der Aufgabenstellung
4.1. Pflichtenheft
4.2. Teilprobleme

5. Methode und Vorgehen
5.1. Teilproblem 1 - Punktbewertung
5.2. Teilproblem 2 - Mögliche Kriterien
5.2.1. Höhe des EI
5.2.2. Erkennung der Kreisform
5.2.3. Erkennung von Inhomogenitäten durch Ermittlung des Gradienten
5.3. Teilproblem 3 - Unabhängigkeit von der Atmung
5.3.1. Ermittlung des Atemzustands aus dem Bild selbst
5.3.2. Ermittlung der Belüftung aus mehreren Lungenschnittbildern
5.3.3. Adaptive Grenzwerte
5.4. Teilproblem 4 - Zusammenfassung d. Punktwertungen zu Maßzahlen

6. Realisierung

7. Auswertung und Vergleich
7.1. Methode
7.2. Resultate

8. Kritik und Ausblick Literaturverzeichnis

Glossar

Anhang

A. Zeitplan

B. Projektkostenabschätzung

C. Vollständiger Datensatz - Beispiel

D. Programmierung
D.1. IDL
D.2. Modul-Dokumentation
D.3. Quellcode

E. Statistische Auswertung
E.1. Vergleich der Methoden mit Hilfe des U-Tests
E.1.1 Ergebnisse des U-Testes
E.2. Eignungsprüfung mit Hilfe der Vierfeldertafel
E.2.1. Ergebnisse der Spezifitäts/Sensitivitäts-Untersuchung

Zusammenfassung

In der Diagnostik von Lungenerkrankungen nimmt die quantitative Analyse von Computertomographiebildern (CT-Bilder) einen hohen Stellenwert ein. Insbesondere Belüftungsstörungen, z.B. Emphyseme - eine krankhafte Erweiterung der Alveolen (Lungenbläschen) mit Einschränkung der Lungenfunktion - können durch Auswertung der Dichteinformation erkannt und bewertet werden.

Am Institut für Elektromechanische Konstruktionen wird ein Verfahren zur akustischen Diagnostik von Lungenerkrankungen, die mit Belüftungsstörungen einhergehen, entwickelt. Hierzu ist ein Maßstab nötig, der den Vergleich mit der Computertomographie erlaubt. In dieser Arbeit wurden Verfahren erarbeitet, CT-Bilder definierten Formats auszuwerten und Maßzahlen zu berechnen, die eine quantitative Bewertung der Ergebnisse der akustischen Lungendiagnose ermöglichen. Gleichzeitig dienen die Maßzahlen als Instrument zur Diagnose von Emphysemen.

Abbildungsverzeichnis

Abbildung 1: Diagnosepyramide

Abbildung 2: Röntgenübersichtsbild

Abbildung 3: Dichteverteilung gesunde Lunge

Abbildung 4: Dichteverteilung bei Emphysem und Fibrose

Abbildung 5: Verschiebung der Dichteverteilung bei der Atmung

Abbildung 6: Ortsabhängigkeit der Dichte

Abbildung 7: Verschiebung d. EI bei Atmung

Abbildung 8: Regionaler EI

Abbildung 9: Bestimmung von Größe und Anzahl d. Emphysemblasen

Abbildung 10: Bestimmung des Gradienten

Abbildung 11: Verteilung nach Modell 1 und 2

Abbildung 12: Bewertung nach Algorithmus 1

Abbildung 13: Bewertung nach Algorithmus 2

Abbildung 14: Bestimmung der Atmung aus Schnitten

Abbildung 15: Verteilung der Punktwertungen

Abbildung 16: Programmablauf

Abbildung 17: Bearbeiteter Lungenflügel

Abbildung 18: Spirometrische Größen

Tabellenverzeichnis

Tabelle 1: Pflichtenheft

Tabelle 2: Zeitplan

Tabelle 3: Projektkostenabschätzung

Tabelle 4: Vollständiger Datensatz

Tabelle 5: Gruppierung

Tabelle 6: Testplan

Tabelle 7: Variablenübersicht

Tabelle 8: Ergebnisse des U-Testes

Tabelle 9: Vierfeldertafel

Tabelle 10: Grenzwerte

Tabelle 11: Sensitivität/Spezifität

Abkürzungen

Abbildung in dieser Leseprobe nicht enthalten

1. Einführung

Die Lungendiagnostik stützt sich auf die Elemente der sogenannten Diagnosepyramide (Abbildung 1).

Dabei bildet die Anamnese, die Befragung des Patienten, die Basis jeder Untersuchung. Danach folgen spirometrische Untersuchungen (_ Spirometrie) zur Bestimmung der Lungenfunktion. Erst wenn eine Indikation vorliegt, die eine weitergehende Untersuchung erfordert, werden radiologische Verfahren eingesetzt.

Zunächst wird eine Röntgenaufnahme des _ Thorax angefertigt, nur bei speziellen Fragestellungen wird die _ Computertomographie (im folgenden CT abgekürzt) eingesetzt. Mit der Computertomographie steht ein hochentwickeltes Verfahren zur Verfügung, das gegenüber der konventionellen Röntgenaufnahme einige Vorteile aufweist:

- die Darstellung erfolgt in Transversalschnitten, somit sind Blicke ,,in" die Lunge möglich
- die Darstellung erfolgt überlagerungsfrei
- die Dichteauflösung ist sehr hoch, so daß sich auch kleine Differenzen in der Ventilation erkennen lassen
- die Bilder liegen in digitaler Form vor und können weiterverarbeitet werden

Diesen Vorteilen steht allerdings eine im Vergleich mit der Röntgenaufnahme deutlich verringerte Ortsauflösung und eine deutlich höhere Strahlungsexposition gegenüber.

Insbesondere bei Kindern und während der Schwangerschaft dürfen radiologische Verfahren nur bei besonders wichtigen Fragestellungen (z.B. in Notfällen), wenn der erwartete Nutzen für die Diagnose die Risiken durch die Strahlenexposition rechtfertigt, eingesetzt werden. In Zukunft könnte dieses diagnostische Spektrum noch ergänzt werden durch die _ akustische Lungentomographie. Da die akustische Impedanz der Lunge abhängig von der Belüftung ist, können durch Messung der Übertragungsfunktion im Hörschallbereich Aussagen über den Zustand der Lunge getroffen werden. Wie bei der Computertomographie wird auch hier ein transversaler Schnitt untersucht, allerdings ist eine deutlich verringerte Ortsauflösung im Vergleich zum CT zu erwarten.

Anwendung soll das akustische Verfahren besonders bei der Diagnose von Erkrankungen finden, die mit Störungen der Lungenventilation einhergehen, insbesondere beim _ Asthma und _ Emphysem. Gerade bei den Patientengruppen, bei denen eine Strahlenexposition vermieden werden soll, könnte die akustische Lungendiagnose eine Alternative zu radiologischen Verfahren bieten.

Das neue Verfahren der akustischen Lungendiagnostik muß anhand eines _ ,,Goldstandards" quantifiziert werden, um die aufgezeichneten Übertragungsfunktionen zur Diagnose verwerten zu können.

Die quantitative Auswertung von CT-Bildern soll einen solchen Goldstandard liefern.

Ziel dieser Arbeit ist die Entwicklung einer Maßzahl zur Bestimmung des Luftgehaltes auf regionaler Ebene. Zum einen sollen die Ergebnisse der akustischen Lungendiagnose durch Vergleich mit der Maßzahl quantifiziert werden, zum anderen soll der Index als Instrument für die Diagnose von Belüftungsstörungen eingesetzt werden.

2. Aufgabenstellung

In dieser Studienarbeit soll ein Verfahren entwickelt werden, mit dessen Hilfe es möglich ist, die Homogenität der Lungenventilation anhand des CT-Bildes zu bestimmen und zu quantifizieren.

Ergebnis soll eine Maßzahl sein, welche die Belüftung beschreibt und Inhomogenitäten der Ventilation aufdeckt.

Die Methode soll dazu dienen, die Zusammenhänge zwischen Belüftung und Übertragungsfunktion von Hörschall zu bestimmen und zu bewerten.

Für die Evaluierung der akustischen Lungendiagnose werden gesunde Schweinelungen betrachtet. Trotzdem besteht die Möglichkeit von Überblähungen, z.B. durch Blockierung von kleinen Bronchien durch Blut oder Wasser und daraus folgenden Mehrbelüftungen in nicht verschlossenen Bereichen. Weitere Ursachen von Überblähungen sind die Zerstörung von Lungengewebe durch Faulung, durch die die Elastizität der Fasern nachläßt, so daß die Aufdehnung bei Belüftung erschwert wird, sowie das Ausspülen von oberflächenaktiven Substanzen, die im lebenden Organismus die Oberflächenspannung verringern, so daß diese zunimmt und die Belüftung erschwert wird. Solche regionalen Unterbelüftungen führen bei gleichem Füllungsvolumen zu Überblähungen anderer Bereiche. Um diese zu erkennen und ihren Einfluß auf die Übertragungsfunktion bestimmen zu können, werden gleichzeitige Untersuchungen mit Hilfe der Computertomographie und der akustischen Lungendiagnose durchgeführt.

Außerdem soll das Verfahren die bereits verwendeten numerischen Verfahren der CTBildauswertung zur Diagnoseunterstützung erweitern.

2.1. Vorgegebenes Datenmaterial

Die Homogenitätsuntersuchungen sollen anhand von CT-Bildern (_ ACR-NEMA-Format) durchgeführt werden:

- Hochauflösender Algorithmus, nicht kantenbetonend
- Schichtdicke 5mm
- Schichtabstand 15mm

Eine Funktion zur Umsetzung in Standardgraphikformate ist bereits implementiert.

Für die spätere Bewertung und den Vergleich mit anderen Verfahren werden Bildersätze verwendet, die zwölf Aufnahmen pro Patient an definierten Stellen enthalten (Abb. 2). Die Aufnahmen werden an der Verzweigung der _ Trachea ausgerichtet, der Tracheabifurcation. Ausgehend davon werden im Abstand von 15mm nach oben und unten die weiteren Schnittaufnahmen plaziert. Für die Abgrenzung der Lungenbereiche, auch zur Differenzierung der Flügel, existiert für jede Aufnahme eine Maske im Bitmap-Format, in dem die Lungenflügel und die Bronchienbereiche unterschiedlich markiert, der _ Thorax und die Umgebung ausgeblendet sind.

Zusätzlich zu den CT-Bildern und den Masken liegen die spirometrisch ermittelten Lungenfunktionsdaten der Patienten und eine Beurteilung der Aufnahmen durch einen Radiologen vor. Anhang C. enthält einen Datensatz, in dem alle oben genannten Informationen zusammengefaßt sind.

3. Analyse bisher verwendeter Verfahren

Um die in der Aufgabenstellung geforderte Erweiterung der bereits verwendeten Verfahren leisten zu können, mußten diese zuerst auf ihre Schwachstellen hin untersucht werden.

3.1. Auswertung der Dichteverteilung

Schon früh wurde versucht, aus den gemessenen Dichtewerten auf die Struktur und Funktion der Lunge zu schließen. Verwendung finden dabei vor allem die mittlere Dichte, die Spreizung der Kurve, sowie die Schiefe. Abbildung 3 zeigt eine typische Dichteverteilung einer gesunden Lunge.

Den Dichtebereich unter -910 HE [Lörcher94] ordnet man fast reiner Luft zu, der Bereich zwischen -910 HE und -810 HE wird von einer Mischung aus Luft und feinem Gewebe (Alveolen) gebildet, das Gewebe mit höheren Dichten zählt zum Lungengerüst.

Die mittlere Dichte kann als Indikator für emphysematische Veränderungen dienen; bei Zunahme überblähten Lungengewebes verschiebt sich die mittlere Dichte hin zu niedrigeren Dichtewerten. Eine signifikante Verschiebung in Richtung des Bereichs, der dem Gerüstgewebe zugeordnet ist, weist möglicherweise auf eine fibrotische Veränderung hin. Häufig wird auch die Spreizung der Kurve bei der halben maximalen Häufigkeit zur Beschreibung der Verteilung eingesetzt [Lörcher94]. Die Spreizung beim Emphysem liegt deutlich über der bei einer gesunden Lunge. Auch die Fibrose hat Auswirkungen auf die Spreizung.

Setzt man die Flächen, die von der Kurve und den oben genannten Grenzwerten begrenzt werden, ins Verhältnis, so erhält man ein Maß für die Schiefe der Verteilung. Dabei ist eine signifikante Verschiebung zu niedrigen Dichtewerten ein Hinweis auf ein eventuell vorhandenes Emphysem; umgekehrt kann eine starke Verschiebung in den Bereich des Lungengerüstes auf eine Fibrose hinweisen.

Die oben beschriebenen Kenngrößen können, besonders, wenn sie in Kombination eingesetzt werden, in vielen Fällen wertvolle Hinweise für die Erkennung von Emphysemen liefern. Die einzelnen Indikatoren weisen jedoch in bestimmten Fällen auch erhebliche Schwächen auf. Abbildung 4 zeigt (schematisch) den Verlauf der Dichteverteilung bei einer gesunden Lunge. Dazu aufgetragen ist die Verteilung bei einer Lunge, die sowohl überblähte als auch fibrotische Bereiche aufweist.

Die Kurve zeigt eine deutliche Überhöhung im niedrigen Bereich sowie im Bereich des Lungegerüstes. Die mittlere Dichte wurde für beide Verteilungen ermittelt und eingetragen: Trotz völlig unterschiedlicher Kurvenverläufe wurde die gleiche mittlere Dichte ermittelt (selbstverständlich könnte in diesem Fall die Betrachtung der Spreizung oder der Flächenanteile weitere Erkenntnisse bringen, dieses Beispiel soll nur einen Hinweis auf die möglichen Schwächen der mittleren Dichte als Indikator gegeben werden). Die Lunge ändert ihre Dichte bei der Atmung sehr stark. Abbildung 5 zeigt die Verschiebung der Verteilung. Dabei verschiebt sich die mittlere Dichte von -840 HE im Zustand der tiefen Inspiration bis zu -680 HE bei tiefer Ausatmung (Exspiration) [Lörcher94]. Diese Schwankungen verhindern den Vergleich der o.a. Indikatoren von Aufnahmen, die zu unterschiedlichen Zeitpunkten, also auch in unterschiedlichen Inspirationsstellungen getätigt wurden.

Um die Lungenquerschnitte dennoch reproduzierbar densitometrisch zu erfassen, sind Maßnahmen nötig, mit denen die Atemsituation zum Zeitpunkt der Aufnahme entweder festgelegt oder doch zumindest bestimmt werden kann. Möglichkeiten bestehen hier z.B. in der spirometergesteuerten Computertomographie, bei der die Aufnahme durch das Erreichen eines vorgegebenen Atemvolumens ausgelöst wird (durch Schließen eines Ventils wird die weitere Einatmung während der Aufnahme verhindert). Alle diese Methoden sind jedoch aufwendig und für Patienten mit schwerer Atemnot unzumutbar.

Werden mehrere Aufnahmen in unterschiedlichen Schnittebenen aufgenommen, so ergibt sich eine Verteilung gemäß Abbildung 6.

Die Verschiebung der Kurven wird durch unterschiedlich starke Ventilation in den Teilbereichen der Lunge hervorgerufen. Der Patient befindet sich bei der Aufnahme in Rückenlage, er wird deshalb die Zwerchfellatmung bevorzugen. Dabei kommt es in den zwerchfellnahen (den unteren) Bereichen zu einer stärkeren Expansion der Lunge, die aufgenommene Luftmenge ist höher (die Dichte der Region also geringer) als in den weiter vom Zwerchfell entfernten Regionen.

Die Untersuchung der mittleren Dichte ergäbe hier einen Wert, der abhängig von der untersuchten Aufnahme ist. Auch die Berechnung der Flächenanteile brächte in diesem Beispiel aufgrund der festen Grenzwerte für jeden Schnitt der gleichen Lunge unterschiedliche Resultate. Verwendet man schließlich die Resultierende der Verteilung, wird durch die unterschiedlich tiefe Ventilation die Spreizung wesentlich erhöht.

3.2. Globaler Emphysemindex

Der Emphysemindex (im folgenden EI abgekürzt) wird gebildet aus dem Verhältnis der Gesamtzahl der Pixel im Intervall -1000 HE bis zu einem Grenzwert, zur Zahl von Punkten, die dem Lungengewebe, das am Gasaustausch teilnimmt, zugeordnet werden:

Abbildung in dieser Leseprobe nicht enthalten

Ein Nachteil dieses Verfahrens ist die Abhängigkeit der Ergebnisse vom gewählten Grenzwert. Tatsächlich besteht Uneinigkeit über die Höhe des Grenzwertes zwischen verschiedenen Autoren (die Vorschläge reichen von -950 HE [Tüng96] bis zu -910 HE [Lörcher94]), es besteht kein begründbarer Zwang zur Verwendung eines bestimmten Wertes. Zusätzlich belastet werden die Aussagen des globalen EI durch die Abhängigkeit von der Atmung - verstärkte Einatmung führt bei festen Grenzwerten zu einem höheren EI und umgekehrt (s.a. Abb. 7).

Ein weiteres Problem besteht in der kompensatorischen Wirkung des globalen Emphysemindexes. Bei Patienten, bei denen sowohl ein Emphysem als auch vermehrtes Stützgewebe (_ Fibrose) beobachtet werden, können sich die Einwirkung überbelüfteter Bereiche (Emphysem) und der Einfluß unterbelüfteter, verhärteter Areale (Fibrose) auf den Emphysemindex kompensieren. Dadurch wird der Index zu niedrig berechnet, so daß weder der Nachweis von Emphysem noch von Fibrose erfolgen kann.

3.3. Bestimmung des regionalen Emphysemindex

Die Verfälschung des Emphysemindexes durch die oben beschriebene Kompensation wird bei der Auswertung regionaler Emphysemindizes vermieden. Zur Bestimmung des regionalen Emphysemindexes wird die Lunge anhand eines Gitternetzes in quadratische Segmente aufgeteilt. Für jeden dieser Teilbereiche wird der Emphysemindex analog zur oben beschriebenen Methode berechnet. Die Anzahl der Bereiche, die einen hohen Emphysemindex aufweisen, wird als Maß für die Ausdehnung des Emphysems herangezogen. Abbildung 8 links zeigt eine Lunge mit Emphysem. Auf der rechten Seite sind die ermittelten regionalen Emphysemindices dargestellt. Dabei ist das Segment um so dunkler dargestellt, je höher der Index ist.

Obwohl bei diesem Verfahren die kompensatorische Wirkung der globalen Betrachtung vermieden wird, bleibt das Problem der Atmungsabhängigkeit bei festen Grenzen bestehen.

3.4. Bestimmung von Anzahl und Größe der Emphysemblasen

Bei diesem Verfahren werden zunächst alle Bereiche der Lunge, die in einem Intervall zwischen -1000 HE und einem festgelegten Grenzwert ([Blech97a] gibt auch hier -930 HE an) liegen, markiert.

Bei einer gesunden Lunge bilden sie sehr viele kleine und wenige größere, abgrenzbare Bläschen. Die kleinen Bläschen können den Alveolen, die größeren den Bronchien zugeordnet werden.

Bereiche, die im CT-Bild als größere Ansammlung von Bläschen erscheinen, weisen auf Alveolen hin, die sackartige Emphysemblasen gebildet haben. Dazu Abbildung 9: Auf der linken Seite ist ein Ausschnitt eines Lungenflügels mit Emphysemblasen dargestellt, auf der rechten Seite alle Bereiche im Intervall [-1000 HE, -930 HE].

Die markierten Bereiche werden in Größenklassen eingeteilt, die Häufigkeitsverteilung wird genutzt, um das Emphysem zu charakterisieren.

4. Spezifikation der Aufgabenstellung

Faßt man die oben geübte Kritik zusammen, so werden folgende Kernpunkte deutlich:

1. Mögliche Verschleierung regionaler Veränderungen (Inhomogenitäten) durch eine globale Maßzahl.
2. Kompensation bestimmter Inhomogenitäten (Überblähungen und Kollabien von Lungengewebe) bei globaler Betrachtung.
3. Abhängigkeit der bisherigen Maßzahlen von einem nicht exakt festzulegenden Grenzwert.
4. Charakterisierung des Emphysems erfolgt nur anhand der Dichte(-verteilung), weitere morphologische Eigenschaften, wie z.B. die Insellage, d.h. die Differenzen zur Umgebung, bleiben unberücksichtigt
5. Atmungsabhängigkeit der Maßzahlen

Zusammen mit der Aufgabenstellung läßt sich folgendes Pflichtenheft formulieren:

4.1. Pflichtenheft

Ziel ist die Entwicklung eines Verfahrens zum Nachweis von Inhomogenitäten der Ventilation durch Bestimmung einer Maßzahl. Der Nachweis soll an CT-Bildern definierten Formats erfolgen (s. Abschnitt 2.1.).

Abbildung in dieser Leseprobe nicht enthalten

Tabelle 1 Hinweis :

F= Forderung

W= Wunsch

4.2. Teilprobleme

Das Pflichtenheft offenbart vier wesentliche Problemgruppen:

1. Mathematische Charakterisierung überbelüfteter Regionen
2. Einbeziehung typischer Merkmale in die Erkennung von Emphysemen
3. Sicherstellung der Unabhängigkeit vom Atmungsniveau
4. Zusammenfassung der regionalen Bewertungen zu einer globalen Maßzahl

Die Teilprobleme und mögliche Lösungen werden im folgenden Abschnitt ausführlich behandelt.

5. Methode und Vorgehen

5.1. Teilproblem 1 - Punktbewertung

Die Forderungen des Pflichtenhefts nach Bewertung auf regionaler Ebene unter Vereinigung möglichst vieler Kriterien in einer Maßzahl wird erfüllt durch eine Punktbewertung. Damit wird es möglich, unterschiedliche physikalische Größen zusammenzufassen. Dabei wird das entsprechende Merkmal xi der Region j untersucht und der Region eine Punktzahl gemäß der folgenden Funktion zugeordnet :

Abbildung in dieser Leseprobe nicht enthalten

Die Merkmale und Bedingungen sollen so gewählt und formuliert sein, daß die Punktzahlen mit der Wahrscheinlichkeit für das Vorliegen eines Emphysems steigen. Die Diskussion in der Literatur (vgl. Abschn. 3.2.) zeigt die Schwierigkeiten bei der Bestimmung der Grenzwerte. Deshalb finden in der Bewertungsfunktion nur zwei Grenzwerte Verwendung (grenzwert1/2), der Wertebereich ist auf f(xi)_{0,1,2} beschränkt. Die Punktbewertungen der untersuchten Merkmale jeder Region werden addiert. Wird die Bedeutung einzelner Merkmale unterschiedlich bewertet, kann vorher eine Wichtung stattfinden.

5.2. Teilproblem 2 - Mögliche Kriterien

Bisher wurde zur Charakterisierung des Emphysems nur die entsprechend herabgesetzte Dichte und die damit verbundenen Auswirkungen auf die Verteilung herangezogen. Auch die Betrachtung des regionalen EI brachte keine Erweiterung.

Folgende Merkmale charakterisieren überblähte Bereiche:

- Die Dichte ist deutlich herabgesetzt und liegt im Bereich von Luft (gleichbedeutend mit höherem regionalen EI)
- Der Übergang von gesundem zu überblähtem Gewebe ist diskontinuierlich
- Die Größe der überblähten Bereiche als Maß für die Destruktion
- Die Emphysemblasen bilden häufig kreisrunde oder wabenförmige Formen aus

5.2.1. Größe des EI

Die Größe des regionalen EI verhält sich reziprok zur Dichte im untersuchten Bereich. Abschnitt 3. zeigt, daß die stark herabgesetzte Dichte ein wichtiges Merkmal überblähter Bereiche ist, deshalb wird diese Eigenschaft auch in dieser Untersuchung verwendet. Allerdings muß versucht werden, die Bewertung frei von Einflüssen durch die Atmung oder Lage des Schnittes zu halten. Die Größe der regionalen Emphysemindices wird gem. der Funktion aus Abschn. 5.1. mit Punkzahlen im Intervall [0,2] bewertet.

Es werden einzelne Regionen definierter Größe bewertet, deshalb kann die Größe der überblähten Fläche direkt aus der Anzahl der untersuchten Regionen ermittelt werden, eine gesonderte Bestimmung scheint nicht notwendig und wird in dieser Arbeit nicht durchgeführt.

5.2.2. Erkennung der Kreisform

Häufig sind überblähte Bereiche kreisförmig (nur im CT-Schnitt, in der Realität kugelförmig) ausgebildet. Dies trifft aber nur auf Emphysemblasen zu, nicht jedoch auf anderweitig verursachte Überblähungen, wie z.B. asthmatisch überblähten Lungenlappen. Die Form ist also kein allgemein anwendbares Kriterium zur Erkennung überblähter Bereiche. Dagegen spricht außerdem, daß Formerkennung nur mit konturverarbeitenden Verfahren möglich ist. Diese verwenden fraktal- oder zufallsvariablenbasierte Algorithmen, deren Anwendung deutlich komplexer ist und höhere Ansprüche an die Rechnerleistung stellt. Zudem muß die Reproduzierbarkeit der Resultate auf Pixelebene gewährleistet bleiben. Auf die Implementierung von kreisform-erkennenden Algorithmen wird deshalb verzichtet.

5.2.3 Erkennung von Inhomogenitäten durch Ermittlung des Gradienten

Ein hoher regionaler EI (damit auch geringe Dichte) allein ist, aufgrund der Abhängigkeit von der Atmung und der verwendeten Grenzwerte, ein notwendiges, aber nicht hinreichendes Kriterium zum Nachweis einer emphysematischen Struktur in der Lunge. Ganz wesentlich ist darüber hinaus die Inhomogenität, die eine Emphysemblase im Lungengewebe darstellt. Diese äußert sich in großen Dichte- bzw. Emphysemindexsprüngen. Der Nachweis solcher Sprünge erfolgt durch Betrachtung der Gradienten zwischen den untersuchten Regionen.

In einem ersten Schritt werden die regionalen EI gebildet. Abbildung 10 zeigt einen Ausschnitt aus einem Lungenflügel. Die Emphysemindices der einzelnen Regionen (Kästchen) sind durch Grauwerte dargestellt, wobei dunklere Werte höhere Indices repräsentieren. Der Gradient zu jedem Nachbar (betrachtet werden die benachbarten Regionen in x- und y-Richtung, nicht aber diagonal) wird durch Differenzbildung in definierter Richtung ermittelt (vgl. Formel in Abb. 10).

Je höher der Gradient, also die Differenz der Emphysemindices benachbarter Regionen, ist, desto größer sind die Dichteunterschiede, die Inhomogenität, der Bereiche. Die ermittelten Gradienten werden gemäß der Funktion aus Abschnitt 5.1. einer Punktbewertung unterzogen.

Dazu kommen zwei unterschiedliche Verfahren in Frage, die auf unterschiedlichen Modellvorstellungen der Lunge bzw. des Emphysems beruhen.

Abbildung 11 zeigt Schnitte (ob x- oder y-Richtung spielt dabei keine Rolle) durch ein Emphysem, links nach Modellvorstellung 1, rechts nach Modell 2. Dargestellt sind die regionalen Emphysemindices.

Diese sind im Bereich des Emphysems bei beiden Modellannahmen größer als im umliegenden Gewebe.

Die Unterschiede liegen in den Annahmen über den Verlauf der Indices innerhalb der überblähten Bereiche. Modell 2 zeigt zwar einen sprunghaften Anstieg des EI an der Emphysemgrenze, innerhalb der Überblähung verändern sie sich aber nur wenig.

Anders bei Modellvorstellung 1. Auch hier steigt der EI an der Grenze sprunghaft an, jedoch sind auch starke Sprünge innerhalb des Emphysems zu beobachten.

Die Charakteristika der beiden Modelle erfordern unterschiedliche Bewertungsfunktionen. Bei Modell 1 genügt es, den Gradienten zwischen benachbarten Regionen zu bilden und diesen gem. der folgenden Funktion zu bewerten:

Abbildung in dieser Leseprobe nicht enthalten

Die ermittelte Punktwertung wird der aktuellen Region j zugeordnet. Da die Höhe der EI auch innerhalb des Emphysems starken Schwankungen unterworfen sind, werden die inneren Regionen mit höheren Punktzahlen bewertet. Abhängig von den gewählten Grenzwerten ergibt sich beispielsweise folgende Bewertung (Abb.12) :

Starke Sprünge werden mit 2 Punkten bewertet, kleinere mit 1 Punkt. Außerhalb des Emphysems schwanken die EI kaum, entsprechend werden die Regionen mit 0 bewertet. Führt man diese Bewertung in x- und y-Richtung, also zeilen- und spaltenweise, durch und addiert die berechneten Werte, ergibt sich für jede Region eine Punktwertung im Intervall [0,4]. Angewendet auf eine Verteilung gem. Modell 1 würden nur die Grenzen des Emphysems erkannt und mit Punktzahlen größer 0 bewertet. Der Bereich innerhalb der Überblähung würde nicht markiert, da die EI zwar stark erhöht sind, aber nicht deutlich voneinander abweichen.

Algorithmus 2 durchläuft die Zeilen (Spalten) nicht vom äußersten linken zum äußersten rechten (von oben nach unten) Rand, sondern startet an einem Referenzpunkt, dem Zeilenminimum. Dieser Region wird die Wertung 0 zugeordnet. Ausgehend von diesem Bezug wird die Zeile in beide Richtungen durchlaufen. Die gebildeten Gradienten werden nach folgender Funktion nach Betrag und Richtung bewertet :

Abbildung in dieser Leseprobe nicht enthalten

Die Zuordnung der Bewertung geschieht nicht, wie bei Algorithmus 1, direkt zu den untersuchten Regionen. Der Region wird die Summe der Bewertungen ausgehend vom Minimum zugeordnet. Abbildung 13 verdeutlicht dies:

An der Grenze des Emphysems beträgt die Bewertung des Gradienten 2 Punkte. Die Wertung wird der Grenzregion zugeordnet. Danach ändert sich die Höhe des EI kaum, das Ergebnis der Bewertungsfunktion ist 0. Den Regionen rechts vom Minimum werden aber die kumulierten Bewertungen zugeordnet, so daß auch für die Regionen innerhalb der Überblähung die Punktwertung 2 vergeben wird. Am Rand des überbelüfteten Bereiches fällt der EI stark ab, das Ergebnis der Bewertungsfunktion ist negativ. Die Summe aller Punktwertungen ab dem Minimum wird 0, dieser Wert wird der Region zugeordnet. Auch bei Algorithmus 2 ergibt sich ein Wertebereich von [0,4] Punkten pro Region.

Welche der beiden Modellvorstellungen bzw. Algorithmen die Realität besser abbildet, kann nur empirisch ermittelt werden.

5.3. Teilproblem 3 - Unabhängigkeit von der Atmung

Die Sicherstellung der Unabhängigkeit der Kennzahl von der Atmung kann prinzipiell auf zwei Arten erfolgen:

1. Keine atmungsabhängige Größe wird einbezogen
2. Die Verschiebung kann quantifiziert und korrigiert werden

Die Ermittlung der Kennzahl basiert auf der Auswertung der Dichtewerte des CTs. Diese sind aber zwangsläufig von der Luftfüllung und damit der Atmung abhängig.

Deshalb muß versucht werden, die atmungsbedingte Verschiebung mit geeigneten Verfahren zu korrigieren.

5.3.1. Ermittlung des Atemzustands aus dem Bild selbst

Durch Bestimmung der Abweichung der errechneten mittleren Dichte von einem definiertem Wert wäre eine Korrektur der Bewertungsmerkmale möglich. Dies setzt zumindest die Existenz eines allgemein gültigen Normwertes für die mittlere Dichte der Lunge bei einer definierten Atemlage voraus. Solche Normwerte können aber nicht definiert werden - die Streuung ist zu groß -, außerdem verursachen auch krankhafte Belüftungsstörungen Abweichungen. Die Korrektur des Einflusses der Atmung kann deshalb nicht aus der einzelnen Aufnahme erfolgen.

5.3.2. Ermittlung der Belüftung aus mehreren Lungenschnittbildern

Bereits in Abschnitt 3.1., bei der Untersuchung der Nachteile der Verwendung der mittleren Dichte als Indikator, wurde die Ortsabhängigkeit der Ventilation aufgezeigt (Abb. 6). Der Luftaustausch ist demnach in den zwerchfellnahen Gebieten höher, so daß sich eine Verschiebung der Verteilung ergibt. In Abb. 14 sind die mittleren Dichten über dem Ort (Schnittebene) aufgetragen schematisch dargestellt. Der Nullpunkt der Ortskoordinate ist durch den Schnitt an der _ Carina festgelegt. Aufnahmen oberhalb wurden negative Ortskoordinaten zugeordnet. Die graue Linie zeigt den tatsächlichen Verlauf der mittleren Dichte im Zustand der Inspiration, die schwarze, strich-punktierte Kurve zeigt die zugehörige lineare Regression.

Basis dieser Methode ist die Annahme, daß bei Ausatmung die Dichtewerte insgesamt zunehmen, die Dichteänderung in Nähe zum Zwerchfell aber durch das erhöhte Luftvolumen besonders groß ist. Daraus ergäbe sich ein Verlauf, wie er durch die obere, schwarz gestrichelte Kurve angedeutet ist (Kurve zeigt den erwarteten Verlauf der Regression). Erwartet wird ein reziproker Zusammenhang zwischen der Steigung der Geraden (der Regressionsgeraden bei Inspiration und Exspiration) und dem Inspirationszustand (Abb. 14). Wäre ein solcher Zusammenhang nachweisbar, stünde mit der Auswertung der verschiedenen Schnittbilder ein Verfahren zur Verfügung, um den Inspirationszustand direkt aus dem CT ohne weitere spirometrische Messungen zu ermitteln und damit die ermittelten Homogenitätsmaßzahlen zu normieren.

Die Auswertung des zu Verfügung stehenden Materials brachte Hinweise auf einen solchen Zusammenhang. Um diesen jedoch zu bestätigen und zu quantifizieren, sind spirometergesteuerte Aufnahmen gesunder und klassifiziert kranker Lungen in großer Zahl erforderlich, die so nicht zur Verfügung stehen. Die Sicherstellung der Unabhängigkeit von Maßzahl zur Bewertung der Homogenität und Atemzustand kann deshalb nicht mit Hilfe dieses Verfahrens erfolgen.

5.3.3. Adaptive Grenzwerte

Anstatt eine Maßzahl unter Verwendung fester Grenzwerte zu bilden (vgl. die Bestimmung des regionalen EI in Abschnitt 3.3.) und die durch das unterschiedliche Atemniveau entstehenden Fehler nachträglich zu korrigieren, können die Grenzwerte selbst angepaßt werden. Während der Gradient weitgehend unbeeinflußt von der Atemtätigkeit bleibt, ist die Höhe des EI atmungsabhängig (vgl. Abschn. 3.2. und 3.3.). Um die Höhe des EI trotzdem als Kriterium in die Punktbewertung einfließen zu lassen, werden die Grenzwerte der Funktion aus Abschn. 5.1. nicht festgelegt, sondern an den tatsächlich auftretenden Werten orientiert. Als mögliche Orientierungspunkte zur Bestimmung der Grenzwerte wurden die Extrema und der Mittelwert in Betracht gezogen. Das Minimum scheidet bei genauerer Betrachtung als Bezugspunkt aus, da beinahe immer eine Region eine Nullwertung bekommt, so daß keine Grenzen festgelegt werden können.

Die Schwächen des Mittelwertes, insbesondere bei krankhaft veränderten Lungen, wurden ausführlich in Abschnitt 3. erläutert, so daß auch dieser Wert nicht als Bezugspunkt verwendet wird. Das Maximum hingegen zeigt wünschenswerte Eigenschaften. Bei verstärkter Inspiration steigt das Maximum mit dem allgemeinen Dichteniveau an, so daß das Bezugssystem für die Bewertung angepaßt wird. Die Bestimmung der Grenzwerte erfolgt nach folgendem Zusammenhang :

Abbildung in dieser Leseprobe nicht enthalten

Die Faktoren p2/1 werden so angepaßt, daß bei [Abbildung in dieser Leseprobe nicht enthalten] die Grenzwerte den in der Literatur angegebenen (z.B. [Tüng96] oder [Blech97]) entsprechen. Die Adaption der Grenzwerte verringert nicht nur die Abhängigkeit vom Atemzustand, gleichzeitig wird die Bewertung auch unabhängig von der gewählten Schnittebene (vgl. Abschn. 3.1.), so daß diese Methode am besten geeignet erscheint und bei der Auswertung Verwendung finden soll.

5.4. Teilproblem 4 - Zusammenfassung d. Punktwertungen zu Maßzahlen

Die gemäß der oben entwickelten Verfahren vergebenen Punktwertungen ([0,2] Punkte für die Größe, [0,4] Punkte für die Wertung des Gradienten - [0,6] Punkte total) bewerten nur einzelne Regionen. Um eine Aussage über einen Lungenflügel, ein Schnittbild oder gar über die komplette Lunge machen zu können, müssen die regionalen Wertungen zu einer globalen Maßzahl zusammengefaßt werden.

In einem ersten Schritt werden hierzu die ermittelten Häufigkeiten der regionalen Punktwertungen über alle untersuchten Lungenflügel summiert. Abbildung 15 zeigt eine typische Häufigkeitsverteilung einer gesunden und einer kranken Lunge (der Verlauf ist ähnlich für beide Algorithmen). Bei der kranken Lunge erfolgt eine Verschiebung der Verteilung in Richtung höherer Wertungen, eine Folge der Verschiebung zu niedrigeren Dichtewerten in emphysematischen Strukturen und der Zunahme der Inhomogenität.

Für die Zusammenfassung der Verteilung zu einer Maßzahl wurden folgende Möglichkeiten gewählt:

1. Bestimmung des arithmetischen Mittels

Abbildung in dieser Leseprobe nicht enthalten

2. Bestimmung eines gewichteten Mittels

Abbildung in dieser Leseprobe nicht enthalten

3. Bestimmung der Verhältnisse von Anzahl der Regionen mit höheren Punktwertungen zur Gesamtzahl

Abbildung in dieser Leseprobe nicht enthalten

Gegen die Verwendung des arithmetischen Mittels spricht vor allem die Art der Verteilung. Aufgrund der großen Anzahl von Regionen, die mit 0 Punkten bewertet werden (sowohl bei der gesunden als auch der kranken Lunge), liegt das arithmetische Mittel stets in der Nähe der 0-Punktewertung und reagiert nur schwach auf leichte Erhöhungen im oberen Wertebereich (siehe auch Verlauf der Verteilung in Abbildung 15).

Diesen Mangel auszugleichen ist das Ziel des gewichteten Mittels. Dabei werden die Punktzahlen mit unterschiedlichen Faktoren (werden gleiche Faktoren über den Wertebereich verwendet, entspricht dies einer Multiplikation des arithmetischen Mittels, die erwünschte Verzerrung findet nicht statt) gewichtet, so daß die 0-Wertung unterproportional eingeht. Problematisch ist hierbei vor allem die Auswahl geeigneter Faktoren, um einerseits die Veränderungen im oberen Bereich stärker hervorzuheben, andererseits die Eigenheiten der Verteilung nicht völlig zu verwischen. Aus diesem Grund werden gewichtete Mittelwerte in der Auswertung nicht verwendet.

Für die Bestimmung von (Flächen-) Verhältnissen spricht die Möglichkeit der einfachen Anpassung und die einstellbare Empfindlichkeit auf Veränderungen im oberen Wertebereich. In Abbildung 15 deutlich zu erkennen (senkrechte, schwarz gestrichelte Linie) ist die Zunahme der Regionen mit höheren Punktwertungen bei der kranken Lunge ab der Punktwertung 3.

In diesen Bereich werden deshalb die Grenzen zur Bestimmung der Verhältnisse gelegt. In der Auswertung werden die Anteile der Regionen mit Bewertung zwischen [3,6] Punkten untersucht, sowie, um möglicherweise eine größere Trennschärfe zu erreichen, die Anteile von Regionen mit Bewertungen aus dem Intervall [4,6].

6. Realisierung

Die Bearbeitung der CT-Bilder wurde für die Umsetzung (Programmiersprache IDL, s. Anh. D.1.) in Programmcode in elementare Module zerlegt. Die Einzelmodule wurden durch eindeutige Definition der Schnittstellen so ausgelegt, daß eine hohe Wiederverwendungsquote erreicht und die Teile auch bei Änderungen schnell angepaßt werden konnten. Die Module sind so gehalten, daß wichtige Parameter bei Aufruf der jeweiligen Prozedur bzw. Funktion übergeben werden, so daß die Konfiguration des Ablaufes nachträglich ohne Eingriff in den Code möglich ist.

Abbildung 16 zeigt die Struktur des Bearbeitungsablaufes und die Anordnung der funktionsbestimmenden Einzelmodule. Eine genaue Beschreibung der Module, inklusive der Beschreibung der Ein- und Ausgabeschnittstellen und der Parameter, sowie der kommentierte Quellcode, findet sich im Anhang D.1. und D.2..

Die einzelnen Module, es handelt sich dabei entweder um Prozeduren oder Funktionen, werden in ein Hauptprogramm eingebunden (für diese Auswertung Programm studaus.pro siehe Anhang D.2.), das die Aufrufe und die Übergaben steuert. Sämtliche Parameter können im Hauptprogramm eingestellt werden, so daß Änderungen innerhalb der Module entfallen.

Das erste Modul (load_div.pro) hat die Aufgabe, die CT-Bilder, die gemäß Spezifikation im Abschnitt 2.1. im ACR-NEMA Format vorliegen, einzuladen und in ein 512x512 Datenfelder umfassendes Array zu übertragen. Dazu wird der Name und der Pfad an die Prozedur übergeben. Zusätzlich zum CT-Bild wird die in Abschnitt 2.1. spezifizierte Maske im BitmapFormat geladen, die eine Trennung der Lungenflügel ermöglicht.

Beide Arrays, das konvertierte CT-Bild und die Maske, sowie die Information, welcher Lungenflügel bearbeitet werden soll, werden dann an die Funktion wing.pro übergeben. Bei Aufruf von wing.pro werden die Parameter gem. der Beschreibung in Anhang B. übergeben. Diese sind in der aufrufenden Prozedur fest eingestellt und können dieser beim Aufruf nicht mitgegeben werden, evtl. nötige Änderungen müssen in der Prozedur load_div.pro vorgenommen werden.

In der Funktion wing.pro wird dem CT-Bild zunächst die Maske überlagert und alle nicht interessierenden Bereiche ausgeblendet. Der restliche Bereich wird nach Dichtewerten durchsucht, die außerhalb des Bereiches liegen, den man normalem Lungengewebe zuordnet. Wird ein solcher Wert gefunden, startet eine Suchroutine, die in der direkten Umgebung des Punktes weitere Werte über dem vorgegebenen Grenzwert sucht.

Diese werden markiert. Überschreitet die Anzahl der so gefundenen, zusammenhängenden Punkte den übergebenen Grenzwert für die Größe, wird der Bereich als nicht zum Lungengewebe gehörig markiert.

Abbildung 17 links zeigt einen Lungenflügel, bei dem Blutgefäße und Bronchialgewebe markiert wurden, rechts daneben das Originalbild. Deutlich erkennbar sind die weißen Markierungen, wo im Original Blutgefäße und Bronchialgewebe zu erkennen sind.

Die so markierten Lungenflügel werden an die Prozedur load_div.pro zurückgegeben und von dort an das Hauptprogramm weitergeleitet.

Mit der Übergabe der bearbeiteten Lungenflügel an die Prozeduren reg_ei_eval_1.pro bzw. reg_ei_ eval_2.pro beginnt die eigentliche Bearbeitung.

Beide Module rufen zunächst die Prozedur reg_ei.pro auf. Diese unterteilt die Lungenflügel in quadratische Regionen gemäß den in Abschnitt 3.3. beschriebenen Verfahren. Abbildung 8 rechts (Abschnitt 3.3.) zeigt eine Lunge nach Einteilung in quadratische Regionen und Ermittlung der regionalen Indices. Nach der Ermittlung des Emphysemindexes für jede Region werden diese wieder an die aufrufenden Prozeduren reg_ei_eval_1.pro bzw. reg_ei_eval_2.pro zurückgegeben.

Nun erfolgt die Bewertung der regionalen Empysemindices in zwei Schritten. Zuerst wird die Höhe des Emphysemindexes für jede Region getrennt mit einer Punkteskala unter Verwendung adaptiver Grenzwerte gem. Abschnitt 5. bewertet. Dazu wird für den zu untersuchenden Lungenflügel der maximale regionale EI ermittelt. Dieser wird mit den übergebenen Grenzwerten (in Prozent vom Maximum) multipliziert und so die absoluten Grenzen ermittelt (zur Übergabe der Grenzwerte siehe Anhang D.2. und D.3.). Bis zu diesem Bearbeitungsschritt unterscheiden sich die beiden Module 1 und 2 nicht. Erst bei der Bewertung der Gradienten zwischen den Regionen unterscheidet sich die Arbeitsweise der Prozeduren.

reg_ei_eval_1.pro verwendet den in Abschnitt 5.3.3. vorgestellten Algorithmus 1, nach der die Bewertung einer Region nur vom Gradienten zur benachbarten abhängt. Bei reg_ei_eval_2.pro findet Algorithmus 2 Anwendung, der neben der Indexdifferenz zwischen benachbarten Regionen auch die Umgebung in die Bewertung einfließen läßt. Da bei Verwendung von Algorithmus 2 auch negative Bewertungen möglich sind, und auch die Maximalpunktzahl überschritten werden kann, müssen Überschreitungen des Wertebereiches korrigiert werden, so daß Punktzahlen kleiner Null zu Null gesetzt werden, Werte oberhalb des Maximums gleich der Maximalpunktzahl.

Da die Bewertung nach beiden Algorithmen getrennt nach Zeilen und Spalten erfolgt und die Punktzahlen addiert werden, ergibt sich eine Maximalpunktzahl von sechs Punkten für eine Region (2 Punkte max. für die Höhe + 2 Punkte max. für den Gradienten zeilenweise + 2 Punkte max. für den Gradienten spaltenweise = 6 Punkte max.).

Die anschließend aufgerufene Funktion auszählung.pro erstellt eine Häufigkeitstabelle der vergebenen Punktbewertungen.

Zur späteren statistischen Auswertung werden die Werte, ermittelt mit Hilfe von Algorithmus 1 und 2, zusammen mit den Patientendaten, den Lungenfunktionsdaten und der vom Radiologen vorgenommenen Wertung (vgl. Beschreibung des vorhandenen Datenmaterials, Abschnitt 2.1.) in eine Textdatei geschrieben (vgl. Dokumentation des Programms studaus.pro Anhang D.3.).

Zusätzlich findet eine zweite Bewertung mit Hilfe zweier bereits verwendeter Methoden (gewählt wurde hier der globale Emphysemindex und die Bewertung von Größenklassen der Emphysemblasen) statt, die Ergebnisse dieser Untersuchung werden ebenfalls an die Textdatei angehängt.

7. Auswertung und Vergleich

7.1. Methode

Mangels eines anerkannten Goldstandards müssen für den Vergleich der Methoden die Bewertungen durch die Experten, den Radiologen und den Pulmologen, herangezogen werden. Da die Bewertungen aber differieren können, werden die neu entwickelten und die Vergleichsmethoden (Globaler EI - vgl. Abschn. 3.2. - und Ermittlung von Größe und Anzahl von Emphysemblasen - Abschn. 3.4.) sowohl mit den pulmologischen Kennwerten (Residualvolumens in Prozent vom Normwert, RV), mit der Diagnose des Radiologen (Bewertung des CT-Bildes, CT), als auch mit der Kombination (CT/LuFu) beider Expertenmeinungen verglichen. Tabelle 6 im Anhang E. zeigt die zu testenden Größen und die Testgrößen im Überblick.

Anhand der Expertenbewertungen werden die Patienten in zwei Gruppen aufgeteilt, Gruppe 0, die Menge sicher Gesunder, Gruppe 1, die Gruppe sicher Kranker (zur Aufteilung und verwendeter Grenzwerte vgl. Tab. 5 Anh. E.).

Die Auswertung gliedert sich in zwei Teile. Zunächst soll bestimmt werden, ob sich die berechneten Maßzahlen für die Patienten der Gruppen 0 (gesund) und 1 (krank) signifikant unterscheiden. Gewählt wird für diese Prüfung ein parameterfreier, verteilungsunabhängiger Test, der keine weiteren Annahmen über die Beschaffenheit der Daten fordert, der U-Test nach Wilcoxon, Mann und Whitney (Anh. E.1.). Fällt der Test positiv aus, d.h. die berechnete Signifikanz liegt unterhalb des gewählten Signifikanzniveaus (üblicherweise 0,05; 0,01 bei hohen Anforderungen an die Trennschärfe), unterscheiden sich die ermittelten Maßzahlen für beide Gruppen 0 und 1 signifikant.

Im zweiten Schritt werden mit Hilfe der Vierfeldertafel die in der Medizin häufig verwendeten Kennwerte Spezifität und Sensitivität (vgl. Anh. E.2.) ermittelt. Dazu werden die Patienten entsprechend Tab. 10 Anhang E.2. anhand der Maßzahlen in zwei Gruppen (krank/gesund) eingeteilt und diese Einteilung mit der Klassifizierung nach der Expertenmeinung verglichen.

7.2. Resultate

Für die Untersuchung standen Daten von 80 Patienten zur Verfügung, durch die Gruppierung verringert sich der nutzbare Datenbestand, so daß z.B. bei der Klassifizierung nach dem CT nur 5 Patienten als sicher krank qualifiziert werden konnten. Für statistisch eindeutig belegbare Aussagen ist diese Datenbasis zu schmal, allerdings können der U-Test und die Untersuchung von Sensitivität und Spezifität schon ausreichend Hinweise für die Einschätzung der Ergebnisse dieser Arbeit liefern.

Die beim U-Test berechneten Signifikanzen sind in Tab. 8 Anh. E.1.1. wiedergegeben. Für die Gruppierung der Patienten nach CT und CT/LuFu weisen alle Maßzahlen für jeden verwendeten Grenzwert signifikante (Signifikanzniveau 0,01 !) Unterschiede zwischen den Gruppen 0 und 1 auf. Bei Verwendung des Residualvolumens als Gruppierungsmerkmal weist nur noch die Maßzahl nach Blechschmidt %_45_Bul eine Signifikanz unter 0,01 auf. Grund für die Nichtsignifikanz könnte der zeitliche Versatz zwischen spirometrischer Untersuchung und der CT-Aufnahme sein, so daß die auf Basis der CT-Bilder berechneten Maßzahlen nicht den Zustand der Lunge zum Zeitpunkt der Spirometrie widerspiegeln. In die Untersuchung der Spezifität/Sensitivität werden nur Kombinationen von Maßzahl/Klassifizierungskriterium einbezogen, die im U-Test eine ausreichende Trennschärfe bewiesen haben. Aufgrund der geringen Signifikanz wird die Bewertung nach dem RV deshalb nicht berücksichtigt.

Die Untersuchung zeigt, daß beinahe alle Maßzahlen für alle verwendeten Grenzwert/Klassifizierungs-Kombinationen eine ausreichende Spezifität (als ausreichend wird eine Spezifität/Sensitivität deutlich größer 0,7 angesehen) aufweisen, d.h. Gesunde werden mit hoher Wahrscheinlichkeit als solche erkannt. Die Spezifität zeigt bei allen Maßzahlen nur eine geringe Abhängigkeit vom Grenzwert.

Anders bei der Sensitivität, der Wahrscheinlichkeit, daß ein kranker Proband auch als solcher erkannt wird. Die Sensitivität aller Kombinationen von Maßzahlen/Klassifizierung schwankt stark mit den eingesetzten Dichtewerten. Nur die Sensitivität des Emphysemindex zeigt sich resistent gegen Grenzwertänderungen, allerdings liegen die Werte für die Sensitivität weit unterhalb der geforderten 0,7; der globale Emphysemindex ist als Diagnoseinstrument ungeeignet.

Die Sensitivität der Maßzahlen, die nach den in dieser Arbeit entwickelten Methoden errechnet wurden, steigt mit zunehmendem Grenzwert. Da mit steigendem Grenzwert auch die Größe der regionalen EI steigen, die Grenzwerte für die Bewertung des Gradienten aber gleich bleiben, nehmen im Mittel auch die Punktzahlen zu. Unter Umständen könnte diese Abhängigkeit durch Einführung von adaptiven Grenzwerten auch bei der Bewertung des Gradienten vermindert werden.

Anhand der hier ermittelten Kennzahlen läßt sich keine Aussage darüber treffen, welcher der beiden verwendeten Algorithmen 1 oder 2 die Realität besser abbildet. Dazu wäre eine Untersuchung auf einer breiteren Datenbasis erforderlich.

Auch die Sensitivität der Methode nach Blechschmidt weist starke Abhängigkeiten vom Grenzwert auf. Zusätzlich weisen die Abhängigkeiten der Anteile der Punktwertungen [3,5] und [4,5] an der Gesamtzahl einen gegensetzlichen Verlauf auf. Dieses Verhalten findet seine Begründung im Algorithmus zur Bewertung der Größe der Emphysemblasen. Aufgrund dieser Untersuchung kann keiner Methode der Vorzug gegeben werden, kleine Unterschiede in den Kennzahlen (gilt sowohl für die Sensitivität als auch für die Spezifität) dürfen aufgrund der kleinen Grundgesamtheit nicht als aussagekräftige Qualifikationskriterien herangezogen werden.

Alle Maßzahlen sind ausreichend gut zur Diagnose geeignet, allerdings besticht keine durch besonders hohe Kennzahlen, die eine Verwendung als Goldstandard gerechtfertigt erscheinen lassen könnte.

Für die Diagnostik bietet sich die Möglichkeit, verschiedene Maßzahlen, und damit unterschiedliche Verfahren zu kombinieren. Durch Kombination von Maßzahlen mit hoher Spezifität mit solchen, die eine hohe Sensitivität aufweisen, läßt sich ein Instrumentarium konzipieren, das viele unterschiedliche Bewertungskriterien vereint und so die Sicherheit der Diagnose erhöht.

8. Kritik und Ausblick

Im Rahmen dieser Studienarbeit wurden Verfahren zur Bestimmung von Maßzahlen entwickelt, die einen quantitativen Vergleich zwischen CT-Bild und akustischer Lungendiagnose ermöglichen. Darüber hinaus können die Verfahren auch zur Diagnose von Emphysemen verwendet werden.

Die statistische Auswertung hat gezeigt, daß alle neu entwickelten Maßzahlen den bisher verwendeten Methoden in Bezug auf die diagnostische Tauglichkeit ebenbürtig, im Fall des globalen Emphysemindexes sogar deutlich überlegen sind.

Aufgrund der kleinen verfügbaren Datenbasis konnte nicht eindeutig entschieden werden, welcher der berechneten Maßzahlen bzw. welchem Verfahren der Vorzug zu geben ist. Wünschenswert wäre die Überprüfung anhand einer umfangreicheren Studie. Ob eines der neuen Verfahren mächtig genug ist, einen Goldstandard zu setzen, muß nach den Auswertungen bezweifelt werden, allerdings weist die Untersuchung daraufhin, daß durch Kombination verschiedener Maßzahlen (insbesondere Methode 1 oder 2 mit der Bewertung der Größen der Emphyseme nach Blechschmidt) eine höhere Sicherheit in der Diagnose erreicht werden kann.

Denkbare wäre auch eine Optimierung der Diagnosesicherheit durch gezielte Variation der Parameter, dies ist aber nur bei großen Datenmengen durchführbar.

Die im Pflichtenheft gewünschte Verarbeitungszeit konnte nicht erreicht werden, hier könnte die Portierung in eine effizientere Programmiersprache Abhilfe schaffen. Für den praktischen Einsatz scheint eine moderne graphische Benutzeroberfläche wünschenswert. Entwicklungspotential bietet das Verfahren der Bestimmung des Atemzustandes aus Abschn.

5.3.2.. Sollte sich ein signifikanter Zusammenhang zwischen der Position des CT-Schnittes und der mittleren Dichte nachweisen lassen, ließen sich unter bestimmten Voraussetzungen (Durchblutung etc.) pulmologische Kennwerte aus dem CT-Bild berechnen.

p>Literaturverzeichnis

Abbildung in dieser Leseprobe nicht enthalten

Glossar

ACR-NEMA American College of Radiology - National Electrical Manufacturers Association; Format für CT-Bilder

Akustische Lungendiagnostik (auch -tomographie) Verfahren zur Lungendiagnostik, bei dem durch gürtelförmige Anordnung von mehreren schallerzeugenden Aktoren und Sensoren eine tomographische Darstellung der Schalleigenschaften der Lunge im Hörschallbereich erreicht werden soll. Wegen der großen Wellenlängen ist zwar nur eine geringe Auflösung zu erzielen, dafür wird ein System zur akustischen Tomographie der Lunge geschaffen, welches die Belüftung der Lunge dynamisch darstellt und beliebig oft durchgeführt werden darf (keine Strahlenbelastung). Die Hauptanwendungsgebiete der akustischen Tomographie bestehen in der Diagnostik von Belüftungsstörungen und in der Verlaufskontrolle nach Transplantationen.

Asthma (bronchiales), anfallsweise auftretende Behinderung der Ausatmung durch Verengung der Bronchien infolge von Krämpfen der Bronchialmuskulatur, Absonderung zähen Schleimes.

Carina s.a. _Trachea, Ort der Aufzweigung der Trachea in die Hauptbronchien

Computertomographie 1972 von Hounsfield (s. _ Hounsfield-Einheiten) und Ambrose vorgestelltes bildgebendes Röntgenverfahren, das im Gegensatz zum konventionellen Röntgen erlaubt, Schnittbilder zu erzeugen.

Röntgenstrahlenemitter und -detektoren werden um den zu untersuchenden Körper gedreht. Durch Überlagerung der ermittelten Dämpfungswerte kann für jedes Volumenelement (Schichtdicke des untersuchten Bereichs zwischen 2mm und 15mm) die Dichte berechnet werden.

Durch Anwendung verschiedener bildverarbeitender Algorithmen (kantenbetonend bzw. rauschdämpfend) und Normung (s. _ Hounsfield Einheiten) entstehen vergleichbare Schnittbilder, die die Dichte des untersuchten Körpers wiederspiegeln und in Grauwerten dargestellt werden, wobei dichteren Bereichen hellere Grauwerte zugeordnet sind.

Emphysem Beim Emphysem handelt es sich um partielle Erweiterungen von Lungengewebe, verursacht durch Überblähung oder sogar Destruktion. Typisch für das Emphysem sind die morphologischen Veränderungen der Lunge. Im CT stellt sich das Emphysem als deutlich abgegrenzter, runder bis sackartiger Bereich mit deutlich erniedrigter Dichte dar (d.h. dunkler).

Exspiration Ausatmung

Fibrose (Lungen-), bindegewebig narbiger Umbau des Lungengerüsts, meist als Endzustand einer chronisch-entzündlichen Lungenerkrankung; führt zur Entwicklung einer restriktiven Belüftungsstörung.

Goldstandard bezeichnet die aktuell beste, verfügbare und anerkannte Diagnosemethode

Hounsfield-Einheiten (HE/HU) Nach Godfrey Hounsfield benannte Einheit zur Dichtebestimmung. Die aus dem CT ermittelten Dämpfungswerte werden auf HounsfieldEinheiten bezogen.

Reiner Luft wird der Wert -1000 HE zugeordnet, Wasser hat den Wert 0 HE. Dazwischen und darüber hinaus ist die Skala linear geteilt:

Abbildung in dieser Leseprobe nicht enthalten

Knochen liegen bei etwa 3000 HE.

Das menschliche Auge ist nicht in der Lage, Grauwerte über einen solchen Bereich (-1000 HE/+3000 HE) zu unterscheiden, deshalb werden die Werte für das zu untersuchende Organ durch ein Fenster hervorgehoben, Werte unterhalb des Fensters werden dann schwarz, Werte oberhalb weiß dargestellt. Das Fenster wird durch die Lage des Zentrums (Center) und der Breite (Width) bestimmt. Für Untersuchungen der Lunge verwendet man im allgemeinen ein Fenster mit einem Center zwischen -500 HE und -800 HE, mit einer Breite von 800 HE bis 1200 HE.

Inspiration Einatmung

Lungenfunktionsdaten, Abbildung 18 zeigt spirographisch dargestellte Volumina eines gesunden Probanden zur Definition der Begiffe. Das Residualvolumen ist spirometrisch nicht meßbar.

Pulmologie Lehre von der Erkrankung der Atmungsorgane

Radiologie Strahlenheilkunde; Nutzbarmachung bestimmter Strahlungsarten in Diagnose und Therapie

Residualvolumen _Lungenfunktionsdaten

Spirometrie Messung und graphische Darstellung (Spirogramm) von Lungenvolumen und Ventilationsgrößen.

Thorax Brustkorb

Trachea Luftröhre, 10-12 cm langer Abschnitt der Atemwege, beginnt unterhalb des Ringknorpels und endet mit der Aufzweigung in die beiden Stammbronchien.

Anhang

A. Zeitplan

Abbildung in dieser Leseprobe nicht enthalten

Tabelle 2

B. Projektkostenabschätzung

In die Projektkosten geht nur die Arbeitszeit ein, Aufwendungen für Werkstattarbeiten oder Material entstanden keine. Ebenso unberücksichtigt bleiben Kosten für Software-Lizenzen o.ä., da diese vorhanden waren.

Abbildung in dieser Leseprobe nicht enthalten

Tabelle 3

C. Vollständiger Datensatz - Beispiel

Abbildung in dieser Leseprobe nicht enthalten

Tabelle 4

D. Programmierung

D.1. IDL

Die Umsetzung der Algorithmen erfolgte in der Programmiersprache IDL, Version 5.0, der Firma Research Systems Inc..

IDL stellt eine komplette Entwicklungsumgebung für die Analyse und Visualisierung wissenschaftlicher Daten dar. Es verbindet eine Array-orientierte, compilerbasierte Programmiersprache mit einer Fülle von mathematischen Analyse-, Bildverarbeitungs- und Darstellungsfunktionen. Neben der Möglichkeit der Programmierung können Abläufe auch direkt interaktiv durch Eingabe von Befehlen an einer Befehlszeile ausgeführt werden, auch die Erstellung von graphischen Benutzeroberflächen für die transaktionsgesteuerte Ausführung von Prozeduren und Funktionen ist möglich.

Die Syntax ist leicht zu erlernen und eng an die Befehlsbibliotheken anderer verbreiteter Programmiersprachen (z.B. Turbo Pascal) angelehnt.

Aus diesen Gründen wurde IDL bereits für die Arbeiten von [Blechschmidt/Lörcher] eingesetzt, so daß neben einer bestehenden Lizenz auch entsprechende Erfahrungen in diese Arbeit einfließen konnten.

Obwohl für die Entwicklung hervorragend geeignet, offenbart IDL auch einige Nachteile. Zum einen läßt die Ausführungsgeschwindigkeit stark zu wünschen übrig, so daß bei der Bearbeitung umfangreicher Datenmengen, wie z.B. der untersuchten CT-Bilder, trotz des Einsatzes moderner PC-Hardware mit erheblichen Rechenzeiten zu rechnen ist. Die vorhandene Lizenz des IDL-Compilers bietet keine Möglichkeit, den Programmcode in eine ausführbare Form zu wandeln und diese nicht im Hauptspeicher, sondern auf einem Speichermedium abzulegen dies ist erst nach Erwerb einer sog. Run-Time-Lizenz möglich.

D.2. Modul-Dokumentation

Name : load_div.pro

Version : 16.08.1998

Zweck : Lädt das gewünschte CT-Bild in ein Integer-Array, lädt die zugehörige Bitmap-Maske, übergibt beides an wing.pro und liefert die bearbeiteten Lungenflügel an das aufrufende Modul zurück.

Kategorie: Prozedur, bildverarbeitend, speziell

Aufruf : load_div, pfad, ct_cut_l, ct_cut_r Eingaben : pfad

Ausgabe : ct_cut_l

Linker Lungenflügel, Nicht-Lungengewebe ausgeschnitten

ct_cut_r

Rechter Lungenflügel, Nicht-Lungengewebe ausgeschnitten

Historie : Erstellt von Andreas Staubi am 16.08.1998

Bemerkungen :

Modul unnötig, wenn das Einladen des CT-Bildes direkt aus dem Hauptprogramm erfolgt.

Das Modul bietet keine Möglichkeit, die Parameter für den Aufruf von wing.pro beim Aufruf mitzugeben.

Name : wing.pro

Version : 17.06.1998

Zweck : Schneidet aus dem CT-Bild die gewünschte Seite aus und entfernt Blutgefäße und anderes Gewebe

Kategorie: Funktion, bildverarbeitend, speziell

Aufruf : wing (original_ct, getrenntes_ct, seite, groessen_grenze, grenze) Eingaben : original_ct

Integerarray, 512x512, enthält ursprüngliches CT-Bild

getrenntes_ct

Integerarray, 512x512, enthält bearbeitetes CT-Bild, wobei die linke Lunge mit 1, die rechte mit 2 gekennzeichnet ist

Integer, 1 schneidet linke Lunge aus

2 schneidet rechte Lunge aus

groessen_grenze

Integer, Anzahl der zusammenhängenden Pixel, ab der Gebiet als Gefäß erkannt wird

grenze

Integer, Wert in Hounsfield-Einheiten, der als untere Grenze für Gewebe angenommen wird

Ausgabe : Integerarray, 512x512, daß den jeweiligen Lungenflügel enthält, Restbereiche und Gefäße sind mit dem Wert 9999 belegt.

Historie : Erstellt von Andreas Staubi am 17.06.1998

Bemerkungen

Durch Verwendung interner Funktionen sehr langsam, bei größeren Datenmengen sollten temporäre Dateien erstellt werden, in denen die Ergebnis-Arrays abgelegt werden.

Name : reg_ei.pro Version : 04.10.1998

Zweck : Unterteilt den vorbereiteteten Lungenflügel in Regionen mit der übergebenen Kantenlänge (quadratisch) und berechnet für diese die regionalen Emphysemindices.

Kategorie: Funktion, bildverarbeitend, speziell

Aufruf : reg_ei (Lungenflügel, Kantenlänge, Grenze) Eingaben : lungenflügel

Integerarray, 512x512, enthält zu bearbeitenden Lungenflügel

Kantenlänge

Integerwert, gibt die Länge einer Kante der Regionen in Pixels an.

Grenze

Grenzwert, unterhalb dessen der untersuchte Pixel zum überbelüfteten Gewebe gerechnet wird (vgl. Def. Emphysemindex)

Ausgabe : 2 dim. Floatarray variabler Größe (=512/Kantenlänge), enthält die regionalen EI's bezogen auf die übergebene Grenze

Historie : Erstellt von Andreas Staubi am 04.10.1998

Bemerkungen :

Berücksichtigt werden keine Bildpunkte, die als nicht zur Lunge gehörig (Blutgefäße, Brustkorb) markiert wurden, Randregionen werden berechnet.

Name : reg_ei_eval_1.pro

Version : 23.12.1998

Zweck : Ruft reg_ei.pro (inkl. Weitergabe von Kantenlänge und Grenzwert) auf und bewertet die von reg_ei.pro festgelegten Regionen anhand der Höhe des regionalen Emphysemindexes und der Differenz der Emphysemindices zwischen benachbarten Regionen (Gradient) gem. Algortihmus 1.

Kategorie: Prozedur, bildverarbeitend, speziell

Aufruf : reg_ei_eval_1, ct, ct_eval, ct_eval_grad, ct_eval_value, grenzwerte Eingaben : ct

Array (512x512), enthält zu bewertenden Lungenflügel, nicht zum Lungengewebe gehörige Bereiche sind markiert (aus wing.pro)

grenzwerte

Eindimensionales Array, das folgende Grenzwerte enthält :

1. Stelle : Unterer Grenzwert zur Bewertung der Höhe d. Eis
2. Stelle : Oberer Grenzwert zur Bewertung d. Höhe
3. Stelle : Unterer Grenzwert zur Bewertung des Gradienten
4. Stelle : Oberer Grenzwert zur Bewertung des Gradienten
5. Stelle : Kantenlänge einer Region (Pixel) (für reg_ei.pro)
6. Stelle : Dichtegrenzwert für Bestimmung des EI (für reg_ei.pro)

Ausgabe : ct_eval

Integerarray, Größe abhängig von verwendeter Kantenlänge für die Regionen, enthält die Bewertung der einzelnen Regionen, Wertebereich 0...6 Punkte

ct_eval_grad

Integerarray, Größe abhängig von verwendeter Kantenlänge für die Regionen, enthält die Bewertung der einzelnen Regionen anhand des Gradienten, Wertebereich 0...4 Punkte

ct_eval_value

Integerarray, Größe abhängig von verwendeter Kantenlänge für die Regionen, enthält die Bewertung der einzelnen Regionen anhand der Höhe des EI, Wertebereich 0...2 Punkte

Historie : Erstellt von Andreas Staubi am 17.11.1998

Bemerkungen :

Name : reg_ei_eval_2.pro

Version : 25.12.1998

Zweck : Bewertet die von reg_ei.pro festgelegten Regionen anhand der Höhe des regionalen Emphysemindexes und der Differenz der Emphysemindices zwischen benachbarten Regionen (Gradient) gem. Algortihmus 2.

Kategorie: Funktion, bildverarbeitend, speziell

Aufruf : wing (original_ct, getrenntes_ct, seite, groessen_grenze, grenze) Eingaben : original_ct

Integerarray, 512x512, enthält ursprüngliches CT-Bild

getrenntes_ct

Integerarray, 512x512, enthält bearbeitetes CT-Bild, wobei die linke Lunge mit 1, die rechte mit 2 gekennzeichnet ist

seite

Integer, 1 schneidet linke Lunge aus

2 schneidet rechte Lunge aus

groessen_grenze

Integer, Anzahl der zusammenhängenden Pixel, ab der Gebiet als Gefäß erkannt wird

grenze

Integer, Wert in Hounsfield-Einheiten, der als untere Grenze für Gewebe angenommen wird

Ausgabe : Integerarray, 512x512, daß den jeweiligen Lungenflügel enthält, Restbereiche und Gefäße sind mit dem Wert 9999 belegt.

Historie : Erstellt von Andreas Staubi am 18.12.1998

Bemerkungen

Durch Verwendung interner Funktionen sehr langsam, bei größeren Datenmengen sollten temporäre Dateien erstellt werden, in denen die Ergebnis-Arrays abgelegt werden.

Name : auszaehlung.pro

Version : 15.12.1998

Zweck : Erstellung einer Häufigkeitstabelle aus Integerwerten in zweidimensionalen Arrays bei bekanntem Wertebereich

Kategorie: Funktion, statistisch, allgemein Aufruf : auszaehlung (array, wertebereich) Eingaben : array

Zweidimensionales Array, das die auszuzählenden Werte enthält

wertebereich

Obergrenze (Integerwert) des Wertebereichs (0... wertebereich)

Ausgabe : Zweidimensionales Array, erste Zeile enthält Werte von 0... wertebereich, zweite Zeile absolute Häufigkeiten

Historie : Erstellt von Andreas Staubi am 15.12.1998 Bemerkungen :

D.3. Quellcode

pro load_div, pfad, ct_cut_l, ct_cut_r

;***********************************************************************

;* Prozedur zum Einladen von CT-Bildern im angegebenen Pfad im .imx-Format

;* Einlesen von bildname.rol (bitmap-maske)

;* Aufruf von wing.pro, Speicherung der bearbeiteten Lungenflügel in

;* ct_cut_l und ct_cut_r

;* Aufruf : load_div, pfad, ct_cut_l, ct_cut_r

;* pfad=`c:\bilder\patientenname/nummer`

;***********************************************************************

; Definition der Integerarrays ct=intarr(512,512) ct_rol=intarr(512,512)

!order=1

;Einlesen .imx File in ct aktfile=pfad+'.imx' rdacr2rb,aktfile,ct,info,position=pos,parameter=par

;Einlesen .rol File in ct_rol aktfile=pfad+'.rol' ct_rol = READ_BMP(aktfile)

temp1=ct

temp2=ct

;Aufruf von wing.pro, Übergabe ct(temp1), ct_rol ;Seite: 1=links, 2=rechts, Mindestgröße der ausgeschnittenen Bereiche ;Grenzwert in HE

;Bereiche außerhalb der Lunge werden mit 9999 markiert ct_cut_l=wing(temp1,ct_rol,1,10,-750) ct_cut_r=wing(temp2,ct_rol,2,10,-750)

;Rückgabe an aufrufendes Programm return end

function wing, original_ct, getrenntes_ct, seite, groessen_grenze, grenze

;***********************************************************************

;* Funktion zum Markieren von Gewebebereichen, die nicht zum normalen

;* Lungengewebe gehören

;* Aufruf : wing(CT-Bild, .rol File, gewünschte Seite, Größe der Gebiete,

;* Dichtegrenze

;* CT-Bild: CT-Bild im 512x512 Integerarray

;* .rol File : 512x512 Integerarray, in dem die Lungenflügel markiert sind

;* Größe der Gebiete : Anzahl der zusammenhängenden Pixel

;* Dichtegrenze : Dichtewert, oberhalb dessen Gewebe nicht zur Lunge gehört

;***********************************************************************

;Definition der temporären Arrays ct_lt_grenze=intarr(512,512) ct_seite_lt_grenze=intarr(512,512)

;Rücksetzen der Variablen ct_lt_grenze(*,*)=0 ct_seite_lt_grenze(*,*)=0

;Markieren aller Werte < grenze mit Weiß(=1) temp=where(original_ct lt (1024+grenze)) ct_lt_grenze(temp)=1

;Ausschneiden Flügel aus ct_lt_grenze, Ergebnis : Alles größer ;Grenze in der gewählten Seite wird 0, alles andere 1 temp=where(getrenntes_ct ne seite)

;gewählte Seite bleibt, alles andere 1 ct_lt_grenze(temp)=1

;gewählte Seite bleibt, alles andere 9999 original_ct(temp)=9999

;Bestimmung der Gefäßbereiche ;alle Subskr. der Gefäße werden bestimmt temp=where(ct_lt_grenze eq 0) while temp(0) ge 0 do begin

;Bestimmung der Koordinaten aus den Subskripten x=temp(0) mod 512 y=floor(temp(0)/512)

;Start der Search2d Funktion, finden aller zusammenhängenden Pixel temp2=search2d(ct_lt_grenze,x,y) anzahl=n_elements(temp2)

;Markiert mit 2 wenn groß genug if anzahl gt groessen_grenze then begin ct_lt_grenze(temp2)=2 endif else begin

;Markierung weiß (1) wenn zu klein ct_lt_grenze(temp2)=1 endelse

;alle Subskr. der Gefäße temp=where(ct_lt_grenze eq 0) endwhile temp=where(ct_lt_grenze eq 2)

;Markierung aller Nicht-Lunge Bereiche mit 9999, Rückgabe an Aufrufer if temp(0) gt -1 then original_ct(temp)=9999 return, original_ct

end function reg_ei, ct, kantenlaenge, grenzwert

;***********************************************************************

;* Programm zum Bestimmen der regionalen Emphysemindices

;* Aufruf : reg_ei(lungenflügel, kantenlänge, grenzwert)

;* Funktion legt Gitter (Kantenlänge in Pixel) auf bearbeiteten Lungen

;* flügel, Bestimmung des regionalen EI's in jeder Region

;* Grenzwert (HE) = Unterer Grenzwert in EI Formel

;***********************************************************************

;Umrechnung HE grenze=1000+grenzwert

;Bestimmung der Kästchenanzahl in xy-Richtung zeilen=ceil(512/kantenlaenge) spalten=ceil(512/kantenlaenge)

;Definition eines Floatarrays zur Aufnahme der regionalen EI`s reggrid=fltarr(spalten,zeilen)

;Schleife über alle Kästchen ;äußere über Spalten, innere über Zeilen, ;ganz innen über Kästchenelemente for lauf1=1,spalten do begin for lauf2=1,zeilen do begin

;Bildung eines Ausschnitts aus CT in Kästchengröße temp=ct((lauf1-1)*kantenlaenge:lauf1*kantenlaenge-1,(lauf2- 1)*kantenlaenge:lauf2*kantenlaenge-1)

;Bestimmung aller Punkte im Ausschnitt/Kästchen temp1=where(temp lt 9999)

;Zählung der Punkte im Kästchen kleiner als 9999 n_temp1=n_elements(temp1)

;Index wird nur bestimmt, wenn mindestens zwei gültige Pixel im Ausschnitt ;ansonsten wird die Region mit 999 als ungültig markiert if n_temp1 gt 1 then begin

;Bestimmung der Punkte im Kästchen kleiner der Grenze lt_grenze=where(temp lt grenze)

;Wenn ein Punkt unterhalb der Grenze, dann Indexberechnung, ansonsten ;wird der Index auf 0 gesetzt if lt_grenze(0) gt -1 then begin

n_lt_grenze=n_elements(lt_grenze)

;Berechnung des regionalen Emphysemindex im Bereich Grenze reggrid(lauf1-1,lauf2-1)=(n_lt_grenze*100./n_temp1)

endif else begin

;Nullsetzen, wenn kein Punkt unterhalb des Grenzwertes liegt reggrid(lauf1-1,lauf2-1)=0

endelse

endif else begin

;Markierung des ungültigen Bereiches mit 999 reggrid(lauf1-1,lauf2-1)=999

endelse

endfor

endfor

;Rückgabe an aufrufendes Programm return, reggrid end

pro reg_ei_eval_1, ct, ct_eval, ct_eval_grad, ct_eval_value, grenzwerte

;***********************************************************************

;* Prozedur zur Bewertung der Verteilung der regionalen EI`s

;* Aufruf : reg_ei_eval_1,ct,ct_eval,ct_eval_grad,ct_eval_value,grenzwerte

;* Eingabe : Bearbeiteter Lungenflügel (ct)

;* Grenzwerte = [Untere Grenze für die Höhe des EI (%max), obere Grenze für

;* die Höhe (%max), Untere Grenze für Gradient, obere Grenze für Gradient,

;* Kantenlänge

;* der Regionen (reg_ei.pro), Dichtegrenzwert für EI-

;* Bestimmung(reg_ei.pro)]

;* Gesamtbewertung wird ausgegeben in ct_eval (Punkte 0...6)

;* Bewertung nach Höhe (0...2 Punkte) in ct_eval_value

;* Bewertung nach Gradient (0...4) in ct_eval_value

;***********************************************************************

!order=1

;Bestimmung der Grenzwerte aus dem übergebenen Array limit_hoehe=grenzwerte(0:1) limit_grad=grenzwerte(2:3) kaestchen=fix(grenzwerte(4)) dichtegrenze=grenzwerte(5)

;Aufruf von reg_ei.pro, Bestimmung der regionalen EIs ct_ei=reg_ei(ct,kaestchen,dichtegrenze)

;Bestimmung der von reg_ei als ungültig markierten Bereiche temp1=where(ct_ei eq 999)

;Umrechnung der Gradientengrenzwerte in Prozent grad_grenze=100*limit_grad

;Bestimmung des maximalen EI im untersuchten Lungenflügel temp2=ct_ei temp2(temp1)=0 basis=max(temp2)

;Festlegung der Grenzwerte für die Höhe (Maximum*%max) wert_grenze=basis*limit_hoehe

;Festlegung der Dimensionen der Ergebnisarrays temp3=size(ct_ei) spalten=temp3(1) zeilen=temp3(2)

;Definition der (Zwischen-) Ergebnisarrays

;Gesamtbewertung ct_eval=intarr(spalten,zeilen)

;Bewertung nach Wert ct_eval_value=intarr(spalten,zeilen)

;Bewertung nach Gradient, Zeilenweise ct_eval_grad_row=intarr(spalten,zeilen)

;Bewertung nach Gradient, Spaltenweise ct_eval_grad_col=intarr(spalten,zeilen)

;Bewertung nach Gradient ct_eval_grad=intarr(spalten,zeilen)

;Ausfüllen mit ungültig (=999)

Abbildung in dieser Leseprobe nicht enthalten

;--------------------------------------------------------------------------

;BEWERTUNG nach Höhe des EI

;--------------------------------------------------------------------------

;Finden aller ungültigen Bereiche im Lungenflügel temp4=where(ct_ei lt 999)

;Wenn gültige Felder vorhanden (d.h. Lunge), dann erfolgt Berechnung if temp4(0) gt -1 then begin

;Schleife über alle gültigen Felder for lauf1=0,n_elements(temp4)-1 do begin

;Bewertung in Abhängigkeit von der Höhe des EI case 1 of abs(ct_ei(temp4(lauf1))) le wert_grenze(0):bewert_value=0

abs(ct_ei(temp4(lauf1))) le wert_grenze(1) and (abs(ct_ei(temp4(lauf1))) gt wert_grenze(0)):bewert_value=1

abs(ct_ei(temp4(lauf1))) gt wert_grenze(1):bewert_value=2 endcase

;Zuweisung der Bewertungspunktzahl zum entsprechnden Feld im Ergebnisarray ct_eval_value(temp4(lauf1))=bewert_value

endfor

endif

;BEWERTUNG nach Gradient, Algorithmus 1

;ZEILENWEISE

;Schleife über alle Zeilen for lauf1=0,zeilen-1 do begin

;Einlesen der Zeile in temp ct_zeile=ct_ei(*,lauf1)

;Überprüfung, ob die Zeile schon Lunge enthält, wenn ja, Start ct_zeile_lunge=where(ct_zeile lt 999) if ct_zeile_lunge(0) gt -1 then begin

;Festlegung der Grenzen (äußerstes linkes/rechtes Feld beginn_links=min(ct_zeile_lunge) beginn_rechts=max(ct_zeile_lunge)

;RESET der Laufvariable lauf2=0

;Schleife von links nach rechts über alle Felder in der Zeile for lauf2=beginn_links, beginn_rechts-1 do begin temp_lauf=0

;Überprüfung, ob aktuelles Feld gültig ist if ct_zeile(lauf2) lt 999 then begin

;Überprüfung, ob rechter Nachbar gültig if ct_zeile(lauf2+1) eq 999 then begin

;wenn ungültig, wird das nächste gültige Feld gesucht repeat begin temp_lauf=temp_lauf+1

endrep until ct_zeile(lauf2+1+temp_lauf) lt 999

endif

;Bildung des Gradienten differenz=ct_zeile(lauf2+1+temp_lauf)-ct_zeile(lauf2)

;Ermittlung der Bewertung

case 1 of

abs(differenz) le grad_grenze(0):bewertung=0

abs(differenz) gt grad_grenze(0) and (abs(differenz) le grad_grenze(1)):bewertung=1

abs(differenz) gt grad_grenze(1):bewertung=2

endcase

;Zuordnung der Bewertung zu den Feldern (aktuelles + benachbart) ct_eval_grad_row(lauf2,lauf1)=bewertung ct_eval_grad_row(lauf2+1+temp_lauf,lauf1)=bewertung

;Überspringen der ungültigen Felder lauf2=lauf2+temp_lauf

Abbildung in dieser Leseprobe nicht enthalten

;SPALTENWEISE

;Schleife über alle Spalten for lauf1=0,spalten-1 do begin

;Einlesen der aktuellen Spalte ct_spalte=ct_ei(lauf1,*) ct_spalte_lunge=where(ct_spalte lt 999)

;Wenn in eingelesener Zeile gültige Elemente, dann Start if ct_spalte_lunge(0) gt -1 then begin

;Bestimmung von oberem/unterem Ende beginn_oben=min(ct_spalte_lunge) beginn_unten=max(ct_spalte_lunge) lauf2=0

;Schleife über die Elemente in aktueller Spalte von oben nach unten for lauf2=beginn_oben, beginn_unten-1 do begin temp_lauf=0

;Wenn aktuelle Region gültig, dann Start if ct_spalte(lauf2) lt 999 then begin

;Überprüfung, ob Nachbar gültig if ct_spalte(lauf2+1) eq 999 then begin

;wenn Nachfolger ungültig, Suche des nächsten gültigen Feldes repeat begin

Abbildung in dieser Leseprobe nicht enthalten

;Ermittlung des Gradienten

differenz=ct_spalte(lauf2+1+temp_lauf)-ct_spalte(lauf2)

;Ermittlung der Bewertung

case 1 of

abs(differenz) le grad_grenze(0):bewertung=0

abs(differenz) gt grad_grenze(0) and (abs(differenz) le grad_grenze(1)):bewertung=1

abs(differenz) gt grad_grenze(1):bewertung=2

endcase

;Zuordnung der ermittelten Bewertung zur Region ct_eval_grad_col(lauf1,lauf2)=bewertung ct_eval_grad_col(lauf1,lauf2+1+temp_lauf)=bewertung

;Überspringen der ungültigen Felder lauf2=lauf2+temp_lauf endif

endfor

endif

endfor

;Berechnung der verschiedenen Ergebnisse temp=where(ct_ei lt 999)

;Zusammenführung der Ergebnisse, wenn gültige Felder vorhanden if temp(0) gt -1 then begin

ct_eval_grad(temp)=ct_eval_grad_row(temp)+ct_eval_grad_col(temp) ct_eval(temp)=ct_eval_grad(temp)+ct_eval_value(temp)

endif

endpro reg_ei_eval_2, ct, ct_eval, ct_eval_grad, ct_eval_value, grenzwerte

;***********************************************************************

;* Prozedur zur Bewertung der Verteilung der regionalen EI`s

;* Aufruf : reg_ei_eval_1,ct,ct_eval,ct_eval_grad,ct_eval_value,grenzwerte

;* Eingabe : Bearbeiteter Lungenflügel (ct)

;* Grenzwerte = [Untere Grenze für die Höhe des EI (%max), obere Grenze für

;* die Höhe (%max), Untere Grenze für Gradient, obere Grenze für Gradient,

;* Kantenlänge

;* der Regionen (reg_ei.pro), Dichtegrenzwert für EI-

;* Bestimmung(reg_ei.pro)]

;* Gesamtbewertung wird ausgegeben in ct_eval (Punkte 0...6)

;* Bewertung nach Höhe (0...2 Punkte) in ct_eval_value

;* Bewertung nach Gradient (0...4) in ct_eval_value

;***********************************************************************

!order=1

;Bestimmung der Grenzwerte aus dem übergebenen Array limit_hoehe=grenzwerte(0:1) limit_grad=grenzwerte(2:3) kaestchen=fix(grenzwerte(4)) dichtegrenze=grenzwerte(5)

;Aufruf von reg_ei.pro, Bestimmung der regionalen EIs ct_ei=reg_ei(ct,kaestchen,dichtegrenze)

;Bestimmung der von reg_ei als ungültig markierten Bereiche temp1=where(ct_ei eq 999)

;Umrechnung der Gradientengrenzwerte in Prozent grad_grenze=100*limit_grad

;Bestimmung des maximalen EI im untersuchten Lungenflügel temp2=ct_ei temp2(temp1)=0 basis=max(temp2)

;Festlegung der Grenzwerte für die Höhe (Maximum*%max) wert_grenze=basis*limit_hoehe

;Festlegung der Dimensionen der Ergebnisarrays temp3=size(ct_ei) spalten=temp3(1) zeilen=temp3(2)

;Definition der (Zwischen-) Ergebnisarrays

;Gesamtbewertung ct_eval=intarr(spalten,zeilen)

;Bewertung nach Wert ct_eval_value=intarr(spalten,zeilen)

;Bewertung nach Gradient, Zeilenweise ct_eval_grad_row=intarr(spalten,zeilen)

;Bewertung nach Gradient, Spaltenweise ct_eval_grad_col=intarr(spalten,zeilen)

;Bewertung nach Gradient ct_eval_grad=intarr(spalten,zeilen)

;Ausfüllen mit ungültig (=999)

Abbildung in dieser Leseprobe nicht enthalten

;BEWERTUNG nach Höhe des EI

;Finden aller ungültigen Bereiche im Lungenflügel temp4=where(ct_ei lt 999)

;Wenn gültige Felder vorhanden (d.h. Lunge), dann erfolgt Berechnung if temp4(0) gt -1 then begin

;Schleife über alle gültigen Felder for lauf1=0,n_elements(temp4)-1 do begin

;Bewertung in Abhängigkeit von der Höhe des EI

case 1 of

abs(ct_ei(temp4(lauf1))) le wert_grenze(0):bewert_value=0

abs(ct_ei(temp4(lauf1))) le wert_grenze(1) and (abs(ct_ei(temp4(lauf1))) gt wert_grenze(0)):bewert_value=1

abs(ct_ei(temp4(lauf1))) gt wert_grenze(1):bewert_value=2

endcase

;Zuweisung der Bewertungspunktzahl zum entsprechnden Feld im Ergebnisarray ct_eval_value(temp4(lauf1))=bewert_value

endfor

endif

;BEWERTUNG nach Gradient, Algorithmus 2

;ZEILENWEISE

;Schleife über alle Zeilen for lauf1=0,zeilen-1 do begin

;Einlesen der aktuellen Zeile ct_zeile=ct_ei(*,lauf1) ct_zeile_lunge=where(ct_zeile lt 999)

;Überprüfung, ob aktuelle Zeile gültige Felder enthält, Start, wenn ja if ct_zeile_lunge(0) gt -1 then begin

;Bestimmung der äußeren Randpunkte, Startpunkt (Zeilenminimum) minima=where(ct_zeile eq min(ct_zeile)) start_punkt=minima(0) beginn_links=min(ct_zeile_lunge) beginn_rechts=max(ct_zeile_lunge)

bewert_grad=0

;Definition : Startpunkt bekommt Bewertung 0

ct_eval_grad_row(start_punkt,lauf1)=0 lauf2=0

;Durchlaufen der Zeile vom Startpunkt nach links for lauf2=start_punkt, beginn_links+1, -1 do begin temp_lauf=0

;Prüfung, ob aktuelles Feld gültig if ct_zeile(lauf2) lt 999 then begin

;Prüfung, ob linker Nachbar gültig if ct_zeile(lauf2-1) lt 999 then begin

;Bestimmung der Differenz/Gardient differenz=ct_zeile(lauf2)-ct_zeile(lauf2-1) endif else begin

;Suche nach nächstem gültigen Feld, wenn linker Nachbar ungültig repeat begin temp_lauf=temp_lauf-1

endrep until ct_zeile(lauf2-1+temp_lauf) lt 999

;Bestimmung des Gradienten zum nächsten gültigen Feld

differenz=ct_zeile(lauf2)-ct_zeile(lauf2-1+temp_lauf)

endelse

endif

;Ermittlung der Bewertung (-2...2)

case 1 of

abs(differenz) le grad_grenze(0):bewertung=0

differenz gt grad_grenze(0) and (differenz le grad_grenze(1)):bewertung=1

differenz gt grad_grenze(1):bewertung=2

differenz lt -grad_grenze(0) and (differenz ge -grad_grenze(1)):bewertung=-1

differenz lt -grad_grenze(1):bewertung=-2

endcase

;Ermittlung der Bewertung aktuelles Feld durch Addition bewert_grad=bewert_grad+bewertung

;Zuordnung der Bewertung zum Feld links des aktuellen ct_eval_grad_row(lauf2-1+temp_lauf,lauf1)=bewert_grad lauf2=lauf2+temp_lauf

endfor

lauf2=0

;Durchlauf vom Startpunkt nach rechts, analog oben

for lauf2=start_punkt, beginn_rechts-1 do begin temp_lauf=0

;Wenn aktuelles Feld gültig, dann Start if ct_zeile(lauf2) lt 999 then begin

;Wenn rechter Nachbar gültig, dann Start if ct_zeile(lauf2+1) lt 999 then begin

;Gradientenermittlung differenz=ct_zeile(lauf2+1)-ct_zeile(lauf2)

endif else begin

;Suche nach nächstem gültigen Feld, wenn direkter Nachbar ungültig repeat begin temp_lauf=temp_lauf+1

endrep until ct_zeile(lauf2+1+temp_lauf) lt 999

differenz=ct_zeile(lauf2+1+temp_lauf)-ct_zeile(lauf2)

endelse

endif

;Ermittlung der Bewertung

case 1 of

abs(differenz) le grad_grenze(0):bewertung=0

differenz gt grad_grenze(0) and (differenz le grad_grenze(1)):bewertung=1

differenz gt grad_grenze(1):bewertung=2

differenz lt -grad_grenze(0) and (differenz ge -grad_grenze(1)):bewertung=-1

differenz lt -grad_grenze(1):bewertung=-2

endcase

;Ermittlung der Bewertung durch Addition

bewert_grad=bewert_grad+bewertung

;Zuordnung der Bewertung zum aktuellen Feld

ct_eval_grad_row(lauf2,lauf1)=bewert_grad

lauf2=lauf2+temp_lauf endfor

;Definition: Rechts außen gleiche Bewertung wie Punkt links davon

ct_eval_grad_row(beginn_rechts,lauf1)=ct_eval_grad_row(beginn_rechts-1,lauf1)

endif

endfor

;SPALTENWEISE

;Schleife über alle Spalten for lauf1=0,spalten-1 do begin

;Einlesen der aktuellen Spalte ct_spalte=ct_ei(lauf1,*) ct_spalte_lunge=where(ct_spalte lt 999)

p>;Wenn gültige Felder in aktueller Spalte, dann Start if ct_spalte_lunge(0) gt -1 then begin

;Bestimmung oberer/unterer Randpunkt, Startpunkt minima=where(ct_spalte eq min(ct_spalte)) start_punkt=minima(0) beginn_oben=min(ct_spalte_lunge) beginn_unten=max(ct_spalte_lunge) bewert_grad=0

;Definition: Startpunkt wird Bewertung 0 zugeordnet ct_eval_grad_col(lauf1,start_punkt)=0 lauf2=0

;Durchlauf der Spalte vom Startpunkt nach oben for lauf2=start_punkt, beginn_oben+1, -1 do begin temp_lauf=0

;Wenn aktuelles Feld gültig, dann Start if ct_spalte(lauf2) lt 999 then begin

;Überprüfung, ob oberer Nachbar gültig, Start wenn ja if ct_spalte(lauf2-1) lt 999 then begin

;Ermittlung des Gradienten differenz=ct_spalte(lauf2)-ct_spalte(lauf2-1)

endif else begin

;Wenn Nachbar ungültig, dann Suche nach gültigem Feld repeat begin temp_lauf=temp_lauf-1

endrep until ct_spalte(lauf2-1+temp_lauf) lt 999 differenz=ct_spalte(lauf2)-ct_spalte(lauf2-1+temp_lauf)

endelse

endif

;Ermittlung der Bewertung

case 1 of

abs(differenz) le grad_grenze(0):bewertung=0

differenz gt grad_grenze(0) and (differenz le grad_grenze(1)):bewertung=1

differenz gt grad_grenze(1):bewertung=2

differenz lt -grad_grenze(0) and (differenz ge -grad_grenze(1)):bewertung=-1

differenz lt -grad_grenze(1):bewertung=-2

endcase

;Ermittlung der Bewertung durch Addition bewert_grad=bewert_grad+bewertung

;Zuordnung der Bewertung zum oberen Punkt ct_eval_grad_col(lauf1,lauf2-1+temp_lauf)=bewert_grad lauf2=lauf2+temp_lauf endfor lauf2=0

;Durchlauf vom Startpunkt nach unten for lauf2=start_punkt, beginn_unten-1 do begin temp_lauf=0

;Aktuelles Feld gültig ? if ct_spalte(lauf2) lt 999 then begin

;Unterer Nachbar gültig ? if ct_spalte(lauf2+1) lt 999 then begin

;Ermittlung des Gradienten differenz=ct_spalte(lauf2+1)-ct_spalte(lauf2) endif else begin

;Suche nach nächstem gültigen Feld, wenn Nachbar ungültig repeat begin temp_lauf=temp_lauf+1

endrep until ct_spalte(lauf2+1+temp_lauf) lt 999 differenz=ct_spalte(lauf2+1+temp_lauf)-ct_spalte(lauf2)

endelse

endif

;Ermittlung der Bewertung

case 1 of

abs(differenz) le grad_grenze(0):bewertung=0

differenz gt grad_grenze(0) and (differenz le grad_grenze(1)):bewertung=1

differenz gt grad_grenze(1):bewertung=2

differenz lt -grad_grenze(0) and (differenz ge -grad_grenze(1)):bewertung=-1

differenz lt -grad_grenze(1):bewertung=-2

endcase

;Bestimmung der zuzuordnenden Bewertung bewert_grad=bewert_grad+bewertung

;Zuordnung der Bewertung zum aktuellen Feld ct_eval_grad_col(lauf1,lauf2)=bewert_grad lauf2=lauf2+temp_lauf endfor

;Definition : Rechts außen gleiche Bewertung wie der Punkt davor ct_eval_grad_col(lauf1,beginn_unten)=ct_eval_grad_col(lauf1,beginn_unten-1)

endif

endfor

;Zusammenfassung der Teilergebnisse durch Addition temp=where(ct_ei lt 999) if temp(0) gt -1 then ct_eval_grad(temp)=ct_eval_grad_row(temp)+ct_eval_grad_col(temp)

;Nullsetzen aller Bereiche, wo Bewertungen kleiner Null temp1=where(ct_eval_grad lt 0) if temp1(0) gt -1 then ct_eval_grad(temp1)=0 if temp(0) gt -1 then ct_eval(temp)=ct_eval_grad(temp)+ct_eval_value(temp)

;Setzen aller Bereiche >6 =6 temp1=where((ct_eval gt 6) and (ct_eval lt 999)) if temp1(0) gt -1 then ct_eval(temp1)=6

end

function auszaehlung, array, wertebereich

;***********************************************************************

;* Funktion zur Erstellung von Häufigkeitstabellen

;* Aufruf : auszaehlung(array, wertebereich)

;* Eingabe : Zweidim. Array bel. Größe, Obergrenze Wertebereich

;* Ausgabe : Zweidim, Array, 1. Zeile enthält Wert (0...Maximum)

;* 2. Zeile enthält absolute Häufigkeit

;***********************************************************************

;Definition des Ergebnisarrays result=intarr(wertebereich+1,2)

;Schleife über alle möglichen Werte for lauf1=0,wertebereich do begin temp=where(array eq lauf1) if temp(0) eq -1 then begin anzahl=0 endif else begin anzahl=n_elements(temp) endelse

;1.Zeile Wert - 2.Zeile Häufigkeit result(lauf1,0)=lauf1 result(lauf1,1)=anzahl

endfor

return, result

end

PRO Studaus

;***********************************************************************

;* Programm zur Auswertung von CT-Studien

;* Erstellt von R.Blechschmidt unter Verwendung von Modulen von

;* Andreas Staubi

;* Programm wertet vorher erstellte Datenfiles (Lungenflügel) aus

;* und speichert Ergebnisse in Textfile für die Auswertung

;***********************************************************************

; Vorbereitungen

WINDOW, 0, XSIZE=512, YSIZE=512, Title='CT-Bild'

!order=1

; Pfadeinstellungen path="H:\images\"

;Übergabepfad für Suche nach Bildern ergebnisfile='h:\temp\aus_andreas1.txt'

; Protokoll:

; aus_st3.dat CT02 nur 1. Studie nur 2.,3. und 4. Bild

; aus_st4.dat CT02 nur 1. Studie nur 2.,3. und 4. Bild Emphyse; manteil von 50% bis 100%

; aus_st5.dat CT02 nur 1. Studie nur 2.,3. und 4. Bild Emphysem von 0-100% in 10% Schritten

; Einlesen aller Unterverzeichnisse mit CT-Bildern ordner=FINDFILE(path+'*.*')

; String-Array mit allen Unterverzeichnissen

; ordner(0) = I:\imgdsk\IMAGES\.\

; ordner(1) = I:\imgdsk\IMAGES\..\

; ordner(2) = I:\imgdsk\IMAGES\001BOET\

; ordner(3) = I:\imgdsk\IMAGES\002BROD\

; Anzahl der Verzeichnisse

AnzVerz=n_elements(ordner) ordner=ordner(sort(ordner)) print,"Gefundene Verzeichnisse: ",anzVerz print,'Übersichtstabelle:'

FOR k=0,anzverz-1 DO Print,string(k)+' '+ordner(k) BegVerz=58 endeVerzeichnis=anzverz-1

; Begrenzung auf bestimmte Verzeichnisse ; begVerz=11

; endeVerzeichnis=4

; Begrenzung auf bestimmte Bilder b_1=0 ; default =0 b_2=5 ; default =5

; Begrenzung auf bestimmte Studien s_1=0 ; default =0 s_2=1 ; default =1

print,'Verzeichnis:',path

print,"Begin und Ende :",begverz,endeverzeichnis

print,"Bilder von",b_1,' bis ',b_2

print,"Studie: ",s_1, 'bis ',s_2 print,''

print,'ERGEBNISFILE: ',ergebnisfile

stop

; Schleife mit allen Unterverzeichnissen FOR verz=BegVerz,endeVerzeichnis DO BEGIN

; Suche nach infofiles

; String-Array mit allen Unterverzeichnissen info=FINDFILE(ordner(verz)+'*_i.dat')

print,'gefundene Info-Datei',info(0) ctbilder=makestud(info(0),lufudaten=lufudat,lufuvariablen=lufuvar) print,'makestud liest Lufuvariablen und Werte ein: ' print,lufudat,lufuvar

; -Spezieller Teil- Ergebnisvariablen Deklarationergebnis=intarr(14,3)

; Ergebniss-Array in dem ergebnis_m1 und ergebnis_m2 über alle Bilder (12) gemittelt werden

anzahl_bilder_eff=0

;========================================================== Andreas Staubi

FOR Studie=s_1,s_2 DO BEGIN ; 2 Bildserien (ima,ima+1)

FOR Bild=b_1,b_2 DO BEGIN ; 6 Einzelbilder einlesen

IF ctbilder(bild,studie,1) ne '' THEN BEGIN

; Vorbearbeitet CT-Bilder mit ausgeschnittenen Gefäßen ct_l=intarr(512,512) ct_r=intarr(512,512) pos=rstrpos(ctbilder(bild,studie,1),'.rol') datname_kern=strmid(ctbilder(bild,studie,1),0,pos) openr,1,datname_kern+'.w_l' readu,1,ct_l close,1 openr,1,datname_kern+'.w_r' readu,1,ct_r close,1

; Parameter für Studie

; In Prozentpunkten Höhe Sprung

limit_grad=[0.15,0.35]

limit_hoehe=[0.15,0.35] ; Prozent von Max EI

kaestchen=5 ; in Pixeln dichtegrenze=-930 ; Dichte für RegEI grenzwerte=[limit_hoehe,limit_grad,kaestchen,dichtegrenze]

;Methode 1 einfache Methode Vergleich Nachbarn

reg_ei_eval_1, ct_l, ct_eval_l, ct_eval_grad_l, ct_eval_value_l, grenzwerte reg_ei_eval_1, ct_r, ct_eval_r, ct_eval_grad_r, ct_eval_value_r, grenzwerte

;Auszählung der Punktwertungen, Werte 0...6 ergebnis_l=auszaehlung(ct_eval_l,6) ergebnis_r=auszaehlung(ct_eval_r,6)

;Zusammenfassung der Teilergebnisse, erst links, dann rechts

ergebnis_m1=intarr(7,3)

ergebnis_m1(*,0)=ergebnis_l(*,0)

ergebnis_m1(*,1)=ergebnis_l(*,1)

ergebnis_m1(*,2)=ergebnis_r(*,1)

ergebnis(0:6,*)=ergebnis(0:6,*)+ergebnis_m1(*,*);

print, 'datname: '+datname_kern+' Methode 1 ' print,ergebnis_m1

;Methode 2

reg_ei_eval_2, ct_l, ct_eval_l, ct_eval_grad_l, ct_eval_value_l, grenzwerte

reg_ei_eval_2, ct_r, ct_eval_r, ct_eval_grad_r, ct_eval_value_r, grenzwerte

;Auszählung der Punktwertungen, Werte 0...6 ergebnis_l=auszaehlung(ct_eval_l,6) ergebnis_r=auszaehlung(ct_eval_r,6)

;Zusammenfassung der Teilergebnisse, erst links, dann rechts

ergebnis_m2=intarr(7,3)

ergebnis_m2(*,0)=ergebnis_l(*,0)

ergebnis_m2(*,1)=ergebnis_l(*,1)

ergebnis_m2(*,2)=ergebnis_r(*,1)

ergebnis(7:13,*)=ergebnis(7:13,*)+ergebnis_m2(*,*);

anzahl_bilder_eff=anzahl_bilder_eff+1

print, 'datname: '+datname_kern+' Methode 2 '

print,ergebnis_m2

print, 'datname: '+datname_kern+' gesamt'

print,ergebnis

ENDIF

ENDFOR

; Berechnung Kantenlänge

;Kantenlaenge=round(sqrt (100/(float(par.pixsizex)*float(par.pixsizey))))

;print,'kantenlaenge',kantenlaenge

; 2 Bildserien (ima,ima+1) ENDE ENDFOR

print, 'datname: '+datname_kern+' gesamt alle Bilder vor Mittelung' print,ergebnis

ergebnis(*,*)=ergebnis(*,*)/anzahl_bilder_eff

print, 'datname: '+datname_kern+' gesamt alle Bilder beider Studien gemittelt n=',anzahl_bilder_eff

print,ergebnis

;========================================================== Andreas Staubi

;--------------------------------------------------------------------------

;Bestimmung der Variablen für Textdatei

;Einfügen der Trennzeichen

datavar='lim_gra1'+string(9b)+'lim_gra2'+string(9b)+'lim_hoe1'+string(9b)+'li m_hoe2'+string(9b)+'reg_laen' datavar=datavar+string(9b)+'limRegEI'+string(9b)+'?'+string(9b)+'?'+string(9b )+'?'

datavar=datavar+string(9b)+'AnzM1RG0'+string(9b)+'AnzM1RG1'+string(9b) +'AnzM1RG2' datavar=datavar+string(9b)+'AnzM1RG3'+string(9b)+'AnzM1RG4'+string(9b) +'AnzM1RG5'

datavar=datavar+string(9b)+'AnzM1RG6'

datavar=datavar+string(9b)+'AnzM1LG0'+string(9b)+'AnzM1LG1'+string(9b) +'AnzM1LG2' datavar=datavar+string(9b)+'AnzM1LG3'+string(9b)+'AnzM1LG4'+string(9b) +'AnzM1LG5'

datavar=datavar+string(9b)+'AnzM1LG6'

datavar=datavar+string(9b)+'AnzM2RG0'+string(9b)+'AnzM2RG1'+string(9b) +'AnzM2RG2' datavar=datavar+string(9b)+'AnzM2RG3'+string(9b)+'AnzM2RG4'+string(9b) +'AnzM2RG5'

datavar=datavar+string(9b)+'AnzM2RG6'

datavar=datavar+string(9b)+'AnzM2LG0'+string(9b)+'AnzM2LG1'+string(9b) +'AnzM2LG2'

datavar=datavar+string(9b)+'AnzM2LG3'+string(9b)+'AnzM2LG4'+string(9b) +'AnzM2LG5' datavar=datavar+string(9b)+'AnzM2LG6'

;--------------------------------------------------------------------

data=string(limit_grad[0] )+string(9b)+string(limit_grad[1] )+string(9b)+string( limit_hoehe[0] )+string(9b)+string(limit_hoehe[1] )+string(9b)+string(kaestche n) data=data+string(9b)+string(dichtegrenze)+string(9b)+string(0)+string(9b)+str ing(0)+string(9b)+string(0)

data=data+string(9b)+string(ergebnis(0,1))+string(9b)+string(ergebnis(1,1))+st ring(9b)+string(ergebnis(2,1)) data=data+string(9b)+string(ergebnis(3,1))+string(9b)+string(ergebnis(4,1))+st ring(9b)+string(ergebnis(5,1))

data=data+string(9b)+string(ergebnis(6,1))

data=data+string(9b)+string(ergebnis(0,2))+string(9b)+string(ergebnis(1,2))+st ring(9b)+string(ergebnis(2,2)) data=data+string(9b)+string(ergebnis(3,2))+string(9b)+string(ergebnis(4,2))+st ring(9b)+string(ergebnis(5,2))

data=data+string(9b)+string(ergebnis(6,2))

data=data+string(9b)+string(ergebnis(7,1))+string(9b)+string(ergebnis(8,1))+st ring(9b)+string(ergebnis(9,1)) data=data+string(9b)+string(ergebnis(10,1))+string(9b)+string(ergebnis(11,1)) +string(9b)+string(ergebnis(12,1))

data=data+string(9b)+string(ergebnis(13,1))

data=data+string(9b)+string(ergebnis(7,2))+string(9b)+string(ergebnis(8,2))+st ring(9b)+string(ergebnis(9,2)) data=data+string(9b)+string(ergebnis(10,2))+string(9b)+string(ergebnis(11,2)) +string(9b)+string(ergebnis(12,2))

data=data+string(9b)+string(ergebnis(13,2))

;--------------------------------------------------------------------------

OPENW,2,ergebnisfile, Error=err, /append

PRINTF,2,lufuvar+string(9b)+datavar+string(9b)+'Ende Variablennamen'

PRINTF,2,lufudat+string(9b)+data+string(9b)+'Ende Daten' Close,2

ENDFOR

print,'STUDAUS erfolgreich beendet... END

E. Statistische Auswertung

Sowohl für den U-Test als auch für die Effizienzüberprüfung durch die Vierfeldertabelle müssen die Daten anhand der zugrunde gelegten Testgrößen gruppiert werden. Tabelle 5 zeigt die Gruppierung und die verwendeten Grenzen:

Abbildung in dieser Leseprobe nicht enthalten

Tabelle 5

Die folgende Tabelle 6 zeigt die Testkombinationen im Überblick. Die zu testenden Größen werden jeweils für die Grenzwerte -910 HE, -930 HE und -950 HE ermittelt.

Abbildung in dieser Leseprobe nicht enthalten

Tabelle 6

E.1. Vergleich der Methoden mit Hilfe des U-Tests

Der U-Test, ein Rangsummentest für den Vergleich zweier unabhängiger Stichproben bei nicht normalverteilten Grundgesamtheiten, geht davon aus, daß die n=n1+n2Beobachtungen der Größe nach angeordnet und nummeriert werden, und zwar von 1 bis n. Weist die eine Stichprobe im Durchschnitt kleinere Werte als die andere Stichprobe auf, so werden sich die Rangsummen beider Stichproben unterscheiden. (zur Berechnung der Prüfgröße und Durchführung des Tests siehe [Sachs92] oder [Hart95]).

Beispiel : Stichprobe 1 : Gruppe 0 (gesund)

Stichprobe 2 : Gruppe 1 (krank)

Beobachtung 1 : Maßzahlen der Gruppe 0

Beobachtung 2 : Maßzahlen der Gruppe 1

Der Unterschied zwischen den Stichproben ist signifikant, wenn die berechnete Signifikanz unterhalb des vorgegebenen Signifikanzniveaus liegt. Ein Signifikanzniveau von 0,05 wird als ausreichend angesehen, bei besonders hohen Anforderungen an die Trennschärfe wird ein Signifikanzniveau von 0,01 vorgegeben.

Die berechnete Signifikanz kann nur verwendet werden, um die Unterscheidung zweier Stichproben als signifikant oder nicht zu qualifizieren, quantitative Aussagen oder Vergleiche mit den Signifikanzen anderer Maßzahlen sind nicht möglich.

E.1.1 Ergebnisse des U-Testes

Nachfolgend sind die Ergebnisse des U-Testes gelistet. Dabei bedeuten :

Abbildung in dieser Leseprobe nicht enthalten

Tabelle 7

Kombinationen mit einem Signifikanzniveau größer 0,01 sind hellgrau, solche mit einer Signifikanz größer 0,05 dunkelgrau unterlegt.

Abbildung in dieser Leseprobe nicht enthalten

Tabelle 8

E.2. Eignungsprüfung mit Hilfe der Vierfeldertafel

Aufgrund eines diagnostischen Tests, der positiv oder negativ ausfallen kann, wird auf die Existenz einer Krankheit geschlossen bzw. angenommen, die Krankheit liege nicht vor. Wichtige bedingte Wahrscheinlichkeiten, die die Brauchbarkeit eines diagnostischen Tests zur Erkennung einer Krankheit charakterisieren, sind :

1. Spezifität: Wahrscheinlichkeit, mit der ein Gesunder ein negatives Testergebnis aufweist.
2. Sensitivität: Wahrscheinlichkeit, mit der ein Kranker ein positives Testergebnis aufweist.
3. Voraussagewert eines negativen Tests: Der Anteil der Gesunden unter den Personen mit negativen Testergebnissen.
4. Voraussagewert eines positiven Tests: Der Anteil der Kranken unter den Personen mit positiven Testergebnissen.

Zur Bestimmung dieser Wahrscheinlichkeiten aus Stichproben wird die Vierfeldertafel eingesetzt :

Abbildung in dieser Leseprobe nicht enthalten

Tabelle 9

Daraus ergibt sich für

1. die Sensitivität [Abbildung in dieser Leseprobe nicht enthalten]

2. die Spezifität [Abbildung in dieser Leseprobe nicht enthalten]

3. den Voraussagewert eines pos. Tests [Abbildung in dieser Leseprobe nicht enthalten]

4. den Voraussagewert eines neg. Tests [Abbildung in dieser Leseprobe nicht enthalten]

Für den Test mit der Vierfeldertafel müssen die Daten sowohl nach den Testgrößen (VT/LuFu, CT, RV - Einteilung siehe Anhang E.) in gesund bzw. krank gruppiert als auch nach den zu testenden Größen in zwei Gruppen - als krank erkannt, als gesund erkannt - eingeteilt werden. Dabei stellt sich das Problem der zu verwendenden Grenzwerte. Zur Ermittlung wurde folgendermaßen vorgegangen:

1. Bildung der Gruppeneinteilung (Gruppe 0 = ,,sicher gesund" - Gruppe 1 = ,,sicher krank") anhand der Expertenbewertung
2. Ermittlung der arithmetischen Mittel und der Standardabweichungen der Maßzahlen in jeder Gruppe
3. Der Grenzwert, unterhalb dessen der Test zur Diagnose gesund, oberhalb zu krank führt, errechnet sich wie folgt :

Abbildung in dieser Leseprobe nicht enthalten

p>D.h., der Grenzwert liegt in der Mitte der um die Standardabweichung erhöhten (bzw. verminderten) Mittel. Die Grenzwerte im Einzelnen (zur Bezeichnung der Variablen s. Anhang E.1.1.) :

Abbildung in dieser Leseprobe nicht enthalten

Tabelle 10

E.2.1. Ergebnisse der Spezifitäts/Sensitivitäts-Untersuchung

Zur Erklärung der Feldnamen siehe Tabelle 7 im Anhang E.1.1., in Tabelle 8 Anhang E.1.1. sind auch die Gruppenstärken angegeben. Grau hinterlegt die Untersuchungen auf der Basis der Klassifizierung nach dem RV - für diese zeigen die Maßzahlen keine signifikanten Unterschiede der Gruppen 0 und 1, so daß sie nicht in die Untersuchung einbezogen werden.

Abbildung in dieser Leseprobe nicht enthalten

Tabelle 11

Ende der Leseprobe aus 84 Seiten

Details

Titel
Auswertung von Computertomograhiebildern der Lunge
Hochschule
Technische Universität Darmstadt
Autor
Jahr
1999
Seiten
84
Katalognummer
V96334
ISBN (eBook)
9783638090100
Dateigröße
687 KB
Sprache
Deutsch
Anmerkungen
Enwickelt wurde ein neues Verfahren, um überbelüftte Bereich der Lunge zu finden und zu bewerten. Das Verfahren kann als Diagnoseinstrument für Krankheiten, die mit Belüftungsstörungen - Asthma, Emphyseme - einhergehen dienen
Schlagworte
Auswertung, Computertomograhiebildern, Lunge, Darmstadt
Arbeit zitieren
Andreas Staubi (Autor:in), 1999, Auswertung von Computertomograhiebildern der Lunge, München, GRIN Verlag, https://www.grin.com/document/96334

Kommentare

  • Noch keine Kommentare.
Blick ins Buch
Titel: Auswertung von Computertomograhiebildern der Lunge



Ihre Arbeit hochladen

Ihre Hausarbeit / Abschlussarbeit:

- Publikation als eBook und Buch
- Hohes Honorar auf die Verkäufe
- Für Sie komplett kostenlos – mit ISBN
- Es dauert nur 5 Minuten
- Jede Arbeit findet Leser

Kostenlos Autor werden