-
Die Erfindung betrifft ein Verfahren und eine Vorrichtung zur effizienten Veränderung der Darstellung eines dreidimensionalen Volumens mittels Ray Casting.
-
Die Erfindung liegt auf dem Gebiet des Volume Rendering, d.h. der Darstellung bzw. Visualisierung von dreidimensionalen Körpern bzw. Objekten. Die Modellierung, Rekonstruktion oder Visualisierung von dreidimensionalen Objekten hat einen weiten Anwendungsbereich in den Feldern Medizin (z.B. CT, PET, MR, Ultraschall), Physik (z.B. Elektronenstruktur großer Moleküle) oder Geophysik (Beschaffenheit und Lage von Erdschichten). Typischerweise wird das zu untersuchende Objekt bestrahlt (z.B. mittels elektromagnetischer Wellen oder Schallwellen), um seine Beschaffenheit zu untersuchen. Die gestreute Strahlung wird detektiert und aus den detektierten Werten werden Eigenschaften des Körpers ermittelt. Üblicherweise besteht das Ergebnis in einer physikalischen Größe (z.B. Dichte, Anteil von Gewebebestandteilen, Elastizität, Geschwindigkeit), deren Wert für den Körper ermittelt wird. Dabei verwendet man in der Regel ein virtuelles Gitter, an dessen Gitterpunkten der Wert der Größe ermittelt wird. Diese Gitterpunkte bzw. die Werte der Größe an diesen Orten werden üblicherweise als Voxel bezeichnet. Diese liegen häufig in der Form von sog. Grauwerten vor.
-
Mittels Volume Rendering wird aus den Voxeln eine dreidimensionale Darstellung des untersuchten Objekts bzw. Körpers auf einer zweidimensionalen Darstellungsfläche (z.B. Bildschirm) erzeugt. Dabei werden aus den Voxeln sog. Pixel erzeugt (häufig mit der Zwischenstufe von aus den Voxeln durch Interpolation gewonnenen Objektpunkten), aus welchen das Bild der zweidimensionalen Bildanzeige zusammengesetzt ist. Um auf einer zweidimensionalen Anzeige drei Dimensionen zu visualisieren, wird in der Regel ein sog. Alpha-Compositing bzw. eine Alpha-Zerlegung vorgenommen. Bei dieser Standardmethode werden Voxeln bzw. aus Voxeln gebildeten Volumenpunkten sowohl Farben als auch Durchlässigkeitswerte, genauer gesagt Werte für die Undurchlässigkeit bzw. Opazität (üblicherweise bezeichnet mit dem englischen Begriff Opacity, der die Durchlässigkeit bzw. die Deckkraft verschiedener Schichten des Körpers ausdrückt) zugeordnet. Konkreter werden einem Objektpunkt üblicherweise drei Farben in Form eines Drei-Tupels, der die Anteile der Farben rot, grün und blau kodiert (sog. RGB-Wert), und ein sog. Alpha-Wert, der die Undurchlässigkeit parametrisiert, zugeordnet. Zusammen bilden diese Größen einen Farbwert RGBA, der mit den Farbwerten anderer Objektpunkte zu einem Farbwert für das Pixel kombiniert bzw. gemischt werden (für die Visualisierung von teilweise transparenten Objekten üblicherweise mittels eines sog. alpha blending).
-
Für die Zuordnung eines passenden Farbwertes wird meist mit einem Beleuchtungsmodell gearbeitet. Dieses Beleuchtungsmodell berücksichtigt Lichteffekte (in der Regel Reflexionen des Lichtes an Oberflächen des Objektes; dabei kann es sich um die äußere Oberfläche oder um Oberflächen innere Schichten des untersuchten Objektes handeln) bei einer zum Zwecke der Visualisierung modellierten bzw. simulierten Bestrahlung des Objektes.
-
Es gibt in der Literatur eine Reihe von Beleuchtungsmodellen, die angewandt werden. Gebräuchlich ist z.B. das Phong- oder Blinn-Phong-Modell.
-
Eines der meistbenutzten Verfahren zum Volume Rendering ist das sog. Ray-Casting bzw. die Simulation einer Lichteinstrahlung zur Darstellung bzw. Visualisierung des Körpers. Beim Ray-Casting werden imaginäre Strahlen, die vom Auge eines imaginären Betrachters ausgehen, durch den untersuchten Körper bzw. das untersuchte Objekt gesendet. Entlang der Strahlen werden für Abtastpunkte RGBA-Werte aus den Voxeln bestimmt und zu Pixeln für ein zweidimensionales Bild mittels Alpha Compositing bzw. Alpha Blending vereinigt. Beleuchtungseffekte werden dabei üblicherweise mittels eines der oben abgesprochenen Beleuchtungsmodelle im Rahmen eines mit „Shading“ bezeichneten Verfahrens berücksichtigt.
-
Für das bessere Studium von Eigenschaften eines mit Volume Rendering dargestellten Objektes ist häufig eine geeignete Anpassung der Darstellung des Objektes erforderlich. Konkret soll es möglich sein, die Darstellung des auf einem Bildschirm dargestellten Objekts zu verändern oder zu beeinflussen, z.B. indem Teile des Objekts eingefärbt, entfernt oder vergrößert werden. Für derartige Manipulationen werden in der englischsprachigen Fachliteratur auch die Begriffe Volume Editing und Segmentation benutzt. Volume Editing bezieht sich dann auf Eingriffe wie Clipping, Cropping und Punching. Segmentation erlaubt die Klassifizierung von Objektstrukturen, wie z.B. anatomische Strukturen eines dargestellten Körperteils. Im Zuge der Segmentierung werden z.B. Objektbestandteile eingefärbt oder entfernt. Der Begriff Direct Volume Editing bezieht sich auf das interaktive Editieren bzw. Beeinflussen der Objektdarstellung mittels virtuellen Werkzeugen wie Pinsel (brushes), Meißel (chisels), Bohrer (drills) oder Messer (knifes). Zum Beispiel kann der Benutzer interaktiv das auf einem Bildschirm dargestellte Bild des Objektes durch Einfärben oder Wegschneiden on Objektteilen mittels einer Maus oder einem anderen haptischen oder anders funktionierenden Eingabemittel verändern.
-
Bei einer derartigen Bearbeitung des dargestellten Objekts ist es vielfach nicht ausreichend, die berechneten Pixel des Objektbildes zu verändern, sondern es muss eine Neuberechnung von Pixel erfolgen. D.h. bei vielen derartigen Manipulationen (Einfärbungen, Clippings, ...) muss das Volume Rendering bei jeder Änderung neu durchgeführt werden. Die Manipulation wird dann an den für das Volume Rendering verwendeten Volumendaten durchgeführt. Ein Verfahren dafür wurde von Bürger et al. [1] vorgeschlagen. Dieses Verfahren ermöglicht eine Manipulation der Darstellung über das direkte Editieren eines replizierten Volumens.
-
Es besteht ein Bedarf an flexiblen, aufwandsarmen Verfahren zur Manipulation der Darstellung von Objekten mittels Ray Casting, wobei vor allem Speicher-, Rechen- und Bandbreitenanforderungen im Vergleich zu bekannten Verfahren reduziert werden sollten.
-
Die Erfindung hat zur Aufgabe eine effiziente Veränderung der Darstellung eines dreidimensionalen Volumens (Objektes) mittels Ray Casting zu ermöglichen.
-
Diese Aufgabe wird durch die Ansprüche gelöst.
-
Erfindungsgemäß wird vorgeschlagen, für die Veränderung (Einfärben, Clipping, etc.) der Darstellung eines dreidimensionalen Volumens bzw. Objektes mittels Ray Casting Bereiche einzuführen und eine Zuordnung zwischen betroffenen Bereichen und relevanten Veränderungen vorzunehmen. Bei der Einteilung des Volumens in Bereiche oder Zellen korrespondieren diese vorzugsweise mit Raumpunkten des Volumens, an welchen Werte einer ein Objekt charakterisierenden Größe gegeben sind. Bei dieser Größe handelt es sich beispielsweise um Dichtewerte, welche z.B. mittels Messungen bestimmt bzw. rekonstruiert wurden. Sinnvollerweise ist dann für jeden Raumpunkt genau ein Bereich festgelegt, d.h. bei dieser bevorzugten Lösung ist für jeden derartigen Raumpunkt bzw. für jedes Voxel genau ein Bereich definiert.
-
Die Eingabe einer durchzuführenden Veränderung der Darstellung kann beispielsweise mittels Parameter erfolgen. Z.B ist die Veränderung dabei durch ein zu veränderndes Volumen und eine für das Volumen durchzuführende Darstellungsänderung definiert. Diese Darstellungsänderung kann z.B. mittels Transferfunktionen, RGBA-Werten oder Opazitätswerten bzw. einer Kombination davon kodiert sein.
-
Das zu verändernde Volumen kann aus Volumensegmenten zusammengesetzt sein. Durch Parameter, wie z.B. Randpunkte und Radius, können dann die einzelnen Segmente und damit das Volumen festgelegt werden. Nach Festlegung der Veränderung werden die von der Veränderung betroffenen Bereiche bestimmt. Dabei kann das Kriterium eine nichtleere Schnittmenge zwischen Bereich und zu verändernden Volumen sein. Eine Veränderung wird als für einen Bereich relevant eingestuft, wenn der Bereich von der Veränderung betroffen ist. Erfindungsgemäß wird eine Zuordnung zwischen betroffenen Bereichen und relevanten Veränderungen vorgenommen. Dabei ist vorzugsweise zumindest für betroffene Bereiche jeweils eine Information gegeben, welche für den jeweiligen Bereich eine Menge relevanter Veränderungen festlegt. Diese Zuordnung kann mittels einer Liste realisiert sein. Diese Liste ordnet z.B. Bereichen Indizes zu, welche die relevanten Veränderungen identifizieren. Dabei kann auch nur eine oder keine Veränderung relevant sein.
-
Gemäß einer Ausgestaltung wird pro Bereich ein maximaler und minimaler Index angegeben, die so gewählt sind, dass alle relevanten Indizes in dem durch die beiden Indizes als Grenzen gegebenen Indexintervall liegen. D.h. durch eine Schleife über die Indizes würden alle relevanten Veränderungen erfasst. Schließlich wird ein Ray Castings mittels simulierten Strahlen durchgeführt, wobei für Abtastpunkte entlang der Strahlen eine Veränderung nur dann vorgenommen wird, wenn der Abtastpunkt in einem betroffenen Bereich liegt. Zur diesem Zweck kann für einen Abtastpunkt zunächst der Bereich bestimmt werden, in dem der Abtastpunkt liegt. Die Berücksichtigung von Veränderungen für die Berechnung des Ray Casting Wertes des Abtastpunktes ist dann auf die für den Bereich als relevant zugeordneten Veränderungen beschränkt.
-
Durch die Erfindung wird die Durchführung eines Ray Castings im Zuge von der Veränderung des Dargestellten Volumens im Zuge der Einfärbung oder Entfernung von Schichten effizienter. Nur eine beschränkte Menge von Veränderungen muss für die Berechnung von Abtastwerten überprüft und ggf. berücksichtigt werden, wobei diese Menge auch ein oder kein Element umfassen kann. Eine erhebliche Aufwandsreduktion kann somit realisiert werden.
-
Gemäß einer Weiterbildung wird eine Mehrzahl von Veränderungen vorgenommen und es werden für betroffene Bereiche jeweils alle relevanten Veränderungen zugeordnet. Dabei wird eine erste Veränderung als nicht mehr relevant für einen Bereich eingestuft, wenn eine zweite, spätere Veränderung erfolgt, durch welche die erste Veränderung in der Darstellung des Bereichs nicht mehr sichtbar ist. Für die nicht mehr relevante Änderung wird die Zuordnung zwischen der Änderung und dem Bereich aufgelöst. Dieses Vorgehen berücksichtigt z.B. einen Fall, bei dem eine spätere Änderung den Bereich vollständig überdeckt, so dass eine frühere bei der Darstellung keine Rolle mehr spielt.
-
Die Erfindung umfasst auch eine Vorrichtung zur Durchführung eines erfindungsgemäßen Ray Castings.
-
Im Folgenden wird die Erfindung anhand von Figuren näher erläutert. Es zeigen
-
1: das Prinzip von Ray-Casting Verfahren
-
2: die Eingabe eines zu verändernden Bereichs mittels Parametern
-
3: über Parameter eingegebene Striche
-
4: ein mittels Parameter definiertes Segment
-
5: ein in Bereiche untergliedertes Volumen und dessen Darstellung im Rahmen eines erfindungsgemäßen Renderings
-
6: ein Flussdiagramm für ein erfindungsgemäßes Verfahren
-
7: eine Hardwarestruktur zur Durchführung des erfindungsgemäßen Verfahrens
-
Im Folgenden wird angenommen, dass für ein Volumen bzw. ein von diesem Volumen umfasstes, darzustellendes Objekt eine Repräsentation erhalten wurde. Diese Repräsentation besteht aus das Objekt charakterisierenden Werten, die Raumpunkten (Voxeln) des Volumens zugeordnet sind. In der medizinischen Bildgebung liegen die Werte zunächst in Form von sogenannten Grauwerten vor, welche ein Maß für die Dichte an dem jeweiligen Raumpunkt darstellen. Bei medizinischen Anwendungen entsprechen die Grauwerte Dichtewerten von untersuchtem Gewebe, welches durch Messungen erhalten wurde. Typischerweise werden diese Messungen mit Röntgenstrahlen, Kernspintomographie, Ultraschall etc. durchgeführt. Die Darstellung des Objektes erfolgt dann mittels Ray-Casting.
-
1 zeigt das Prinzip von Ray-Casting Verfahren, wie sie derzeit verwendet werden. Strahlen werden von einem virtuellen Auge 11 durch jedes Pixel einer virtuellen Bildebene 12 gesendet. Punkte dieser Strahlen werden innerhalb des Volumens bzw. eines Objekts O an diskreten Positionen (erste Position 13) abgetastet. Eine Vielzahl der Abtastwerte wird dann zu einer endgültigen Pixelfarbe kombiniert. Der Ausgangspunkt für die Kombination des Objekts O mittels RGBA-Werten, welche mit Hilfe von sog. Transferfunktionen erhalten werden.
-
Das dann auf einem Bildschirm dargestellte Objekt ist dann durch einen Betrachter bzw. Nutzer veränderbar. Eine Veränderung dient der besseren Darstellung von Eigenschaften des Objekts. Zu diesem Zweck können z.B. für Regionen des Objekts eine Einfärbung, eine Änderung der Lichttransparenz oder eine Abtragung durchgeführt werden. Zu diesem Zwecke müssen prinzipiell zwei Informationen vorgegeben werden:
- A. Die zu verändernde Region
- B. Die Art der Veränderung
-
Die zu verändernde Region wird vorzugsweise mittels über Parameter definiert, welche teilweise direkt (z.B. mit Hilfe einer Computermaus) eingegeben werden. Eine mögliche Vorgehensweise zeigen die 2 und 3.
-
Der Benutzer bzw. Anwender beschreibt zur Eingabe mit einem Eingabemittel (z.B. Computermaus) auf dem dargestellten Bild einen Strich. Dieser Strich wird registriert, d.h. die Position des Eingabemittels wird detektiert. Alternativ klickt der Nutzer beim Anfangs- und Endpunkt eines Strichs und diese Klicks werden erfasst. Anfangs- und Endpunkt des Strichs werden den entsprechenden auf dem Monitor gezeigten Punkten auf der Oberfläche des Objektes zugeordnet. D.h. durch einen Strich werden zwei, üblicherweise auf der Oberfläche des Objektes liegende Punkte P1 und P2 definiert. Solange ein Eingabemodus (der z.B. dem Drücken einer Maustaste entspricht) beibehalten wird, können mehrere Striche nacheinander durchgeführt werden, um entsprechende Bereiche des Objektes zu modifizieren, wobei jeweils zwei aufeinanderfolgende Punkte ein Liniensegment definieren.
-
Vorzugsweise werden dabei eingegebene Informationen sofort mittels Rendering in eine entsprechend geänderte Darstellung des Objekts umgesetzt. Die mitlaufende Anpassung der Bilddarstellung auf dem Monitor (durch entsprechendes Rendering des Objektes) hat den Vorteil, dass der Nutzer bei der Eingabe direkt eine visuelle Rückmeldung erhält und diese für die weitere Eingabe verwenden kann.
-
Für die vollständige Bestimmung der zu modifizierenden Region wird ein Abstandskriterium verwendet. Durch die Eingabe entsprechend sind entweder ein einzelner Punkt, ein Liniensegment (mit Randpunkten P1 und P2) oder eine Mehrzahl von Liniensegmenten definiert. Für Punkte, an denen RGBA-Werte gem. der Repräsentation gegeben sind, wird der minimale Abstand zu der entsprechenden Punktmenge (Punkt, Segment oder Mehrzahl von Segmenten) berechnet. Dies ist in 2 für das durch P1 und P2 definierte Liniensegment (Punkte P mit P = P1 + u * (P2 – P1), u aus [0, 1]) gezeigt. Für den Punkt P1RGBA ist der minimale Abstand d1 der Abstand zu dem Punkt P auf dem Segment. Dabei kann der Punkt P mit dem minimalen Abstand aus der Bedingung ermittelt werden, dass eine durch P und P1RGBA führende Gerade senkrecht zu dem durch P1 und P2 definierten Liniensegment ist. Mit dem Skalarprodukt von Vektoren kann diese Bedingung ausgedrückt werden als (P1RGBA – P) * (P2 – P1) = 0. Der Ansatz P = P1 + u * (P2 – P1) eingesetzt in diese Beziehung und Auflösen nach u liefert dann umin = (P1RGBA – P1) * (P2 – P1)/(P2 – P1) **2. Der Abstand d1 ist dann durch den Abstand der Punkte P1RGBA und P gegeben, wobei P durch umin bestimmt ist (P = P1 + umin * (P2 – P1)). Für die Punkte P2RGBA und P3RGBA sind die minimalen Abstände d2 und d3 die Abstände zu den Endpunkten des Segments P1 bzw. P2. Für eine Mehrzahl von Segmenten wird der minimale Abstand durch das Minimum der minimalen Abstände zu den einzelnen Segmenten ermittelt. Das Ergebnis ist die Veränderung der Darstellung des Objektes im Bereich der Segmente. Dies ist in 3 für zwei Fälle veranschaulicht. Oben ist eine aus sechs Segmentlinien erzeugte Einfärbung eines Bereichs und unten eine aus zwei Segmentlinien bestehende Einfärbung gezeigt. Dabei wurden unterschiedliche maximale Abstände (d1(MAX) bzw. d2(MAX)) verwendet, was zu unterschiedlichen Breiten der eingefärbten Bereiche führt. Diese Breite lässt sich gem. bestehender Anforderungen anpassen. Es ist auch denkbar, die Tiefe des Bereichs unabhängig von der Breite zu variieren. Z.B. können durch das Abstandskriterium die Strahlen eines Ray Castings definiert werden, für die eine RGBA-Wert-Anpassung erfolgt. Die Länge des Strahl (von der Oberfläche aus), für die die Anpassung erfolgt, kann nach einem andern Kriterium erfolgen. Dies kann ein Abstandskriterium sein. Sinnvoll kann es aber auch sein, eine Anpassung vorzunehmen, bis eine Gewebeänderung erfolgt, d.h. dem Strahl entlang RGBA-Werte für eine Gewebeklasse anzupassen. Dies ist für eine Entfernung einer Gewebeschicht an eingegebenen Stellen hilfreich.
-
Das Kriterium für die Änderung bzw. Modifizierung des RGBA-Werts an einem Punkt PRGBA ist, dass der minimale Abstand kleiner ist als ein Maximalabstand d(MAX).
-
Eine Veränderung der Darstellung kann mit RGBA-Werten kodiert werden. Je nach Änderung des RGBA-Wertes wird eine (z.B. sich aus mehreren Teilsegmenten zusammensetzende) Region eingefärbt, lichtundurchlässig gemacht oder entfernt. Bei einer Einfärbung kann z.B. ein RGB-Wert vorgegeben werden, mit dem der jeweilige RGBA-Wert (z.B. durch Addition, Subtraktion, Multiplikation oder Substitution) modifiziert wird. Eine weitere Möglichkeit liegt in der Vorgabe einer speziellen Transferfunktion für die Region.
-
Dabei muss keine einheitliche Veränderung der gesamten Region durchgeführt werden. Beispielsweise kann ein „Fuzzy-Pinsel“ verwendet werden. D.h. dass in der Gegend des Regionenrandes der Effekt eines fließenden Übergangs erzeugt wird. Derartige Effekte können dadurch realisiert werden, dass die innerhalb einer Region durchgeführte Veränderung nicht gleichmäßig durchgeführt wird.
-
In 4 Ist ein Segment 41 gezeigt, welches Teil einer mittels Pinselstrich veränderten Region ist. Dieses Segment ist mittels zwei Punkten P1 und P2 definiert, welche eine Mittelstrecke 42 vorgeben, die die Segmentlänge festlegt. Durch einen Radius 43 ist die Gesamtausdehnung des Segments als die Punkte definiert, deren senkrechter Abstand zu der Mittelstrecke 42 kleiner oder gleich dem Radius 43 sind. Beim Rendering werden Strahlen durch dieses Segment simuliert. Ein Strahl 44 ist exemplarisch eingezeichnet. Entlang dieses Strahles 44 werden im Rahmen eines Ray Castings RGBA-Werte berechnet und zu einem Pixel kombiniert. Eine Position 45 für diese Berechnung ist eingezeichnet. Die Berechnung des RGBA-Wertes für diese Position ist durch den Pinselstrich verändert. Die Veränderung hängt von Parametern ab, die für den Pinselstrich vorgegeben wurden (z.B. RGBA-Werte, Transfer-Funktion). Die Veränderung kann zudem von der Position 45 abhängen, z.B. bei einem „Fuzzy-Pinsel“. Die Punkte innerhalb der Region können in der Regel eindeutig mit drei Parametern festgelegt werden, z.B. dem senkrechten Abstand 46 zur Mittelstrecke 42, der Lage 47 der senkrechten Projektion auf der Mittelstrecke 42 und einem geeignet definierten Winkel 48. Die Veränderung (z.B. RGBA-Wert, Transferfunktion) kann nun eine Funktion von diesen Parametern (senkrechter Abstand 46, Lage 47 und Winkel 48) sein, z.B. um einen sanfteren Übergang im Regionenrandbereich zu erzeugen.
-
Da Position 45 innerhalb sich innerhalb der veränderten Region befindet, wird also beim Ray Casting eine Veränderung durchgeführt. Herkömmlich wird bei der Simulierung der Strahlen für jeden der Abtastpunkte überprüft, ob und ggf. welche Veränderungen durchzuführen sind. Dieses Vorgehen ist mit erheblichem Aufwand verbunden.
-
Durch das erfindungsgemäße Vorgehen wird hier das Verfahren effizienter gemacht. Das darzustellende Volumen wird in (in der Regel dreidimensionale) Bereiche eingeteilt. Dabei ist vorzugsweise zu jedem für die Repräsentation des Objektes verwendeten Raumpunkt bzw. Voxel genau ein Bereich definiert. Die Bereiche, welche durch eine Veränderung betroffen sind, werden im Zuge der Eingabe bzw. Festlegung der Veränderung gekennzeichnet bzw. indiziert. Bei mehreren Veränderungen referenziert diese Kennzeichnung gemäß einer Weiterbildung genau die Veränderungen, welche für den Bereich relevant sind. Relevant ist dabei eine Veränderung für einen Bereich, wenn zumindest ein Teil des Bereiches mit der Region der Veränderung überlappt. Im Folgenden wird der Einfachheit halber angenommen, dass Veränderungen jeweils mit einer Indexzahl versehend sind und die Kennzeichnung durch eine Indexliste gegeben ist, wobei einem Bereich jeweils ein minimaler (erster) und eine maximaler (letzter) Index zugeordnet sind. Die Veränderungen in dem durch diese beiden Indizes definierten Indexbereich werden als relevant für den entsprechenden Bereich betrachtet. Bereiche mit nur einer relevanten Veränderung haben den entsprechenden Index und Bereich ohne relevante Veränderung den Index null zugeordnet.
-
Das Vorgehen wird im Folgenden anhand von 5 detaillierter in zwei Dimensionen dargestellt, was eine Vereinfachung gegenüber dem Regelfall in drei Dimensionen darstellt.
-
In 5 ist ein Raster gegeben, welches Bereiche bzw. Zellen definiert. Dabei handelt es sich um 32*23 = 736 Zellen, wobei horizontale und vertikale Indizes zur Identifizierung der Zellen eingeführt wurden (horizontal 0...31, vertikal 0...22). Exemplarisch ist die Zelle 54 gezeigt, welchem das Index-Tupel (0, 2) zugeordnet ist. Weiter ist eine erste Region bzw. ein erster Pinselstrich 55 (im Folgenden auch als Region bezeichnet) dargestellt. Diese Region 55 setzt sich aus einzelnen Segmenten (im konkreten Fall 6) zusammen. Die einzelnen Segmente sind jeweils durch zwei Punkte und einen Radius definiert. Exemplarisch sind die Punkte für ein Segment mit dem Bezugszeichen 551 und 552 versehen. Der Radius hat das Bezugszeichen 56. Diese erste Region 55 ist der Regionenindex 1 (Strich 1) zugeordnet. Ein zweiter, später durchgeführter Strich 57 ist gezeigt, welcher aus zwei Segmenten zusammengesetzt ist und einer Region mit einem Regionenindex 2 entspricht. Exemplarisch sind wieder zwei Punkte 571 und 572 und ein Radius 58 angegeben. Für die einzelnen Bereiche werden nun 5 verschiedene Fälle unterschieden, für welche exemplarisch jeweils ein Bereich bezeichnet ist. Der jeweilige Bereich wurde so gewählt, dass der in der Figur angedeutete Strahl 53 den entsprechenden Bereich durchdringt. Zunächst gibt es die Bereiche, wie z. B. Bereich 60 (Index-Tupel (16, 20)), welche keine Schnittmenge mit den Strichen 1 und 2 haben. Diese Bereiche sind in der Figur weiß gelassen. Derartige Bereiche bekommen als maximalen und minimalen Regionenindex jeweils den Index 0 zugeordnet. Daneben gibt es (teilweise grau dargestellte) Bereiche, welche nur mit dem Strich 1 eine Schnittmenge haben. Derartige Bereiche bekommen als minimalen und maximalen Regionenindex den Index 1 für den Strich 1 zugeordnet. Als Beispiel ist der Bereich bzw. die Zelle mit dem Index-Tupel (11, 4) mit dem Bezugszeichen 61 versehen. Dann gibt es noch Bereiche, welche lediglich eine Schnittmenge mit dem zweiten Strich haben. Ein derartiger Bereich ist beispielsweise mit den Bezugszeichen 62 gekennzeichnet (Index-Tupel (19, 14)). Für diese Bereiche ist das Minimum und Maximum des Regionenindex gleich 2, d.h. lediglich Strich 2 ist zu berücksichtigen. Die vierte Kategorie sind Bereiche, welche sowohl eine Schnittmenge mit dem ersten Strich als auch dem zweiten Strich aufweisen, wobei der zweite Strich den Bereich vollständig bedeckt. Es ist bei diesen Ausführungsbeispielen angenommen, dass der jeweils späteste bzw. letzte Strich vollständig die Veränderung der Region bestimmt. D.h., dass frühere Striche für die Darstellung keine Rolle mehr spielen. Im Falle von 5 wäre dann nur mehr der zweite Strich für Bereiche relevant, welche zwar eine Schnittmenge mit dem ersten Strich haben, aber dann vollständig durch den zweiten Strich bedeckt werden. Ein solcher Bereich ist durch das Bezugszeichen 63 (Index-Tupel (18, 12)) deutlich gemacht. Diesem Bereich wird ebenfalls als Minimum und Maximum der Indizes die 2 zugeordnet, d.h. hier wird bei dem Rendering die durch Strich 2 vollzogene Veränderung berücksichtigt. Hierbei erfolgt bei der Vornahme der Striche eine Aktualisierung der Indizes. Denn vor der Anbringung des Striches 2 wäre für den Bereich 63 die Indexliste durch Minimum und Maximum 1 gegeben, weil die Schnittmenge mit dem ersten Strich nicht leer ist. Bei der Vornahme des zweiten Striches wird berücksichtigt, dass durch die vollständige Überdeckung der Strich 1 irrelevant wird und dieser wird in der Indexliste für den entsprechenden Bereich nicht mehr berücksichtigt. Hier ist hinzuzufügen, dass eine vollständige Überdeckung durch einen späteren Strich nicht notwendigerweise bedeutet, dass ein früherer Strich irrelevant wird. Dies könnte z.B. bei einem „Fuzzypinsel“, d.h. bei am Rande verschwommenen und schwächer werdenden Strichkonturen der Fall sein. Bei der Verwendung solcher Fuzzystriche wäre zu überlegen, dass bei einem Überlappen von Rändern zwei oder mehrere Striche berücksichtigt werden, d.h. z.B. dass ein früherer Strich am Rande eines späteren Striches noch durchschimmert. Dieser komplexere Fall ist aber für die Erklärung anhand von 5 nicht angenommen. Schließlich gibt es in 5 noch eine fünfte Kategorie von Bereichen (z.B. Bereich 64, Index-Tupel (16, 10)) für welche beide Striche relevant sind. In diesem Fall wäre die Schnittmenge mit beiden Strichen nicht leer und zugleich würde der zweite Strich den Bereich nicht vollständig überdecken. In diesem Fall wäre das Indexminimum 1 und das Indexmaximum 2 für Regionenzuordnung, d.h. dass beide Striche (Regionen) für die Berechnung berücksichtigt werden.
-
Es wird im Folgenden anhand der Bereiche 60 bis 64, durch welche jeweils der Strahl 53 geht, beschrieben, wie das Rendering für Abtastpunkte in den entsprechenden Bereichen sich bei dem erfindungsgemäßen Verfahren gegenüber einem herkömmlichen Rendering verändert. Für einen Abtastpunkt im Bereich 60 würde für den Abtastpunkt der entsprechende Bereich (nämlich Bereich 60) identifiziert werden und durch eine Indextabelle die zugehörigen Indizes als 0 gefunden werden. Die Identifizierung des relevanten Bereiches beim Rendering ist besonders einfach, wenn die Bereiche den Voxeln zugeordnet sind. Denn die relevanten Voxelwerte werden für die Berechnung des RGBA-Wertes des Abtastpunktes verwendet. Generell kann eine Identifikation mit Hilfe einer Zuordnung zwischen einem Bereich und einem oder mehreren Voxeln erfolgen. Der gefundene Index 0 gibt an, dass das Rendering ohne Berücksichtigung von Veränderungen durchgeführt werden kann. Bei dem Abtastpunkt im Bereich 62 würden Indexminimum und Maximum jeweils 2 sein, so dass die mit dem Strich 2 verbundenen Änderungen (z.B. Transferfunktionen) für den entsprechenden Abtastwert berücksichtigt würden. Im Falle vom Bereich 63 hätte man dasselbe Ergebnis, nämlich die erneute Berücksichtigung des Bereiches 2. Bei einem Abtastwert im Bereich 64 würde über die Indextabelle festgestellt werden, dass Striche 1 und 2 relevant sind. Danach würde man zuerst feststellen, ob der Abtastpunkt in der Region des Strichs 2 ist. Falls dies der Fall wäre, würde eine dem Strich 2 entsprechende Veränderung vorgenommen. Anderenfalls würde abgeprüft, ob der Abtastpunkt in die Region von Strich 1 fällt und in diesem Fall die entsprechende Veränderung durchführen. Dies lässt sich auf mehrere Striche erweitern, d.h. bei einer Reihung der Striche entsprechend der Reihenfolge, wie sie vorgenommen wurden (chronologische Reihenfolge), würde beginnend von dem höchsten Index zu dem niedrigsten jeweils abgefragt werden, ob der Abtastpunkt in die Region fällt und in diesem Fall die entsprechende Veränderung vorgenommen und die Abfrage dann beendet werden. Schließlich gibt es noch den Fall von Bereich 61. Für den Bereich 61 sind Minimum und Maximum jeweils gleich 1. Bereich 61 wird teilweise durch die Region des Striches 1 überdeckt. Man würde hier überprüfen, ob der Abtastpunkt in die Region des Striches 1 fällt und in diesem Falle die Veränderung vorgenommen.
-
Auf diese Weise kann die Berücksichtigung von Strichen bzw. Veränderungen sehr viel effizienter vorgenommen werden. Insbesondere bei einer Vielzahl von Strichen kann der Bearbeitungsaufwand erheblich reduziert werden, da durch einfache Abfrage festgestellt werden kann, ob sich ein Abtastpunkt verändert und ggfl. welche Veränderungen zu berücksichtigen sind.
-
6 zeigt zusammenfassend das Prinzip der Erfindung. In einem Schritt 1 wird das Volumen in Bereiche eingeteilt. Ein zweiter Schritt 2 beinhaltet die Eingabe einer durchzuführenden Veränderung (z.B. manuell mittels Eingabemittel). In einem darauffolgenden Schritt 3 werden die von der Veränderung betroffenen Bereiche bestimmt. Eine Veränderung wird genau dann als relevant für einen Bereich eingestuft, wenn der Bereich von dieser Veränderung betroffen ist (Schritt 4). Auf dieser Basis wird eine Zuordnung von relevanten Veränderungen und betroffenen Bereichen erstellt (Schritt 5). Diese Zuordnung wird im Ray Casting verwendet, indem nur für betroffene Bereiche Neuberechnungen stattfinden (Schritt 6), wodurch der Berechnungsaufwand erheblich reduziert wird.
-
Es versteht sich, dass die vorliegende Erfindung in verschiedenen Formen von Hardware, Software, Firmware, Spezialzweckprozessoren oder einer Kombination daraus implementiert werden kann. Bevorzugt ist eine Implementierung auf einer GPU (graphics processing unit) mit OpenGL (open graphics language) und der OpenGL Shading Language.
-
In einer Ausführungsform kann die vorliegende Erfindung in Software als ein Anwendungsprogramm implementiert werden. Das Anwendungsprogramm kann auf einer Maschine hochgeladen und auf ihr ausgeführt werden, die eine beliebige geeignete Architektur aufweist.
-
Unter Bezugnahme auf 6 kann gemäß einer Ausführungsform der vorliegenden Erfindung ein Computersystem 401 für GPU basiertes Raycasting unter anderem eine zentrale Verarbeitungseinheit (central processing unit; CPU) 402, einen Speicher 403, und eine Eingabe-/Ausgabe(E-/A-)Schnittstelle 404 aufweisen. Das Computersystem 401 ist im Allgemeinen über die E-/A-Schnittstelle 404 mit einer Anzeigevorrichtung 405 und diversen Eingabevorrichtungen 106 wie z.B. eine Maus oder eine Tastatur gekoppelt. Die Zusatzschaltkreise können Schaltkreise wie z.B. Cache, Stromversorgung, Taktschaltungen und eine Kommunikationssammelleitungen umfassen. Der Speicher 403 kann ein Schreib-Lese-Speicher (random acces memory, RAM), ein Lese-Speicher (read only memory, ROM), ein Diskettenlaufwerk, ein Bandlaufwerk, usw. oder eine Kombination davon umfassen. Die vorliegende Erfindung kann als ein Programmroutine 407, die im Speicher 403 gespeichert ist und von der CPU 402 ausgeführt wird, implementiert werden, um das Signal von der Signalquelle 408 zu verarbeiten. Das Computersystem 401 umfasst des Weiteren eine grafische Verarbeitungseinheit (graphic processing unit; GPU) 409, zur Verarbeitung von Graphikanweisungen, z.B. zur Verarbeitung der Signalquelle 408, die Bilddaten aufweist. Als solches ist das Computersystem 401 ein allgemeines Mehrzweck-Computersystem, das zu einem Spezialzweck-Computersystem wird, wenn es das Programm 407 der vorliegenden Erfindung ausführt.
-
Die Computerplattform 401 enthält auch ein Betriebssystem und einen Mikrobefehlscode. Die verschiedenen, hierin beschriebenen Verfahren und Funktionen können entweder Teil des Mikrobefehlscodes oder Teil des Anwendungsprogramms (oder einer Kombination davon) sein, das von dem Betriebssystem ausgeführt wird. Darüber hinaus können verschiedene andere Peripheriegeräte wie z.B. eine zusätzliche Datenspeichereinrichtung und eine Druckeinrichtungen an die Computerplattform angeschlossen werden.
-
Es versteht sich des Weiteren, dass, da einige der einzelnen Systemkomponenten und Verfahrensschritte, die in den beigefügten Figuren dargestellt sind, in Software implementiert werden können, die tatsächlichen Verbindungen zwischen den Systemkomponenten (oder zwischen den Prozessschritten) abweichen können, in Abhängigkeit der Art und Weise, in der die vorliegende Erfindung programmiert ist. Mit der angegebenen Lehre der vorliegenden Erfindung, die hierin vorgelegt wird, wird der einschlägige Fachmann imstande sein, diese und ähnliche Ausführungen oder Konfigurationen der vorliegenden Erfindung zu berücksichtigen.
-
Die Erfindung ist nicht auf die im Ausführungsbeispiel dargestellten Anwendungen beschränkt. Insbesondere ist vorstellbar, dass bei virtuellen Darstellungen in ganz anderen Bereichen als der Medizintechnik dieses Verfahren zum Einsatz kommt. Beispiele sind die Visualisierung von Produkten im Rahmen von Wirtschaft und Handel und Computerspiele.
[1] K. Bürger, J. Krüger, R. Westermann, „Direct Volume Editing", IEEE Transactions on Visualization and Computer Graphics (Proceedings of IEEE Visualization 2008)
-
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
-
- Bürger et al. [0008]
- K. Bürger, J. Krüger, R. Westermann, „Direct Volume Editing“, IEEE Transactions on Visualization and Computer Graphics (Proceedings of IEEE Visualization 2008) [0050]