-
Die
vorliegende Erfindung betrifft ein Abstandbestimmungsverfahren,
- – wobei einem Rechner ein Volumendatensatz vorgegeben
ist, der eine Vielzahl von Voxeln aufweist,
- – wobei ein Teil der Voxel als Gefäßvoxel
markiert ist, so dass die Gefäßvoxel in ihrer
Gesamtheit örtlich dreidimensional aufgelöst eine
Gefäßstruktur eines Untersuchungsobjekts definieren,
- – wobei der Rechner eine Selektion eines ersten und
eines zweiten Gefäßvoxels entgegen nimmt, einen
Abstand des ersten Gefäßvoxels vom zweiten Gefäßvoxel
innerhalb der Gefäßstruktur ermittelt und den
ermittelten Abstand ausgibt.
-
Die
vorliegende Erfindung betrifft weiterhin ein Computerprogramm, das
Maschinencode aufweist, der von einem Rechner unmittelbar ausführbar ist
und dessen Ausführung durch den Rechner bewirkt, dass der
Rechner ein derartiges Abstandbestimmungsverfahren ausführt.
-
Die
vorliegende Erfindung betrifft weiterhin einen Datenträger
mit einem auf dem Datenträger in maschinenlesbarer Form
gespeicherten derartigen Computerprogramm.
-
Schließlich
betrifft die vorliegende Erfindung einen Rechner, der mit einem
derartigen Computerprogramm programmiert ist, so dass er im Betrieb
ein derartiges Abstandbestimmungsverfahren ausführt.
-
Die
obenstehend beschriebenen Gegenstände sind allgemein bekannt.
-
Eine
Reihe von Verfahren, die in Zusammenhang mit dem Blutgefäßverlauf
von Patienten stehen, benötigt eine korrekte Entfernungsberechnung
zwischen zwei Punkten. Mit dem Begriff „Entfernungsberechnung” ist
hierbei nicht die Ermittlung des Euklidischen Abstands gemeint,
sondern die Entfernung innerhalb der Gefäßstruktur,
also unter Berücksichtigung des Gefäßverlaufs.
-
Verfahren,
welche die erwähnte Entfernungsberechnung benötigen,
sind beispielsweise eine Katheterverfolgung, eine Blutflussrekonstruktion und
dergleichen mehr. Im Rahmen derartiger Verfahren ist es von großem
Interesse, dass die Entfernung schnell und effizient berechnet werden
kann. Insbesondere ist eine Echtzeitfähigkeit erwünscht.
Weiterhin sollten die Berechnungsverfahren eine relativ kurze Vorverarbeitungszeit
benötigen. Schließlich soll das Verfahren möglichst
wenig Speicher benötigen.
-
Volumendatensätze,
also dreidimensional ortsaufgelöste Datensätze
weisen im Stand der Technik typischerweise Größen
von 2563 oder 5123 auf.
In Zukunft werden voraussichtlich auch Datensätze mit 10243 und mehr erstellt werden. Dieses Volumen
stellt die Basis für die Entfernungsberechnung dar. Hierbei
entspricht im Stand der Technik jedes Gefäßvoxel
einem Knotenpunkt. Die Knoten benachbarter Gefäßvoxel
werden durch Kanten verbunden. Durch eine – dem Fachmann
bekannte – Breitensuche wird, ausgehend von jedem Knoten,
die Entfernung zu jedem anderen Knoten bestimmt und in einer Matrix
gespeichert. Um die Entfernung zwischen zwei Punkten zu bestimmen,
muss der entsprechende Eintrag in der Matrix gefunden und ausgelesen werden.
-
Eine
derartige Matrix erreicht extreme Dimensionen von beispielsweise
rund 60.0002 oder 110.0002.
Derartig große Datenmengen lassen sich nicht im Arbeitsspeicher
eines Rechners halten. Vielmehr muss die Matrix auf der Festplatte
des Rechners gespeichert werden. Die dadurch immer wieder erforderlichen
Zugriffe auf die Festplatte verlangsamen das Abstandbestimmungsverfahren
des Standes der Technik enorm. Weiterhin ist der Zeitaufwand für
die Erstellung der Entfernungsmatrix im Stand der Technik erheblich.
Er beträgt beispielsweise bei gegebener Rechenleistung
des Rechners 30 min und mehr.
-
Als
Alternative ist bekannt, auf die Vorberechnung der Entfernungen,
das heißt auf die Erstellung der Entfernungsmatrix zu verzichten
und stattdessen die Entfernung stets entsprechend der momentanen
Anforderung zu ermitteln. Im ungünstigsten Fall müssen
hierzu jedoch die Knoten sämtlicher Gefäßvoxel
abgefragt werden. Auch diese Vorgehensweise ist daher weit entfernt
von einer Echtzeitfähigkeit.
-
Um
eine Echtzeitfähigkeit zu erreichen, ist im Stand der Technik
weiterhin bekannt, die Auflösung des Volumendatensatzes
zu reduzieren. Dadurch wird zwar die Echtzeitfähigkeit
erreicht, im Gegenzug jedoch die Auflösung so weit reduziert,
dass das Verfahren in der Praxis keine sinnvollen Ergebnisse mehr
liefert.
-
Die
Aufgabe der vorliegenden Erfindung besteht darin, Möglichkeiten
zu schaffen, trotz hoher Ortsauflösung des Gefäßsystems
und trotz qualitativ hochwertiger Abstandsbestimmung den Abstand
auf einfache und schnelle Weise bestimmen zu könne.
-
Die
Aufgabe wird verfahrenstechnisch durch ein Abstandbestimmungsverfahren
mit den Merkmalen des Anspruchs 1 gelöst. Vorteilhafte
Ausgestaltungen dieses Abstandbestimmungsverfahrens sind Gegenstand
der abhängigen Ansprüche 2 bis 7.
-
Gemäß Anspruch
1 ermittelt der Rechner durch Skelettieren der Gefäßstruktur
Skelettvoxel, die in ihrer Gesamtheit eine Skelettstruktur der Gefäßstruktur
beschreiben. Der Rechner ordnet weiterhin jedem Gefäßvoxel
ein korrespondierendes Skelettvoxel zu. Der Rechner klassifiziert
einen ersten Teil der Skelettvoxel als Knotenvoxel. Die anderen Skelettvoxel
klassifiziert der Rechner als Normalvoxel. Die Knotenvoxel umfassen
zumindest alle Skelettvoxel, denen eine von zwei verschiedene Anzahl von
Skelettvoxeln unmittelbar benachbart ist. Für jedes Paar
von Knotenvoxeln, zwischen denen innerhalb der Skelettstruktur ausschließlich
Normalvoxel angeordnet sind, ermittelt der Rechner einen Einzelknotenabstand
und ordnet ihn dem jeweiligen Paar von Knotenvoxeln zu.
-
Der
Rechner nimmt sodann eine Selektion eines ersten Gefäßvoxels
entgegen, ermittelt das korrespondierende Skelettvoxel (erstes Skelettvoxel) und
mindestens ein dem ersten Skelettvoxel benachbartes erstes Knotenvoxel.
Mit dem Begriff „benachbartes Knotenvoxel” ist
hierbei nicht gemeint, dass das dem ersten Skelettvoxel nächste
Skelettvoxel ein Knotenvoxel sein muss. Vielmehr ist gemeint, dass innerhalb
der Skelettstruktur die Knotenvoxel ermittelt werden, die dem Skelettvoxel
so nahe wie möglich sind.
-
In
analoger Weise nimmt der Rechner eine Selektion eines zweiten Gefäßvoxels
entgegen, ermittelt das korrespondierende Skelettvoxel (zweites Skelettvoxel)
sowie mindestens ein dem zweiten Skelettvoxel benachbartes zweites
Knotenvoxel.
-
Sofern
dies auf Grund der Skelettstruktur möglich ist, ermittelt
der Rechner weiterhin für jede Kombination je eines der
ersten und je eines der zweiten Knotenvoxel eine Knotenfolge vom
jeweiligen ersten Knotenvoxel zum jeweiligen zweiten Knotenvoxel,
anhand der Einzelknotenabstände, die den in der jeweiligen
Knotenfolgen enthaltenen Paaren von Knotenvoxeln zugeordnet sind,
jeweils einen korrespondierenden Gesamtknotenabstand, den Abstand
des ersten Skelettvoxels vom jeweiligen ersten Knotenvoxel und den
Abstand des zweiten Skelettvoxels vom jeweiligen zweiten Knotenvoxel.
Die so ermittelten Abstände addiert der Rechner zu einem
jeweiligen Gesamtabstand auf. Das Minimum der derart ermittelten
Gesamtabstände gibt der Rechner als Abstand des ersten
Gefäßvoxels vom zweiten Gefäßvoxel
aus.
-
Durch
diese Vorgehensweise konnte in Experimenten mit einem Phantomdatensatz
eine Reduktion auf rund 150 Knoten (gegenüber knapp 60.000
im Stand der Technik) erreicht werden. In analoger Weise konnte
in Experimenten mit einer realen Gefäßstruktur
eine Reduktion auf rund 2000 Knoten (gegenüber mehr als
100.000 Knoten im Stand der Technik) erreicht werden. Dennoch verringerte
sich die Genauigkeit, mit welcher der Abstand ermittelt wurde, nur
geringfügig (weniger als 3%).
-
In
einer bevorzugten Ausgestaltung der vorliegenden Erfindung ist für
jedes Gefäßvoxel das korrespondierende Skelettvoxel
dadurch bestimmt, dass eine durch das betreffende Gefäßvoxel
und das korrespondierende Skelettvoxel definierte Verbindungslinie
orthogonal zu einer Tangente an die Skelettstruktur am Ort des korrespondierenden
Skelettvoxels verläuft und alle auf der Verbindungslinie
angeordneten Voxel Gefäßvoxel sind.
-
Die
Zuordnung der Skelettvoxel zu den Gefäßvoxeln
speichert der Rechner vorzugsweise in einer Skeletttabelle ab, so
dass der Rechner bei späterem Bedarf lediglich noch aus
der Tabelle auslesen muss, welches Skelettvoxel dem jeweiligen Gefäßvoxel
zugeordnet ist.
-
Es
ist möglich, als Knotenvoxel ausschließlich diejenigen
Skelettvoxel heranzuziehen, denen eine andere Anzahl als zwei Skelettvoxel
unmittelbar benachbart sind. Weiterhin ist es möglich,
bei Vorgabe eines (prinzipiell beliebigen) Gefäßvoxels
den Abstand des korrespondierenden Skelettvoxels zu den Knotenvoxeln
dadurch zu ermitteln, dass nach und nach die Skelettstruktur vom
jeweiligen Skelettvoxel zu den entsprechenden Knotenvoxeln durchlaufen wird.
Erheblich eleganter ist es jedoch, wenn zum Ermitteln der Knotenvoxel
und zum Ermitteln der Einzelknotenabstände
- a) der Rechner zunächst jedes Skelettvoxel, dem eine
andere Anzahl als zwei Skelettvoxel unmittelbar benachbart ist,
als Grundknotenvoxel klassifiziert,
- b) der Rechner für jedes Paar von Grundknotenvoxeln,
zwischen denen innerhalb der Skelettstruktur kein anderes Grundknotenvoxel
angeordnet ist, einen Polygonzug ermittelt, der sich zwischen den
Grundknotenvoxeln des betrachteten Paa res von Grundknotenvoxeln
erstreckt und aus einer Anzahl paarweise jeweils am Ort eines Skelettvoxels
aneinander angrenzender Polygonlinien besteht,
- c) der Rechner die Skelettvoxel, an denen Polygonlinien aneinander
angrenzen, als Zusatzknotenvoxel klassifiziert,
- d) die Grundknotenvoxel und die Zusatzknotenvoxel zusammen die
Knotenvoxel bilden und der Rechner die anderen Skelettvoxel als
Normalvoxel klassifiziert,
- e) der Rechner jede Polygonlinie derart ermittelt, dass die
Abstände der Normalvoxel, die innerhalb der Skelettstruktur
zwischen den die jeweilige Polygonlinie terminierenden Knotenvoxeln
angeordnet sind, von der jeweiligen Polygonlinie eine Abstandsbedingung
erfüllen,
- f) wobei der Rechner für jede Polygonlinie eine Polygonlinienlänge
ermittelt und dem die Polygonlinie terminierenden Paar von Knotenvoxeln als
Einzelknotenabstand zuordnet.
-
Zur
Ermittlung des Polygonzuges gibt es verschiedene Möglichkeiten.
Beispielsweise ist es möglich, ausgehend von einem der
beiden Grundknotenvoxel des betrachteten Paares von Grundknotenvoxeln
voxelweise die Skelettstruktur voranzuschreiten und stets zu überprüfen,
ob die Abstandsbedingung erfüllt ist. Wenn sie erfüllt
ist, wird zum nächsten Skelettvoxel vorangeschritten. Wenn
sie nicht erfüllt ist, wird zum vorherigen Skelettvoxel
zurückgeschritten, dieses Skelettvoxel als Zusatzknotenvoxel
klassifiziert und, ausgehend von dem neu klassifizierten Zusatzknotenvoxel,
weiter vorangeschritten, bis das andere Grundknotenvoxel des betrachteten
Paares von Grundknotenvoxeln erreicht ist. Als erheblich effizienter
hat es sich jedoch erwiesen, wenn der Rechner zur Ermittlung je
eines der Polygonzüge
- a) die beiden
Grundknotenvoxel des betrachteten Paares von Grundknotenvoxeln mittels
eines Anfangspolygonzuges miteinander verbindet, der aus einer Anzahl
paarweise aneinander angrenzender Anfangspolygonlinien besteht,
- b) für jede Anfangspolygonlinie prüft, ob
die Abstände der Normalvoxel von der jeweiligen Anfangspolygonlinie
die Abstandsbedingung erfüllen,
- c) für jede Anfangspolygonlinie, bei der die Abstandsbedingung
nicht erfüllt ist, mindestens eines der Normalvoxel, die
innerhalb der Skelettstruktur zwischen den die betrachtete Anfangspolygonlinie
terminierenden Skelettvoxeln angeordnet sind, zu einem Zusatzknotenvoxel
umklassifiziert, die betrachtete Anfangspolygonlinie durch mindestens
zwei neue Anfangspolygonlinien ersetzt, die durch das mindestens
eine neu klassifizierte Zusatzknotenvoxel und die beiden zuvor betrachteten
Knotenvoxel terminiert sind, und sodann den Schritt b) wiederholt,
- d) für jede Anfangspolygonlinie, bei der die Abstandsbedingung
erfüllt ist, die jeweilige Anfangspolygonlinie als Zwischenpolygonlinie übernimmt und
- e) den jeweiligen Polygonzug unter Verwendung der so ermittelten
Zwischenpolygonlinien ermittelt.
-
Be
dem Polygonzug, der gemäß der zuletzt beschriebenen
Vorgehensweise ermittelt wurde, erfüllt jede Polygonlinie
die Abstandsbedingung. Der derart ermittelte Polygonzug kann daher
direkt als gültiger Polygonzug übernommen werden.
Noch besser ist es jedoch, wenn der Rechner zur Ermittlung je eines
der Polygonzüge
- a) mindestens zwei
benachbarte Zwischenpolygonlinien vorläufig durch eine
gemeinsame Zwischenpolygonlinie ersetzt,
- b) für jede gemeinsame Zwischenpolygonlinie prüft,
ob die Abstände der Normalvoxel von der jeweiligen gemeinsamen
Zwischenpolygonlinie die Abstandsbedingung erfüllen,
- c) für jede gemeinsame Zwischenpolygonlinie, bei der
die Abstandsbedingung erfüllt ist, die jeweils zwei Zwischenpolygonlinien
gemeinsamen Zusatzknotenvoxel zu Normalvoxeln rückklassifiziert,
die betrachteten Zwischenpolygonlinien endgültig durch
die gemeinsame Zwischenpolygonlinie ersetzt und sodann die Schritte
a) und b) wiederholt,
- d) für jede gemeinsame Zwischenpolygonlinie, bei der
die Abstandsbedingung nicht erfüllt ist, die gemeinsame
Zwischenpolygonlinie verwirft und
- e) den jeweiligen Polygonzug unter Verwendung der so ermittelten
gemeinsamen Zwischenpolygonlinien ermittelt.
-
Die
Abstandsbedingung kann eine statistische Abstandsbedingung sein.
Beispielsweise kann ein Mittelwert oder ein Medianwert herangezogen werden.
Auch kann das Maximum der Abstände der Skelettvoxel, die
innerhalb der Skelettstruktur zwischen den beiden die jeweilige
Polygonlinie terminierenden Knotenvoxeln angeordnet sind, von der
jeweiligen Polygonlinie herangezogen werden. Insbesondere bei Verwendung
des Maximums und des Durchschnitts wurden in Versuchen gute Ergebnisse erzielt.
-
Auf
Grund der Kondensierung der zu verarbeitenden Datenmengen auf „handhabbare” Dimensionen
ist es möglich, die Ermittlung der Skelettvoxel und die
Ermittlung der Abstände dann vorzunehmen, wenn die entsprechende
Anforderung anfällt. Als besonders vorteilhaft hat es sich
jedoch erwiesen, Berechnungen so weit wie möglich vor die
Vorgabe des ersten und des zweiten Gefäßvoxels
vorzuziehen. Der Begriff „vorab” ist in diesem
Sinne gemeint.
-
Insbesondere
ist es möglich, dass der Rechner vorab für alle
ersten und zweiten Knotenvoxel die korrespondierenden Knotenfolgen
und die korrespondierenden Gesamtknotenabstände ermittelt
und in einer Knotenabstandstabelle abspeichert, so dass der Rechner
zum Ermitteln der Gesamtknotenabstände nach dem Ermitteln
der ersten und der zweiten Knotenvoxel lediglich noch der Knotenabstandstabelle
die korrespondierenden Gesamtknotenabstände entnehmen muss.
-
Weiterhin
ist es – alternativ oder zusätzlich zum Erstellen
der Knotenabstandstabelle – möglich, dass der
Rechner vorab für alle Skelettvoxel die korrespondierenden
Knotenvoxel in einer Knotentabelle abspeichert, so dass der Rechner
zum Er mitteln der ersten und der zweiten Knotenvoxel nach dem Ermitteln
des ersten und des zweiten Skelettvoxels lediglich noch der Knotentabelle
die ersten und zweiten Knotenvoxel entnehmen muss.
-
Im
Idealfall ist jedes Gefäßvoxel mit jedem anderen
Gefäßvoxel über eine Folge von jeweils
unmittelbar benachbarten Gefäßvoxeln erreichbar.
In der Praxis ist dieses Erfordernis jedoch nicht stets gewährleistet.
Die Ursachen hierfür können beispielsweise Artefakte
und andere Störungen oder aber die Art des Gefäßsystems
sein. Wenn daher dem Rechner zwei Gefäßvoxel vorgegeben
werden, die in nicht zusammenhängenden Bereichen der Gefäßstruktur
angeordnet sind, ist eine Abstandsbestimmung prinzipiell nicht möglich.
Dies gilt gleichermaßen im Stand der Technik und bei der
vorliegenden Erfindung. Aus diesem Grund findet sich im Anspruch
1 die Formulierung „sofern dies auf Grund der Skelettstruktur
möglich ist”. Wenn die Abstandbestimmung nicht
möglich ist, erfolgt eine Fehlermeldung. In die Knotenabstandstabelle
kann beispielsweise an der entsprechenden Stelle der Wert Null oder
ein anderer, physikalisch sinnloser Wert eingetragen sein. Alternativ
kann der entsprechende Eintrag – beispielsweise mittels
eines Flags – als ungültig markiert sein.
-
Programmtechnisch
wird die Aufgabe durch ein Computerprogramm der obenstehend beschriebenen
Art gelöst, dessen Ausführung durch den Rechner
bewirkt, dass der Rechner ein erfindungsgemäßes
Abstandbestimmungsverfahren ausführt. Das Computerprogramm
kann hierbei auf einem Datenträger in (ausschließlich)
maschinenlesbarer Form gespeichert sein.
-
Für
den Rechner wird die Aufgabe dadurch gelöst, dass er mit
einem erfindungsgemäßen Computerprogramm programmiert
ist, so dass er in Betrieb ein erfindungsgemäßes
Abstandbestimmungsverfahren ausführt.
-
Auch
bezüglich des Computerprogramms, des Datenträgers
und des Rechners sind die gleichen vorteilhaften Ausgestaltungen möglich,
die obenstehend in Verbindung mit dem Abstandbestimmungsverfahren
beschrieben sind.
-
Weitere
Vorteile und Einzelheiten ergeben sich aus der nachfolgenden Beschreibung
von Ausführungsbeispielen in Verbindung mit den Zeichnungen.
Es zeigen in Prinzipdarstellung:
-
1 ein Übersichtsbild,
-
2 ein
Ablaufdiagramm,
-
3 eine
Gefäßstruktur und eine Skelettstruktur,
-
4 einen
Ausschnitt von 3 in vergrößerter
Darstellung,
-
5 eine
Normalenebene,
-
6 einen
Ausschnitt einer Skelettstruktur,
-
7 und 8 Ablaufdiagramme,
-
9 eine
Tabelle,
-
10 und 11 Ablaufdiagramme,
-
12 einen
Ausschnitt einer Skelettstruktur,
-
13 ein
Ablaufdiagramm,
-
14 bis 18 Ausschnitte
einer Skelettstruktur und
-
19 ein
Ablaufdiagramm.
-
Gemäß 1 ist
ein Rechner mit einem Computerprogramm 1 programmiert.
Das Computerprogramm 1 kann dem Rechner beispielsweise über das
Internet oder eine andere Rechner-Rechner-Verbindung zugeführt
worden sein. Alternativ ist es möglich, das Computerprogramm 1 in
(ausschließlich) maschinenlesbarer Form auf einem Datenträger 2 zu speichern
und dem Rechner das Computerprogramm 1 über den
Datenträger 2 zuzuführen. Rein beispielhaft
ist in 1 als Datenträger 2 eine CD-ROM
dargestellt. Der Datenträger 2 könnte
jedoch auch andersartig ausgebildet sein, beispielsweise als USB-Memorystick
oder als SD-Speicherkarte.
-
Das
Computerprogramm 1 weist Maschinencode 3 auf.
Der Maschinencode 3 ist vom Rechner unmittelbar ausführbar.
Die Ausführung des Maschinencodes 3 durch den
Rechner bewirkt, dass der Rechner im Betrieb ein Abstandbestimmungsverfahren
ausführt, das nachstehend detailliert erläutert werden
wird.
-
Gemäß 2 nimmt
der Rechner in einem Schritt S1 einen Volumendatensatz 4 entgegen.
Der Volumendatensatz 4 weist eine Vielzahl von Voxeln 5 auf.
Jedes Voxel 5 definiert einen Ort im dreidimensionalen
Raum (Koordinaten x, y, z).
-
Es
wird darauf hingewiesen, dass die Voxel 5 in Verbindung
mit den nachstehenden Erläuterungen zur Unterscheidung
voneinander teilweise mit Buchstaben unterschieden werden, beispielsweise
Voxel 5a oder 5c. Es handelt sich aber stets um
Voxel 5 des Volumendatensatzes.
-
Gemäß 3 sind
einige der Voxel 5 als Gefäßvoxel 5 markiert.
Beispielsweise kann im Volumendatensatz 4 ein dem jeweiligen
Voxel 5 zugeordnetes Flag gesetzt sein. In ihrer Gesamtheit
definieren die Gefäßvoxel 5 örtlich
dreidimensional aufgelöst eine Gefäßstruktur 6 eines
Untersuchungsobjekts, beispielsweise eines Blutgefäßsystems
eines Menschen. Die Darstellung von 3 ist hierbei zweidimensional,
da diese Darstellung für die Erläuterung der vorliegenden
Erfindung anschaulicher ist. Dies gilt gleichermaßen für
die 4, 6, 12 sowie 14 bis 18.
Der zu Grunde liegende Volumendatensatz 4 ist jedoch stets
dreidimensional.
-
Das
Erstellen des Volumendatensatzes 4 und auch das Markieren
der Gefäßvoxel 5 ist Fachleuten allgemein
bekannt. Es ist als solches nicht Gegenstand der vorliegenden Erfindung.
Die vorliegende Erfindung setzt das Vorhandensein des Volumendatensatzes 4 einschließlich
des Markiertseins der Gefäßvoxel 5 vielmehr
voraus.
-
Je
nach Lage des Einzelfalls ist es möglich, dass jedes Gefäßvoxel 5 – beispielsweise
das Gefäßvoxel 5a – mit jedem
anderen Gefäßvoxel 5 – beispielsweise
den Gefäßvoxeln 5b, 5c – über
eine Folge jeweils unmittelbar aneinander grenzender Voxel 5 verbunden
ist, wobei jedes dieser Voxel 5 selbst ein Gefäßvoxel 5 ist.
Alternativ ist es jedoch möglich, dass die Gefäßstruktur 6 mehrere
getrennte Bereiche 7, 8 aufweist, die durch jeweils
mindestens ein Voxel 5 – beispielsweise das Voxel 5d – voneinander getrennt
sind, das kein Gefäßvoxel 5 ist.
-
In
einem Schritt S2 nimmt der Rechner eine Skelettierung der Gefäßstruktur 6 vor.
Der Rechner ermittelt also durch Skelettieren der Gefäßstruktur 6 Skelettvoxel 5.
Die Skelettvoxel 5 beschreiben in ihrer Gesamtheit eine
Skelettstruktur 9 der Gefäßstruktur 6.
Der Begriff „Skelettieren” bedeutet hierbei, dass die
Topologie der Gefäßstruktur 6 und die
Topologie der Skelettstruktur 9 übereinstimmen.
Die Skelettstruktur 9 weist jedoch an jeder Stelle eine
Dicke von einem einzigen Voxel 5 auf, während
die Gefäßstruktur 6 eine größere
Dicke aufweisen kann, wobei diese größere Dicke
konstant oder variabel sein kann.
-
Das
Skelettieren als solches ist bekannt. Im Rahmen der Skelettierung
(in der Fachliteratur auch als Thinning bezeichnet) werden iterativ
nach und nach so viele Gefäßvoxel 5 wie
möglich gelöscht, ohne die Topologie der Gefäßstruktur 6 zu
zerstören. Das Ergebnis ist die Skelettstruktur 9.
Ein möglicher Skelettierungsalgorithmus ist beispielsweise
in dem Fachaufsatz „A 3D 6-subiteration thinning
algorithm for extracting medial lines" von K. Palagyi und
A. Kuba, Pattern Recognition Letters, Band 19, Nr. 7, 1998, Seiten
613 bis 627 beschrieben.
-
In
einem Schritt S3 ordnet der Rechner jedem Gefäßvoxel 5 ein
korrespondierendes Skelettvoxel 5 zu. Die Zuordnung speichert
der Rechner in einer Tabelle 10 ab, die nachfolgend zur
Unterscheidung von anderen, später noch zu definierenden
Tabellen Skeletttabelle 10 genannt wird. Wenn im Rahmen
des weiteren Ablaufs des Verfahrens ein Gefäßvoxel 5 vorgegeben
wird, kann daher das korrespondierende Skelettvoxel 5 direkt
der Skeletttabelle 10 entnommen werden.
-
Es
ist möglich, die Schritte S2 und S3 zu einem gemeinsamen
Schritt zusammenzufassen. Insbesondere ist es möglich,
im Rahmen des Schrittes S2 jedem Gefäßvoxel 5,
das gelöscht wird, ein anderes Gefäßvoxel 5 zuzuordnen,
das nicht gelöscht wird. Durch iterative Wiederholung dieser
Vorgehensweise ergibt sich das jeweils korrespondierende Skelettvoxel 5.
-
Alternativ
ist es möglich, zuerst im Schritt S2 das Ermitteln der
Skelettstruktur 9 vorzunehmen und sodann gemäß 4 für
jedes Skelettvoxel 5 – in 4 mit dem
Bezugszeichen 5e bezeichnet – eine lokale Normalenebene 11 zur
Skelettstruktur 9 zu bestimmen. Das entsprechende Skelettvoxel 5e kann
in diesem Fall denjenigen Gefäßvoxeln 5 als
korrespondierendes Skelettvoxel 5 zugeordnet werden, für die
gilt,
- – dass das entsprechende Gefäßvoxel 5 in
der Normalenebene 11 liegt, das heißt, dass eine durch
das betreffende Gefäßvoxel 5 und das
korrespondierende Skelettvoxel 5e definierte Verbindungslinie 12 orthogonal
zu einer Tangente 13 an die Skelettstruktur 9 am
Ort des korrespondierenden Skelettvoxels 5e verläuft,
und
- – dass alle zwischen dem jeweiligen Gefäßvoxel 5 und
dem betreffenden Skelettvoxel 5e angeordneten Voxel 5 Gefäßvoxel 5 sind.
-
Nach
dem Skelettieren der Gefäßstruktur 6 und
dem Erstellen der Skeletttabelle 10 klassifiziert der Rechner
in einem Schritt S4 einen ersten Teil der Skelettvoxel 5 als
Knotenvoxel 5. Die Knotenvoxel 5 umfassen hierbei
zumindest Grundknotenvoxel 5. Die Grundknotenvoxel 5 sind
dadurch definiert, dass ihnen mehr als zwei oder weniger als zwei
Skelettvoxel 5 unmittelbar benachbart sind. Hingegen sind
alle Skelettvoxel 5, denen genau zwei Skelettvoxel 5 unmittelbar
benachbart sind, keine Grundknotenvoxel 5. Beispielsweise
sind die in 3 mit 5f, 5g, 5h und 5i bezeichneten
Skelettvoxel 5 Grundknotenvoxel 5, die in 3 mit 5j, 5k, 5l bezeichneten
Skelettvoxel 5 keine Grundknotenvoxel 5.
-
Es
ist möglich, dass ein Teil der Skelettvoxel 5,
denen genau zwei andere Skelettvoxel 5 unmittelbar benachbart
sind, ebenfalls als Knotenvoxel 5 klassifiziert wird. Beispielsweise
könnte das in 3 mit dem Bezugszeichen 5k bezeichnete
Skelettvoxel 5 ein Knotenvoxel 5 sein. Diese Knotenvoxel 5 werden
nachfolgend zur Unterscheidung von den Grundknotenvoxeln 5 als
Zusatzknotenvoxel 5 bezeichnet. Ob und gegebenenfalls welche
Skelettvoxel 5 als Zusatzknotenvoxel 5 klassifiziert
werden, wird später noch näher erläutert
werden.
-
Alle
Skelettvoxel 5, die nicht als Knotenvoxel 5 klassifiziert
werden (also weder Grundknotenvoxel 5 noch Zusatzknotenvoxel 5 sind),
werden vom Rechner in einem Schritt S5 als Normalvoxel 5 klassifiziert.
Beispielsweise können die in 3 mit dem Bezugszeichen 5j und 5l bezeichneten
Skelettvoxel 5 als Normalvoxel 5 klassifiziert
werden.
-
In
einem Schritt S6 selektiert der Rechner nacheinander alle Paare
von Knotenvoxeln 5 (benachbarte Knotenvoxel 5),
zwischen denen innerhalb der Skelettstruktur 9 ausschließlich
Normalvoxel 5 angeordnet sind. Beispielsweise bilden die
Knotenvoxel 5g und 5h ein derartiges Paar, ebenso
die Knotenvoxel 5f und 5k. Hingegen bilden die
Knotenvoxel 5f und 5g kein derartiges Paar, da
zwischen ihnen das Zusatzknotenvoxel 5k angeordnet ist.
-
Für
jedes dieser Paare ermittelt der Rechner im Rahmen des Schrittes
S6 einen Abstand a und ordnet den Abstand a dem entsprechenden Paar
von Knotenvoxeln 5 zu. Der Abstand a wird nachfolgend Einzelknotenabstand
a genannt. Die ermittelten Einzelknotenabstände a speichert
der Rechner in einer ersten Knotenabstandstabelle 14 ab.
-
Mit
dem Begriff „Abstand” ist im Rahmen des Schrittes
S6 nicht der Euklidische Abstand gemeint, sondern die Distanz, die
entlang der Skelettstruktur 9 zurückgelegt werden
muss, um von dem einen Knotenvoxel 5 des betrachteten Paares
zu dem anderen Knotenvoxel 5 des betrachteten Paares zu
gelangen. Im einfachsten Fall kann der Rechner beispielsweise, ausgehend
vom ersten Knotenvoxel 5 des gerade betrachteten Paares,
sich nach und nach bis zum zweiten Knotenvoxel 5 des betrachteten
Paares „durchhangeln” und die einzelnen kleinen
Wegschritte aufaddieren. Nachfolgend werden jedoch andere, elegantere
Vorgehensweisen erläutert.
-
In
einem Schritt S7 nimmt der Rechner eine Selektion eines ersten Gefäßvoxels 5 und
eines zweiten Gefäßvoxels 5 entgegen.
Beispielsweise kann der Rechner von einem Anwender 15 eine
entsprechende Vorgabe entgegen nehmen. Rein beispielhaft wird nachfolgend
angenommen, dass der Anwender 15 zwei Gefäßvoxel 5 vorgegeben
hat, die in den 3 und 6 mit den
Bezugszeichen 5m und 5n versehen sind.
-
In
einem Schritt S8 bestimmt der Rechner zunächst die korrespondierenden
Skelettvoxel 5, nachfolgend erstes und zweites Skelettvoxel 5 genannt
und in 3 als Skelettvoxel 5o und 5p bezeichnet.
Auf Grund des vorherigen Erstellens der Skeletttabelle 10 ist
es im Rahmen des Schrittes S8 lediglich erforderlich, der Skeletttabelle 10 die
entsprechenden Skelettvoxel 5 zu entnehmen.
-
Die
Anzahl an Gefäßvoxeln 5 ist zwar sehr groß,
teilweise größer als 100.000. Es besteht jedoch eine
1:1 Zuordnung (nenne mir das Gefäßvoxel 5 – ich
gebe dir das korrespondierende Skelettvoxel 5). Trotz der
großen Anzahl an Gefäßvoxeln 5 weist
die Skeletttabelle 10 daher eine noch handhabbare Größe
auf.
-
In
einem Schritt S9 bestimmt der Rechner die mit dem ersten Skelettvoxel 5 (Skelettvoxel 5o) korrespondierenden
Knotenvoxel 5, nachfolgend erste Knotenvoxel 5 genannt
und in 6 mit den Bezugszeichen 5q und 5r versehen.
In analoger Weise bestimmt er in einem Schritt S10 die mit dem zweiten Skelettvoxel 5 (Skelettvoxel 5p)
korrespondierenden zweiten Knotenvoxel 5, in 6 als 5f und 5s bezeichnet.
-
Im
einfachsten Fall prüft der Rechner für das erste
und das zweite Skelettvoxel 5, ob das betreffende Skelettvoxel 5 selbst
ein Knotenvoxel 5 ist. Wenn dies der Fall ist, ist das
zugeordnete (einzige) Knotenvoxel 5 bestimmt. Anderenfalls
ist das betreffende Skelettvoxel 5 zwangsweise ein Normalvoxel 5.
Es weist daher genau zwei unmittelbar benachbarte Skelettvoxel 5 auf.
Der Rechner kann sich daher in der Skelettstruktur 9 in
beide Richtungen „entlang hangeln”, bis er jeweils
auf ein Knotenvoxel 5 stößt. In diesem
Fall sind dem betreffenden Skelettvoxel 5 zwei Knotenvoxel 5 zugeordnet.
-
Die
obenstehend skizzierte Vorgehensweise ist möglich. Nachfolgend
werden jedoch elegantere Vorgehensweise beschrieben werden.
-
Auf
Grund der obenstehenden Erläuterungen ist ersichtlich,
dass dem ersten Skelettvoxel 5 ein oder zwei Knotenvoxel 5 zugeordnet
sein können. Gleiches gilt für das zweite Skelettvoxel 5.
Nachfolgend wird in Verbindung mit 6 der allgemeine Fall
erläutert, dass sowohl dem ersten als auch dem zweiten
Skelettvoxel 5 je zwei Knotenvoxel 5 zugeordnet
sind. Die anderen, spezielleren Fälle sind einfacher.
-
In
einem Schritt S10 selektiert der Rechner je eines der ersten Knotenvoxel 5 und
der zweiten Knotenvoxel 5. In einem Schritt S11 prüft
der Rechner sodann, ob er eine Knotenfolge ermitteln kann, mittels derer
die beiden im Schritt S10 selektierten Knotenvoxel 5 innerhalb
der Skelettstruktur 9 miteinander verbunden werden können.
Wenn dies nicht der Fall ist, sind die selektierten Gefäßvoxel 5 in
voneinander getrennten Bereichen 7, 8 angeordnet,
in diesem Fall ist eine Abstandsbestimmung nicht möglich.
In diesem Fall verzweigt der Rechner daher zu einem Schritt S12,
in dem er eine entsprechende Fehlermeldung ausgibt. Anderenfalls
geht der Rechner zu einem Schritt S13 über.
-
Im
Schritt S13 ermittelt der Rechner für jede Kombination
eines ersten und eines zweiten Knotenvoxels 5 jeweils:
- – Eine Knotenfolge vom jeweiligen
ersten Knotenvoxel 5 zum jeweiligen zweiten Knotenvoxel 5. Das
Auffinden der entsprechenden Knotenfolge ist Fachleuten hierbei
unter dem Betriff Dijkstra-Algorithmus bekannt. Der Dijkstra-Algorithmus ist
beispielsweise in dem Fachaufsatz „A note an two
Problems in connexion with graphs" von Edsger W. Dijkstra,
Numerische Mathematik, Volume 1, Seiten 269 bis 271, Mathematisches
Centrum, Amsterdam, The Netherlands, 1959, beschrieben.
- – Jeweils einen korrespondierenden Gesamtknotenabstand
A vom jeweiligen ersten Knotenvoxel 5 zum jeweiligen zweiten
Knotenvoxel 5; die Ermittlung erfolgt hierbei anhand der
Einzelknotenabstände a, die den in der jeweiligen Knotenfolge enthaltenen
Paaren von Knotenvoxeln 5 zugeordnet sind.
- – Den Abstand a1 des ersten Skelettvoxels 5 vom jeweiligen
ersten Knotenvoxel 5.
- – Den Abstand a2 des zweiten Skelettvoxels 5 vom
jeweiligen zweiten Knotenvoxel 5.
- – Einen jeweiligen Gesamtabstand d, und zwar durch
Aufaddieren der zuvor ermittelten Abstände A, a1, a2.
-
Die
Ausführung des Schrittes S13 auf die obenstehend beschriebene
Weise ist der Regelfall. Die einzige Ausnahme ist gegeben, wenn
das erste und das zweite Skelettvoxel 5 im selben Abschnitt der
Skelettstruktur 9 angeordnet sind. Dieser Ausnahmefall
ist jedoch ohne weiteres erkennbar, da in diesem Fall die ersten
Knotenvoxel 5 identisch mit den zweiten Knotenvoxeln 5 sind.
In diesem Ausnahmefall kann beispielsweise der Abstand a1 des ersten
Skelettvoxels 5 zu einem der Knotenvoxel 5 ermittelt
werden und sodann der Abstand a2 des zweiten Skelettvoxels 5 zum
selben Knotenvoxel 5 ermittelt werden. Die Differenz der
Abstände a1, a2 ergibt den gesuchten Gesamtabstand d.
-
In
einem Schritt S14 ermittelt der Rechner das Minimum der im Schritt
S13 ermittelten Gesamtabstände d. Dieses Minimum gibt der
Rechner als Abstand des ersten Gefäßvoxels 5 vom
zweiten Gefäßvoxel 5 aus.
-
In
einem Schritt S15 prüft der Rechner, ob er das erfindungsgemäße
Abstandbestimmungsverfahren beenden soll. Wenn dies nicht der Fall
ist, geht der Rechner zum Schritt S7 zurück. Anderenfalls
beendet er das Verfahren.
-
Das
Prinzip des Schrittes S13 wird nachfolgend in Verbindung mit den 6 und 7 nochmals
etwas detaillierter erläutert. 7 weist
zu diesem Zweck Schritte S21 bis S25 auf, die in ihrer Gesamtheit
mit dem Schritt S13 von 2 korrespondieren.
-
Im
Schritt S21 bestimmt der Rechner die Knotenfolge vom selektierten
ersten Knotenvoxel 5 – beispielsweise dem Knotenvoxel 5r – zum
selektierten zweiten Knotenvoxel 5 – beispielsweise
zum Knotenvoxel 5h. Im Schritt S22 addiert der Rechner
die Einzelknotenabstände a der Knotenvoxelpaare 5r, 5f–5f, 5g–5g, 5h.
Das Ergebnis ist der gesuchte Gesamtknotenabstand A.
-
Im
Schritt S23 ermittelt der Rechner den Abstand a1 des ersten Skelettvoxels 5o zum
selektierten Knotenvoxel 5r. In analoger Weise ermittelt
der Rechner im Schritt S24 den Abstand a2 des zweiten Skelettvoxels 5p zum
selektierten Knotenvoxel 5h.
-
Im
Schritt S25 addiert der Rechner die in den Schritten S22 bis S24
ermittelten Abstände A, a1 und a2 zum gesuchten Gesamtabstand
d.
-
In
analoger Weise ermittelt der Rechner jeweils einen Gesamtabstand
d für die Knotenvoxelkombinationen 5q, 5h–5r, 5s–5q, 5s.
-
Wie
bereits erwähnt, ist es möglich, das erfindungsgemäße
Abstandbestimmungsverfahren so auszuführen, wie es obenstehend
erläutert wurde. Es ist jedoch eine Anzahl von Variationsmöglichkeiten gegeben.
Manche dieser Variationsmöglichkeiten bieten hierbei signifikante
Vorteile.
-
Beispielsweise
ist es möglich, dass der Rechner vorab, das heißt
vor dem Vorgeben der Gefäßvoxel 5 im
Schritt S7, ein Verfahren ausführt, das nachfolgend in
Verbindung mit 8 näher erläutert wird.
-
Gemäß 8 werden
zwischen die Schritte S6 und S7 Schritte S31 bis S40 eingeschoben.
Durch die Schritte S31 bis S40 wird erreicht, dass der Rechner vorab
für alle ersten und zweiten Knotenvoxel 5 die
korrespondierenden Knotenfolgen und die korrespondierenden Gesamtknotenabstände
A ermittelt und diese Abstände A in einer Tabelle 16 abspeichert,
nachfolgend zweite Knotenabstandstabelle 16 genannt. Dadurch
ist es möglich, die Schritte S21 und S22 von 7 dadurch
zu realisieren, dass der Rechner lediglich an der korrekten Stelle
auf die zweite Knotenabstandstabelle 16 zugreift und der zweiten
Knotenabstandstabelle 16 den gesuchten Gesamtknotenabstand
A entnimmt.
-
Im
Schritt S31 selektiert der Rechner das i-te Knotenvoxel 5 (i
= 1, ..., n – 1 mit n = Anzahl der Knotenvoxel 5).
Weiterhin selektiert der Rechner im Schritt S32 ein j-tes Knotenvoxel
(j = i + 1, ..., n).
-
Im
Schritt S33 prüft der Rechner, ob er innerhalb der Skelettstruktur 9 einen
Weg vom i-ten zum j-ten Knotenvoxel 5 auffinden kann. Wenn
der Rechner keinen Weg auffinden kann, trägt er im Schritt S34
in die zweite Knotenabstandstabelle 16 an der entsprechenden
Stelle einen Fehlereintrag ein. Beispielsweise kann der Rechner
den Gesamtabstand A gemäß 9 auf den
Wert Null setzen. Dieser Wert ist, da das i-te Knotenvoxel 5 und
das j-te Knotenvoxel 5 voneinander verschiedene Knotenvoxel 5 sind, sinnlos.
-
Wenn
die Prüfung des Schrittes S33 positiv verlaufen ist, ermittelt
der Rechner – beispielsweise gemäß dem
bereits erwähnten Dijkstra-Algorithmus – im Schritt
S35 den kürzesten Weg zwischen den beiden im Schritt S31
und S32 selektierten Knotenvoxeln 5. Im Schritt S36 addiert
der Rechner die ent lang der aufgefundenen Knotenfolge auftretenden
Einzelknotenabstände a. Das Ergebnis entspricht dem gesuchten
Gesamtknotenabstand A, den der Rechner im Schritt S36 (vergleiche 9)
in die zweite Knotenabstandstabelle 16 einträgt.
-
Die
Schritte S37 bis S40 gewährleisten, dass nacheinander alle
möglichen Paare von Knotenvoxeln 5 miteinander
kombiniert werden.
-
Weiterhin
ist es möglich, gemäß 10 den Schritt
S6 von 2 durch einen Schritt S46 zu ersetzen. Der Schritt
S46 umfasst inhaltlich den Schritt S6. Zusätzlich ermittelt
der Rechner im Rahmen des Schrittes S46 für jedes Normalvoxel 5 die
korrespondierenden Knotenvoxel 5 und speichert diese Knotenvoxel 5 in
einer Knotentabelle 17 ab. Dadurch ist es möglich,
den Schritt S9 von 2 derart auszugestalten, dass
der Rechner der Knotentabelle 17 nur noch die entsprechenden
Einträge entnehmen muss.
-
Wie
bereits erwähnt, kann es ausreichend sein, ausschließlich
die Grundknotenvoxel 5 als Knotenvoxel 5 heranzuziehen.
Diese Vorgehensweise kann insbesondere dann ausreichen, wenn eine
zusätzliche Tabelle erstellt wird, in der für
jedes Normalvoxel 5 die Abstände a1, a2 zu den
benachbarten Knotenvoxeln 5 eingetragen sind, oder die
Abstände a1, a2 in die Knotentabelle 17 mit eingetragen
sind. Es sind jedoch elegantere Möglichkeiten realisierbar. Insbesondere
ist es möglich, ein Verfahren zu realisieren, wie es nachfolgend
in Verbindung mit 11 näher erläutert
wird.
-
Gemäß 11 klassifiziert
der Rechner in einem Schritt S51 zunächst die Grundknotenvoxel 5 als
solche.
-
Sodann
selektiert der Rechner in einem Schritt S52 eines der Grundknotenvoxel 5 und
in einem Schritt S53 ein anderes der Grundknotenvoxel 5.
Das im Rahmen des Schrittes S53 selektierte Grundknotenvoxel 5 ist
hierbei dem im Schritt S52 selektierten Grundknotenvoxel 5 benachbart.
Der Begriff „be nachbart” bedeutet, dass zwischen
den beiden in den Schritten S52 und S53 selektierten Grundknotenvoxeln 5 innerhalb
der Skelettstruktur 9 kein anderes Grundknotenvoxel 5 angeordnet
ist. Gemäß 3 wäre
dies beispielsweise bei den Grundknotenvoxeln 5g und 5h gegeben,
nicht hingegen bei den Grundknotenvoxeln 5f und 5h.
-
Für
das selektierte Paar von Grundknotenvoxeln 5 ermittelt
der Rechner in einem Schritt S54 einen Polygonzug Z. 12 zeigt
beispielhaft einen derartigen Polygonzug Z. Jedes kleine Quadrat
entspricht in 12 einem Skelettvoxel 5.
Der Polygonzug Z erstreckt sich gemäß 12 von
dem im Schritt S52 selektierten Grundknotenvoxel 5 zu dem im
Schritt S53 selektierten Grundknotenvoxel 5. Er besteht
aus einer Anzahl von Polygonlinien 18. Die Polygonlinien 18 grenzen
(selbstverständlich) paarweise aneinander an. Die Orte,
an denen die Polygonlinien 18 aneinander angrenzen, korrespondieren jeweils
mit dem Ort eines Skelettvoxels 5.
-
Der
Rechner ermittelt jede Polygonlinie 18 derart, dass die
Abstände der Skelettvoxel 5, die innerhalb der
Skelettstruktur 9 zwischen den die jeweilige Polygonlinie 18 terminierenden
Skelettvoxeln 5 angeordnet sind, von der jeweiligen Polygonlinie 18 eine
Abstandsbedingung erfüllen. Beispielsweise kann gefordert
sein, dass das Maximum oder der Mittelwert oder ein Medianwert der
Abstände der betreffenden Skelettvoxel 5 einen
vorbestimmten Grenzwert nicht übersteigt. Auch andere statistische
Abstandsbedingungen (beispielsweise mit Einbeziehung einer Streuung)
sind möglich.
-
Die
Skelettvoxel 5, an denen Polygonlinien 18 aneinander
angrenzen, klassifiziert der Rechner in einem Schritt S55 als Zusatzknotenvoxel 5.
Die Grundknotenvoxel 5 und die Zusatzknotenvoxel 5 bilden
zusammen die Knotenvoxel 5. Die anderen Skelettvoxel 5 klassifiziert
der Rechner in einem Schritt S56 als Normalvoxel 5.
-
In
einem Schritt S57 ermittelt der Rechner für jede Polygonlinie 18 eine
Polygonlinienlänge a'. Jede Polygonlinienlänge
a' korrespondiert mit dem Einzelknotenabstand a der die entsprechende
Polygonlinie 18 terminierenden Knotenvoxel 5.
Sie kann daher – ebenfalls im Rahmen des Schrittes S57 – dem
entsprechenden Paar von Knotenvoxeln 5 als Einzelknotenabstand
a zugeordnet werden.
-
Durch
die obenstehend beschriebene Vorgehensweise ist es möglich,
im Rahmen der Schritte S23 und S24 von 7 für
die Ermittlung der Abstände a1 und a2 den Euklidischen
Ansatz anzuwenden.
-
Alternativ
wäre es möglich, die Definition der Zusatzknotenvoxel 5 zu
unterlassen. In diesem Fall müsste die Summe der Polygonlinienlängen
a' ermittelt werden und dem Paar von Grundknotenvoxeln 5 als
dessen Einzelknotenabstand a zugeordnet werden. Auch diese Vorgehensweise
ist möglich. Sie kann insbesondere dann sinnvoll sein,
wenn – beispielsweise unter Zwischenverwendung der ermittelten
Polygonlinien 18 – die Abstände der Skelettvoxel 5 von
den Grundknotenvoxeln 5 vorab ermittelt werden und in der
bereits erwähnten, nicht dargestellten Tabelle oder in
der Knotentabelle 17 gespeichert werden.
-
Die
Schritte S58 bis S61 sind selbsterklärend. Sie bewirken,
dass nacheinander für alle Paare benachbarter Grundknotenvoxel 5 der
jeweilige Polygonzug Z ermittelt wird.
-
Zum
Ermitteln des Polygonzuges Z gibt es verschiedene Möglichkeiten.
Beispielsweise ist es möglich, zunächst das im
Schritt S52 selektierte Grundknotenvoxel 5 als Startpunkt
zu definieren und sodann um eine vorbestimmte Anzahl von Skelettvoxeln 5 voranzuschreiten.
Als nächstes wird geprüft, ob die Abstandsbedingung
erfüllt ist. Wenn die Abstandsbedingung erfüllt
ist, wird wieder um die vorbestimmte Anzahl von Skelettvoxeln 5 weitergegangen. Wenn
die Abstandsbedingung nicht erfüllt ist, wird um einen
Schritt zurückgegangen. Das jetzt aufgefundene Skelettvoxel 5 bildet
dann ein Zwischenknotenvoxel 5, von dem ausgehend in analoger
Weise die nächste Polygonlinie 18 ermittelt wird.
Diese Vorgehensweise wird fortgesetzt, bis das im Schritt S53 selektierte
Grundknotenvoxel 5 erreicht ist. Bevorzugt ist jedoch eine
andere Vorgehensweise, die nachfolgend in Verbindung mit 13 näher
erläutert wird.
-
Gemäß 13 verbindet
der Rechner zunächst in einem Schritt S71 die beiden Grundknotenvoxel 5 des
betrachteten Paares von Grundknotenvoxeln 5 mittels eines
Anfangpolygonzuges miteinander. Der Anfangspolygonzug entspricht
mit Ausnahme des Umstandes, dass er unabhängig vom Einhalten
der Abstandsbedingung ermittelt wird, den Bedingungen, die der Polygonzug
Z erfüllt. Der Anfangspolygonzug ist im Regelfall relativ
grob bestimmt. Im einfachsten Fall besteht er gemäß 14 aus
einer einzigen Polygonlinie 18, die sich zwischen den beiden
Grundknotenvoxeln 5 des betrachteten Paares von Grundknotenvoxeln 5 erstreckt.
-
In
einem Schritt S72 selektiert der Rechner eine erste Polygonlinie 18 des
momentanen Polygonzuges. In einem Schritt S73 prüft der
Rechner, ob die selektierte Polygonlinie 18 die Abstandsbedingung
erfüllt. Wenn dies nicht der Fall ist, selektiert der Rechner
in einem Schritt S74 ein Skelettvoxel 5, das innerhalb
der Skelettstruktur 9 zwischen den beiden die momentan
selektierte Polygonlinie 18 terminierenden Skelettvoxeln 5 liegt.
Bevorzugt ist hierbei eine in etwa mittige Teilung (siehe 15).
Dies ist jedoch nicht zwingend erforderlich. Auch wäre
es möglich, eine Selektion von mehr als zwei derartigen Skelettvoxeln 5 vorzunehmen.
Die neu selektierten Skelettvoxel 5 bilden diejenigen Stellen,
an denen gemäß 15 die
Polygonlinien 18 eines entsprechend modifizierten Polygonzuges
aneinander angrenzen.
-
Wenn
umgekehrt die Abstandsbedingung erfüllt ist, übernimmt
der Rechner die jeweilige Polygonlinie 18. Der korrespondierende
Schritt S75 ist hierbei in 13 gestrichelt
einge zeichnet, da eigentlich keine aktive Maßnahme ergriffen
werden muss. Der Schritt S75 dient also lediglich dem besseren Verständnis
der vorliegenden Erfindung.
-
In
einem Schritt S76 prüft der Rechner, ob er bereits alle
Polygonlinien 18 des momentanen Polygonzuges abgearbeitet
hat. Wenn dies nicht der Fall ist, selektiert der Rechner in einem
Schritt S77 die nächste Polygonlinie 18 und geht
zum Schritt S73 zurück.
-
Wenn
der Rechner alle Polygonlinien 18 überprüft
hat, geht er zu einem Schritt S78 über. Dort prüft
der Rechner, ob er alle Polygonlinien 18 beibehalten hat
oder ob er mindestens eine Polygonlinie 18 ersetzt hat.
Je nach Ergebnis der Überprüfung des Schrittes
S78 ist eine erneute Iteration erforderlich oder ist das Verfahren
von 13 beendet.
-
Mittels
des beschriebenen Verfahrens nimmt der Polygonzug beispielsweise
nacheinander die Formen an, die in den 14, 15, 16, 17 und 18 dargestellt
sind.
-
Wenn
das Verfahren von 13 beendet ist, erfüllt
der ermittelte Polygonzug, gemäß Beispiel also der
in 18 dargestellte Polygonzug, in seiner Gesamtheit
die Abstandsbedingung. Es ist daher möglich, den so ermittelten
Polygonzug Z direkt zu übernehmen. Alternativ ist es möglich,
mit einem Verfahren fortzusetzen, das nachfolgend in Verbindung
mit 19 näher erläutert wird. Im
Rahmen dieses Verfahrens wird der im Rahmen des Verfahrens von 13 ermittelte
Polygonzug Z teilweise wieder vergröbert. Diese Vorgehensweise
steht jedoch nur scheinbar im Widerspruch zu der Vorgehensweise von 13.
Dies wird aus der nachfolgenden Beschreibung von 19 ersichtlich
werden.
-
Gemäß 19 selektiert
der Rechner zunächst in einem Schritt S81 die erste Polygonlinie 18 des
Polygonzuges von 18. In einem Schritt S82 selektiert
der Rechner die unmittelbar benachbarte Polygonlinie 18 und
ersetzt die beiden nunmehr se lektierten Polygonlinien 18 durch
eine gemeinsame Zwischenpolygonlinie 18. Für diese
gemeinsame Zwischenpolygonlinie 18 prüft der Rechner
in einem Schritt S83, ob die Abstände der für
die gemeinsame Polygonlinie 18 relevanten Skelettvoxel 5 von
der gemeinsamen Zwischenpolygonlinie 18 die Abstandsbedingung
erfüllen. Wenn die gemeinsame Zwischenpolygonlinie 18 die
Abstandsbedingung erfüllt, klassifiziert der Rechner das
Skelettvoxel 5, das den beiden vorherigen Polygonlinien 18 gemeinsam
ist, in einem Schritt S84 zu einem Normalvoxel 5 zurück. Sodann
geht der Rechner zum Schritt S82 zurück. Durch diese Vorgehensweise
wird erreicht, dass die zuvor betrachteten Polygonlinien 18 endgültig
durch die gemeinsame Polygonlinie 18 ersetzt werden. Für jede
Zwischenpolygonlinie 18, bei der die Abstandsbedingung
nicht erfüllt ist, verwirft der Rechner die gemeinsame
Zwischenpolygonlinie in einem Schritt S85.
-
Die
Schritte S86 und S87 bewirken, dass nacheinander alle Polygonlinien 18 soweit
wie möglich durch gemeinsame Polygonlinien 18 ersetzt
werden.
-
Der
nunmehr ermittelte Polygonzug Z stellt im Regelfall den endgültigen
Polygonzug Z dar (siehe 12). Auch
hier sind jedoch noch weitergehende Maßnahmen möglich.
-
Die
vorliegende Erfindung weist viele Vorteile auf. Insbesondere ist
es nur erforderlich, relativ kleine Tabellen 10, 14, 16, 17 im
Arbeitsspeicher des Rechners zu halten. Weiterhin ist das erfindungsgemäße
Abstandbestimmungsverfahren nicht rechenintensiv. Ein Großteil
der erforderlichen Berechnungen kann weiterhin vorab durchgeführt
werden. Es arbeitet daher sehr schnell. Im Vergleich zum Stand der
Technik ist – bei gleicher Rechenleistung – eine Beschleunigung
um mindestens den Faktor 10 erreichbar.
-
Die
obige Beschreibung dient ausschließlich der Erläuterung
der vorliegenden Erfindung. Der Schutzumfang der vorliegenden Erfindung
soll hingegen ausschließlich durch die beigefügten
Ansprüche bestimmt sein.
-
- 1
- Computerprogramm
- 2
- Datenträger
- 3
- Maschinencode
- 4
- Volumendatensatz
- 5
- Voxel
- 6
- Gefäßstruktur
- 7,
8
- Bereiche
- 9
- Skelettstruktur
- 10
- Skeletttabelle
- 11
- Normalenebene
- 12
- Verbindungslinie
- 13
- Tangente
- 14,
16
- Knotenabstandstabellen
- 15
- Anwender
- 17
- Knotentabelle
- 18
- Polygonlinien
- a,
a1, a2, A
- Abstände
- a'
- Polygonlinienlänge
- d
- Gesamtabstand
- S1
bis S87
- Schritte
- x,
y, z
- Koordinaten
- Z
- Polygonzug
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste
der vom Anmelder aufgeführten Dokumente wurde automatisiert
erzeugt und ist ausschließlich zur besseren Information
des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen
Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt
keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Nicht-Patentliteratur
-
- - Fachaufsatz „A
3D 6-subiteration thinning algorithm for extracting medial lines” von
K. Palagyi und A. Kuba, Pattern Recognition Letters, Band 19, Nr.
7, 1998, Seiten 613 bis 627 [0054]
- - Fachaufsatz „A note an two Problems in connexion
with graphs” von Edsger W. Dijkstra, Numerische Mathematik,
Volume 1, Seiten 269 bis 271, Mathematisches Centrum, Amsterdam,
The Netherlands, 1959 [0072]