DE102005008824A1 - System und Verfahren für eine Graphikprozessor-basierte nicht-rigide 3D-Registrierung - Google Patents

System und Verfahren für eine Graphikprozessor-basierte nicht-rigide 3D-Registrierung Download PDF

Info

Publication number
DE102005008824A1
DE102005008824A1 DE102005008824A DE102005008824A DE102005008824A1 DE 102005008824 A1 DE102005008824 A1 DE 102005008824A1 DE 102005008824 A DE102005008824 A DE 102005008824A DE 102005008824 A DE102005008824 A DE 102005008824A DE 102005008824 A1 DE102005008824 A1 DE 102005008824A1
Authority
DE
Germany
Prior art keywords
displacement field
image
field
dimensional
graphics processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE102005008824A
Other languages
English (en)
Other versions
DE102005008824B4 (de
Inventor
Christophe Chefd'hotel
Kinda Anna Saddi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens Medical Solutions USA Inc
Original Assignee
Siemens Corporate Research Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens Corporate Research Inc filed Critical Siemens Corporate Research Inc
Publication of DE102005008824A1 publication Critical patent/DE102005008824A1/de
Application granted granted Critical
Publication of DE102005008824B4 publication Critical patent/DE102005008824B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration

Abstract

Das Verfahren zum Registrieren von zwei Bildern unter Verwendung eines Graphikprozessors weist die Schritte auf, ein Paar von Bildern mit einem ersten und einem zweiten Bild bereitzustellen (81), einen Gradienten des zweiten Bilds zu berechnen, ein Verschiebungsfeld auf dem Rasterpunktbereich des Paars von Bildern zu initialisieren, Texturen (82) für das erste Bild, das zweite Bild, den Gradienten und das Verschiebungsfeld zu erzeugen und die Texturen in den Graphikprozessor zu laden. Ein Pixelzwischenspeicher wird erzeugt (83) und mit der Textur initialisiert, die das Verschiebungsfeld enthält. Das Verschiebungsfeld wird vom ersten Bild, vom zweiten Bild und vom Gradienten her über eine oder mehrere Iterationen in einem oder mehreren Rendering-Pässen, die vom Graphikprozessor durchgeführt werden, aktualisiert (86).

Description

  • Querverweis auf entsprechende US-Anmeldungen
  • Diese Anmeldung beansprucht die Priorität der vorläufigen US-Anmeldung 60/547,684 "Graphikprozessor-basierte nicht-rigide 3D-Registrierung" von Chefd'hotel et al. vom 25. Februar 2004, deren Inhalte hierin durch Bezugnahme umfasst sind.
  • Technischer Bereich
  • Diese Erfindung betrifft Verfahren und Systeme zur nicht-rigiden 3D-Registrierung in der medizinischen Bildverarbeitung.
  • Diskussion des Standes der Technik
  • Nicht-rigide Bildregistrierung ist eine herausfordernde und grundlegende Aufgabe in der medizinischen Bildverarbeitung. Sie besteht daraus, ein Verschiebungsfeld zwischen zwei oder mehr Bildern zu finden, das diese gemäß einiger Ähnlichkeitsmaße ausrichtet. Die Registrierungsalgorithmen erfordern im allgemeinen hohe Rechnerkosten und eine große Menge an Speicher, insbesondere wenn mit Volumina gearbeitet wird.
  • Die Bildregistrierung zielt darauf ab, ein Bild räumlich mit dem anderen auszurichten. Zu diesem Zweck müssen Parameter eines globalen Transformationsmodells, etwa rigid, affin oder projektiv, zurückgewonnen werden, um ein Bild, das bewegt wird (im Folgenden "sich bewegendes Bild" genannt), geometrisch umzuwandeln, um eine hohe räumliche Übereinstimmung mit einem ortsfesten Bild zu erhalten. Das Problem wurde auf Grund seiner Signifikanz in einem großen Bereich von Gebieten, einschließlich der medizinischen Bildverschmelzung, Fernerkundung, Wiedererkennung, Verfolgung, Mosaikbildung usw. in verschiedenen Zusammenhängen studiert.
  • Die Graphikhardware für Computer schreitet rasend schnell voran. Die jüngste Graphikhardware ist noch leistungsfähiger und unterstützt programmierbare Elemente. Im Jahr 2002 führte NVIDIA eine neue Generation von Graphikprozessoren (GPUs) ein, die GeForce FX Familie. Diese Graphikprozessoren liefern Vertex- und Fragmentprogrammierbarkeit. Diese Merkmale liefern die Möglichkeit, komplexe Vertextransformations- und Pixelschattierungsoperationen von dem Zentralprozessor (CPU) auf den Graphikprozessor (GPU) umzuschichten. Tatsächlich macht die Parallelität der Graphik-Pipeline diese Art von Architektur zu einem perfekten Kandidaten, um viele rechenintensive Allzweckaufgaben durchzuführen.
  • Ein Graphikprozessor weist typischerweise eine Pipeline auf, die in einer Abfolge von Transformationen, Begrenzungs- und Rasterungsphasen organisiert ist. Die neueste Graphikhardware bietet programmierbare Möglichkeiten in dieser Pipeline. Sie setzt sich aus einem programmierbaren Vertexprozessor, einem Rasterer und einem programmierbaren Fragmentprozessor zusammen, wie in 3 dargestellt ist. Eine 3D-Anwendung, die auf dem Zentralprozessor ausgeführt wird, sendet eine Folge von Vertices 30 an den Graphikprozessor, die in geometrische Grundformen gruppiert sind. Jeder Vertex besitzt eine Position und mehrere andere Attribute wie Farbe und Texturkoordinaten. Der Vertexprozessor 31 führt einige Operationen bei jedem Vertex durch, nämlich die Umwandlung der Vertexposition in eine Bildschirmposition, die Erzeugung von Texturkoordinaten und das Belichten des Vertex, um seine Farbe zu bestimmen. Die transformierten Vertices 32 fließen in das nächste Stadium 33, die so genannte Rasterung. Jede Ausgabe des Rasterers wird Fragment genannt. Der Rasterungsprozess interpoliert linear Attribute, wie Texturkoordinaten, die bei den Vertices gespeichert sind, und speichert die interpolierten Werte in jedem Fragment. Diese Fragmente 34 werden zum Fragmentprozessor 35 gesendet, der dieselbe Art mathematischer Operationen wie der Vertexprozessor durchführt, der aber auch texturierende Operationen unterstützt. Der Fragmentprozessor verwendet die interpolierten Texturkoordinaten, die vom Rasterer gesendet werden, um Texturwerte aus dem Texturspeicher 37 nachzusehen. Die Ausgangsdaten 38 des Fragmentprozessors sind aktualisierte Pixel, die dann entweder zum Bildzwischenspeicher oder Pixelzwischenspeicher gesendet werden können.
  • Zusammenfassung der Erfindung
  • Beispielhafte Ausführungsformen der Erfindung, wie sie hier beschrieben sind, beinhalten im allgemeinen Verfahren und Systeme, die die nicht-rigide medizinische Bildregistrierung unter Verwendung eines Graphikprozessors (GPU) beschleunigen, und programmierbare Eigenschaften, die bei der Graphikhardware verfügbar sind, um eine dreidimensionale nicht-rigide Registrierung auf Basis partieller Differentialgleichungen (PDE) zu implementieren.
  • Unter einem Gesichtspunkt der Erfindung wird ein Verfahren zur Registrierung von zwei Bildern unter Verwendung eines Graphikprozessors geschaffen, das folgende Schritte aufweist: Bereitstellen eines Paars von Bildern mit einem ersten Bild und einem zweiten Bild, wobei die Bilder eine Mehrzahl von Intensitäten entsprechend einem Bereich von Rasterpunkten in einem D-dimensionalen Raum aufweisen, Berechnen eines Gradienten eines zweiten Bilds, Initialisieren eines Verschiebungsfelds auf dem Rasterpunktbereich des Paars von Bildern, wobei das Verschiebungsfeld das zweite Bild in das erste Bild umwandelt, Erzeugen von Texturen für das erste Bild, das zweite Bild, den Gradienten und das Verschiebungsfeld, und Laden der Texturen in den Graphikprozessor, Erzeugen eines Pixelzwischenspeichers und Initialisieren desselben mit der Textur, die das Verschiebungsfeld enthält, Glätten des Verschiebungsfelds, Aktualisieren des Verschiebungsfelds vom ersten Bild, vom zweiten Bild und vom Gradienten her über eine oder mehrere Iterationen, und Auslesen des aktualisierten Verschiebungsfelds aus dem Pixelzwischenspeicher.
  • Unter einem weiteren Gesichtspunkt der Erfindung weist das Erzeugen eines Pixelzwischenspeichers weiterhin die Schritte auf, einen Wiedergabekontext zu erzeugen, die Pixelzwischenspeicherattribute zu initialisieren und eine neue Textur. dort zu erzeugen, wo der Pixelzwischenspeicher begrenzt ist.
  • Unter einem weiteren Gesichtspunkt der Erfindung weist das Verfahre weiterhin den Schritt auf, Texturparameter und Einheitsgrößen einzustellen.
  • Unter einem weiteren Gesichtspunkt der Erfindung weist das Verfahren weiterhin die Schritte auf, einen Wiedergabekontext für die Bildregistrierung zu erzeugen und Fragmentprogramme zum Aktualisieren des Verschiebungsfelds zu kompilieren und in den Graphikprozessor zu laden.
  • Unter einem weiteren Gesichtspunkt der Erfindung weist das Verfahren außerdem den Schritt auf, die Auflösung des Verschiebungsfelds zu vergrößern, nachdem das Verschiebungsfeld aus dem Pixelzwischenspeicher ausgelesen wurde.
  • Unter einem weiteren Gesichtspunkt der Erfindung umfasst das Vergrößern der Auflösung das lineare Interpolie ren von Verschiebungsfeldwerten für Punkte zwischen Rasterpunkten im Verschiebungsfeldbereich.
  • Unter einem weiteren Gesichtspunkt der Erfindung ist das Aktualisieren des Verschiebungsfelds ein Rendering-Pass (Rendering-Durchgang), der vom Graphikprozessor gemäß der Gleichung uk+1 = uk + δ[I1 – I2·(Id + uk))∇I2·(Id + uk)] + αΔuk durchgeführt wird, wobei uk und uk+1 das Verschiebungsfeld bzw. das aktualisierte Verschiebungsfeld sind, I1 das erste Bild ist, I2 das zweite Bild ist, ∇I2 der Gradient ist, Id die identische Abbildung ist, Δuk der Laplace-Operator des Verschiebungsfelds ist, α ein Regelungsparameter ist und δ der Zeitabschnitt ist.
  • Unter einem weiteren Gesichtspunkt der Erfindung ist der Bereich von Rasterpunkten ein dreidimensionaler Raum, wobei das Verschiebungsfeld für den Rendering-Pass gemäß den Transformationen
    Figure 00050001
    von drei Dimensionen in zwei Dimensionen umgewandelt wird, wobei fix der Quotient einer ganzzahligen Division ist, mod der Rest einer ganzzahligen Division, (x, y, z) ein 3-dimensionaler Rasterpunkt ist, (p, q) ein 2-dimensionaler Rasterpunkt ist, Rx die Anzahl von Spalten ist, Ry die Anzahl von Zeilen ist, und N eine ganze Zahl ist, die als
    Figure 00050002
    definirt ist, wenn das Ergebnis eine ganze Zahl ist, und als
    Figure 00050003
    in den anderen Fällen.
  • Unter einem weiteren Gesichtspunkt der Erfindung wird das Verschiebungsfeld gemäß den Transformationen
    Figure 00060001
    von einem zweidimensionalen Raster in ein dreidimensionales Raster umgewandelt, wobei Rz die Anzahl von Schnitten ist.
  • Unter einem weiteren Gesichtspunkt der Erfindung wird der Laplace-Operator des Verschiebungsfelds uk in drei Dimensionen definiert als Δuk(x, y, z) = uk(x + 1, y, z) + uk(x – 1, y, z) + uk(x, y + 1, z) + uk(x, y – 1, z) + uk(x, y, z + 1) + uk(x, y, z – 1) – 6.0 × uk(x, y, x)und in 2 Dimensionen als Δuk(p, q) = uk(p + 1, q) + uk(p – 1, q) + uk(p, q + 1) + uk(p, q – 1) + uk(r, s) + uk(t, u) – 6.0 × uk(p, q)wobei (x, y, z) ein 3-dimensionaler Rasterpunkt ist, (p, q) ein zweidimensionaler Rasterpunkt ist, Rx die Anzahl von Spalten ist, Ry die Anzahl von Zeilen ist, Rz die Anzahl von Schnitten ist, und N eine ganze Zahl ist, die definiert ist als
    Figure 00060002
    wenn das Ergebnis eine ganze Zahl ist, und
    Figure 00060003
    in den anderen Fällen,
    Figure 00060004
    Figure 00070001
    wobei fix der Quotient einer ganzzahligen Division und mod der Rest einer ganzzahligen Division ist.
  • Unter einem weiteren Gesichtspunkt der Erfindung sind die Grenzbedingungen des 3-dimensionalen Verschiebungsfelds "an die Kanten geklemmt" (clamp-to-edge), und außerdem werden die Grenzbedingungen des 2D-Verschiebungsfelds gesteuert, indem eine 2D-Maske aufgelegt wird, wobei die Maske ein vorberechneter Vektor mit 7 Koeffizienten (a, b, c, d, e, f, g) ist, die jeden Term des Verschiebungsfelds nach der Gleichung a × uk(x + 1, y) + b × uk(x – 1, y) + c × uk(x, y + 1) + d × uk(x, y – 1) + e × uk(r, s) + f × uk(t, u) + g × uk(x, y)multiplizieren, wobei uk(x, y) das 2D-Verschiebungsfeld ist, (a, b, c, d, e, f) entweder 0 oder 1 sind, wobei 0 einen Verschiebungsfeldwert außerhalb der Grenzen und 1 einen Punkt innerhalb der Grenzen bezeichnet, wobei g abhängig von der Anzahl von nächsten inneren Nachbarpunkten um (x, y) zwischen –6 and 0 variieren kann.
  • Unter einem weiteren Gesichtspunkt der Erfindung ist eine computerlesbare Programmspeichervorrichtung vorgesehen, die ein Programm von Befehlen, die auf einem Computer ausführbar sind, verkörpert, um die Verfahrensschritte zur Registrierung von zwei Bildern unter Verwendung eines Graphikprozessors durchzuführen.
  • Kurze Beschreibung der Zeichnungen
  • 1 ist ein Blockschema des Registrierungsprozesses gemäß einer Ausführungsform der Erfindung.
  • 2 ist ein Blockschema einer Vielfachauflösungsannäherung der Bildregistrierung gemäß einer Ausführungsform der Erfindung.
  • 3 ist ein Blockschema einer Graphik-Pipeline in einer GPU gemäß einer Ausführungsform der Erfindung.
  • 4 ist ein Blockschema einer Systemarchitektur einer CPU, die mit einer GPU verbunden ist, gemäß einer Ausführungsform der Erfindung.
  • 5 ist ein Blockschema eines Graphikkartenspeichers gemäß einer Ausführungsform der Erfindung.
  • 6 ist ein Blockschema eines Systems zum Implementieren einer Bildregistrierung auf Basis eines Graphikprozessors gemäß einer Ausführungsform der Erfindung.
  • 7 ist eine Oberflächenwiedergabe einer beispielhaften Registrierung von zwei Lungendatensätzen gemäß einer Ausführungsform der Erfindung.
  • 8 ist ein Flussdiagramm eines GPU-basierten Registrierungsalgorithmus gemäß einer Ausführungsform der Erfindung.
  • 9 ist ein Blockschema eines beispielhaften Computersystems zum Implementieren einer Bildregistrierung auf Basis eines Graphikprozessors gemäß einer Ausführungsform der Erfindung.
  • Detaillierte Beschreibung der bevorzugten Ausführungsformen
  • Beispielhafte Ausführungsformen der Erfindung, wie sie hier beschrieben werden, beinhalten im allgemeinen Systeme und Verfahren für die Beschleunigung von nicht-rigider Registrierung auf Basis eines Graphikprozessors. Zum Zwecke der Klarheit werden nicht alle Merkmale einer tatsächlichen Implementierung, die Fachleuten wohlbekannt sind, hier im Detail beschrieben.
  • In diesem Dokument bezeichnet der Begriff "Bild" mehrdimensionale Daten aus diskreten Bildelementen (z.B. Pixel für 2D-Bilder und Voxel für 3D-Bilder). Das Bild kann beispielsweise ein medizinisches Bild einer Testperson sein, das mittels Computertomographie, magnetischer Resonanzbildgebung, Ultraschall oder anderen medizinischen Bildgebungssystemen, die einem Fachmann bekannt sind, erhalten wurde. Das Bild kann auch in nicht-medizinischen Zusammenhängen stehen, wie zum Beispiel Fernerkennungssysteme, Elektronenmikroskopie usw. Obwohl man sich ein Bild als eine Funktion von R3 nach R vorstellen kann, sind die erfindungsgemäßen Verfahren nicht auf solche Bilder beschränkt, sondern können auch auf Bilder beliebiger Dimension angewendet werden, z.B. ein 2D-Bild oder ein 3D-Volumen. Für ein 2- oder 3-dimensionales Bild ist der Bildbereich typischerweise ein 2- oder 3-dimensionales rechteckiges Array, wobei jedes Pixel oder Voxel unter Bezugnahme auf einen Satz von zwei oder drei zueinander senkrechten Achsen adressiert wird. Die Begriffe "digital" und "digitalisiert" beziehen sich in diesem Dokument in geeigneter Weise auf Bilder oder Volumen in einem digitalen oder digitalisierten Format, das über ein digitales Erfassungssystem oder durch Umwandlung aus einem analogen Bild erhalten wird.
  • Bei vorgegebenem Zielbild I1: Ω ⊂ R3 ↦ R und einem sich bewegenden (floating) Bild I2: Ω ⊂ R3 ↦ R beinhaltet der Registrierungsprozess den Schritt, eine Transformation Φ: Ω ↦ Ω zwischen den 3D-Bildbereichen zu finden, so dass I1 ≈ I2·Φ. Es ist zu beachten, dass dieses Produkt eine Zusammenstellung von Abbildungen ist, da das transformierte I2 eine Funktion des transformierten Bereichs Φ ist. Manchmal ist es angenehmer, ein Verschiebungsfeld u zu bestimmen, wobei Φ = Id + u, wobei Id die Identitätsabbildung repräsentiert. Vorausgesetzt, dass die Bilder dieselben Modalitäten besitzen, liegt die Idee darin, ihre Ähnlichkeit durch Minimierung der Summe quadratischer Abweichungen (SSD) zwischen ihren Intensitäten zu maximieren. Um diskontinuierliche Lösungen auszuschließen, kann ein Regelungsterm verwendet werden. Insbesondere das folgende Energiefunktional wird unter Verwendung eines Gradientenverringerungsverfahrens minimiert:
    Figure 00100001
  • Die Variationsrechnung wird auf dieses Funktional angewendet, um die folgende Euler-Lagrange-Gleichung zu erhalten:
    Figure 00100002
  • Der entsprechende Gradientenfluss ist eine nichtlineare partielle Differentialgleichung (PDE). Der erste Term entspricht der Ableitung des Ähnlichkeitsmaßes. Es ist zu beachten, dass er den Gradienten des verzerrten sich bewegenden Bilds enthält, einen Vektor, der senkrecht zu den Kanten ist. Die Ableitung des Regelungsterms liefert den Laplace-Operator des Verschiebungsfelds u. Der Koeffizient α kann verwendet werden, um den Ausgleich zwischen der Ähnlichkeitsbedingung und der Ebenmäßigkeit des Verschiebungsfelds einzustellen.
  • Ein Differentialoperator kann durch ein Schema der begrenzten Unterschiede angenähert werden. Um diese Gleichung numerisch anzunähern, wird sie zeitlich mit einem Zeitabschnitt δ und räumlich unter Verwendung des Bildabtastrasters diskretisiert, so dass man erhält:
    Figure 00110001
  • Dieser Ausdruck führt zu folgendem iterativen Vorgang: uk+1 = uk + δ[I1 – I2·(Id + uk))∇I2·(Id + uk)] + αΔuk wobei k die Anzahl von Iterationen ist, die den Algorithmus konvergieren lässt. In dieser Gleichung ist I1 das Zielbild, I2 das sich bewegende Bild und ∇I2 der Gradient des sich bewegenden Bilds. I1 und I2 sind dreidimensionale medizinische Eingangsdatensätze, ∇I2 kann leicht berechnet werden, und uk+1 ist das Verschiebungsfeld, das nach k Iterationen erhalten wird. ∇I2 und uk+1 sind dreidimensionale Datensätze, bei denen jede Komponente ein 3D-Vektor ist.
  • Bezug nehmend auf 1 repräsentiert der Block 10 die iterative Aktualisierungsfunktion der obigen Gleichung, die uk als Eingabe verwendet und ein aktualisiertes uk+1 auf Basis der Bilder I1, I2 und dem Gradienten von I2 ausgibt. Die Iterationen werden wiederholt, bis aufeinanderfolgende Iterationen von uk, uk+1 ausreichend eng aneinander liegen. Der Algorithmus kann begonnen werden, indem das anfängliche Verschiebungsfeld u0 auf Null gesetzt wird. δ und α können ausgewählt werden, um die Konvergenz des Registrierungsalgorithmus sicherzustellen.
  • Der obige iterative Algorithmus kann mit einer "von grob zu fein"-Strategie kombiniert werden, um die Rechnerkosten zu reduzieren, indem mit weniger Daten bei einer geringeren Auflösung gearbeitet wird. Diese Kombination kann auch ermöglichen, dass das Registrierungsverfahren viel größere Verschiebungen (verbesserter Erfassungsbereich) wiederherstellt und lokale Minima vermeidet. Zunächst wird ein Verschiebungsfeld bei einer geringen Auflösung gefunden, und es wird anschließend vergrößert und als das anfängliche Verschiebungsfeld u0 für das nächste Niveau verwendet. Diese Auflösungsvergrößerung wird in 2 dargestellt. Ein anfängliches Bild niedriger Auflösung wird in Block 20 gefunden, indem Durchschnittswerte der Daten von den ursprünglichen Bildern genommen werden. Verschiebungsfelder werden unter Verwendung einer (tri-)linearen Interpolation vergrößert und anschließend geglättet, um Diskontinuitäten zu reduzieren. Bezug nehmend auf 2 sind zwei Vergrößerungsschritte dargestellt, die zu einem mittleren vergrößerten Verschiebungsfeld 21 und zu einem endgültigen Verschiebungsfeld 22 führen. Die zwei Vergrößerungsschritte sind hier lediglich zu Illustrationszwecken abgebildet, und auch mehr oder weniger Vergrößerungsschritte sollen von der Erfindung erfasst sein.
  • Gemäß einer Ausführungsform der vorliegenden Erfindung kann OpenGL (Open Graphics Library), eine standardmäßige 3D-Programmierschnittstelle, verwendet werden, um die Graphik-Pipeline zu nutzen, die von einer GPU geliefert wird. Der Zweck von OpenGL liegt darin, Rendering-Befehle an die GPU weiterzugeben. OpenGL wurde 1992 von SGI (Silicon Graphics) eingeführt und ist eine freie und öffentliche Graphikanwendungs-Programmierschnittstelle (API) für 2D- und 3D-Anwendungen. OpenGL wurde für die Programmiersprache C entwickelt. Zusätzlich zu OpenGL kann die Sprache Cg für die Programmierung von Graphikhardware verwendet werden. Cg ist C für Graphik, eine hoch entwickelte Sprache für Graphikprogrammierung, und wurde von NVIDIA in Zusammenarbeit mit Microsoft entwickelt. Sie ersetzt den Assembler-Code mit einer C-ähnlichen Sprache und besitzt einen Compiler, der den Assembler-Code für die GPU erzeugt. Vertex- und Fragmentprogramme sind die Programme, die von Cg erzeugt werden, um die Graphikprozessoren zu programmieren. Cg Runtime ist eine Softwareschnittstelle, die Parameter vereinfacht, die von der Anwendung, die auf der CPU läuft, zu den Vertex- und Fragmentprogrammen weitergeleitet werden, die auf der GPU laufen. Sie kompiliert Cg-Code und leitet ihn zu der GPU weiter.
  • Ein Blockschema der Architektur eines Systems mit einer CPU, die mit einer GPU verbunden ist, ist in 4 dargestellt. Bezug nehmend auf 4 verwendet eine Hauptanwendung 41, die auf der CPU 40 läuft, OpenGL und Cg-Funktionen. Diese Funktionen werden durch Cg Runtime 42 in GPU-Befehle und Daten 43 kompiliert, die zur GPU 44 geschickt werden. Diese Befehle 43 werden von der Graphik-Pipeline 45 in Pixelaktualisierungen verarbeitet, die anschließend im Bild- oder Pixelzwischenspeicher 46 für die Anzeige gespeichert werden.
  • OpenGL verwendet einen Wiedergabekontext, um sich an Zeichnungsmodi und Befehle zu erinnern. Mehrere Wiedergabekontexte werden in derselben Anwendung erlaubt. Unterschiedliche Texturen und unterschiedliche Zwischenspeicher können mit einem speziellen Wiedergabekontext verknüpft sein. Gemäß einer Ausführungsform der Erfindung werden zwei verschiedene Wiedergabekontexte verwendet. Zum einen wird ein "On-Screen" Wiedergabekontext mit dem Bildzwischenspeicher verknüpft, der die Cg-Programme und Texturen initialisiert. Zum zweiten wird ein "Off-Screen" Wiedergabekontext mit einem Pixelzwischenspeicher verknüpft. Da diese Wieder gabekontexte dieselben Texturen verwenden, können die Texturen von den Kontexten gemeinsam benutzt werden.
  • Eine Textur stellt man sich üblicherweise zweidimensional wie die meisten Bilder vor, aber sie kann auch eindimensional oder dreidimensional sein. Gemäß einer Ausführungsform der vorliegenden Erfindung wird eine dreidimensionale Textur verwendet, um eine Abfolge von schichtweisen Bildern zu repräsentieren, wie diejenigen, die durch eine Computertomographie (CT) oder eine magnetische Resonanzbildgebung (MRI) erzeugt werden. Texturen sind schlicht Arrays von Daten, wie Farbdaten (RGB), Helligkeitsdaten, Farb- und Alphadaten (RGBA) etc. Die individuellen Werte in einem Texturarray werden Texel genannt. Somit können die Daten, die eine Textur beschreiben, aus einem, zwei, drei oder vier Elementen pro Texel von einer Modulation, die zu einem RGBA-Quadrupel konstant ist, bestehen. Texturen können im GPU-Speicher gespeichert werden, und auf sie kann leicht mittels eines Fragmentprogramms zugegriffen werden, was den Datentransfer von der CPU zum GPU-Speicher über den Systembus vermeidet, der sich als Engpass erweisen kann.
  • Ein "Off-Screen" Zwischenspeicher kann verwendet werden, um Rendering-Pässe durchzuführen, ohne den Inhalt des Bildzwischenspeichers unmittelbar nach jedem Pass auf die Anzeigevorrichtung zu übertragen. OpenGL bietet die Fähigkeit an, mit einem "Off-Screen" Zwischenspeicher zu arbeiten, auch als Pixelzwischenspeicher bezeichnet. Dieser Prozess mit dem Pixelzwischenspeicher wird in der Hardware beschleunigt, da er sich auf dem GPU-Speicher der Graphikkarte befindet. Der Pixelzwischenspeicher ist sehr hilfreich für eine Wiedergabe zu einer Textur. Zum einen deshalb, weil die Größe der Textur nicht auf die derzeitige Fenstergröße beschränkt ist. Zum zweiten deshalb, weil die von der GPU erzeugten Daten im GPU-Speicher aufbewahrt werden, wodurch die Notwendigkeit entfällt, diese Daten über den Sys tembus zu übertragen. Diese Technik der Wiedergabe an den Pixelzwischenspeicher wird als "Render-To-Texture" bezeichnet und ist in 5 dargestellt. Wie in 5 dargestellt ist ein Systemspeicher 50, etwa ein RAM, der mit der CPU verknüpft ist, mit dem Graphikkartenspeicher 51 verbunden, der eine gemeinsame Textur 56 enthält, die von dem Systemspeicher 50 initialisiert werden kann. Der Graphikkartenspeicher 51 weist einen "On-Screen" Wiedergabekontext 52 mit einem Bildzwischenspeicher 53 auf, und einen "Off-Screen" Wiedergabekontext 54 mit einem Pixelzwischenspeicher 55. Wie in der Figur gezeigt, kann die gemeinsame Textur 56 entweder vom Bildzwischenspeicher 53 oder vom Pixelzwischenspeicher 55 aktualisiert werden.
  • OpenGL unterstützt sich bewegende Punktwerte für 2D- und 3D-Texturen. Aber diese Fließwerte werden festgeklemmt, so dass sie zwischen 0.0 und 1.0 liegen. Zusätzlich sind die Texturdimensionen auf Dimensionen der Form 2u × 2v für 2D-Texturen und 2u × 2v × 2w für 3D-Texturen beschränkt, wobei u, v und w nicht-negative ganze Zahlen sein müssen. Die NVIDIA SDK Erstreckung entfernte diese Einschränkung für die 2D-Textur, indem eine zweidimensionale rechteckige Textur mit Fließpunktwerten beliebiger Dimension erzeugt wird. In diesem Fall wird jedoch keine lineare Interpolation auf die Textur angewendet, wenn ein Wert in der Textur betrachten wird. Diese Einschränkungen bei den Fließpunktwerten und den Arraydimensionen treten bei der derzeitigen Hardware für 3D-Texturen immer noch auf.
  • Bei den derzeitigen Graphikkarten ist der Speicher auf 256 MB beschränkt und die maximale Größe des Pixelzwischenspeichers ist 2048 × 2048. Dies bedeutet, dass die Registrierung auf einer derzeitigen GPU für Volumengrößen von 1283 Voxel oder weniger realisiert werden kann. Sobald GPUs mit zunehmendem Speicher erhältlich werden, kann eine Regist rierung auf Basis eines Graphikprozessors für größere Bildvolumina durchgeführt werden.
  • Gemäß einer Ausführungsform der Erfindung kann jede Iteration der Registrierung mit einem Rendering-Pass (Wiedergabepass) auf der GPU verknüpft sein, um eine iterative Gleichung wie in 1 dargestellt in den Graphikprozessor abzubilden. Der Fragmentprozessor kann programmiert werden, um den Iterationsschritt des Registrierungsalgorithmus zu implementieren. Da I1, I2 und ∇I2 bei einer vorgegebenen Auflösung festgehalten werden, können diese Volumina vorberechnet und im Texturspeicher gespeichert werden. Das Verschiebungsfeld uk+1 kann nach jeder Iteration unter Verwendung der "Render-To-Texture " Technik aktualisiert werden. Das Feld uk+1 wird in den Pixelzwischenspeicher übertragen, der an eine Textur gebunden ist und für die nächste Iteration wiederverwendet wird.
  • 6 ist ein Blockschema einer erfindungsgemäßen Systemarchitektur, die diese Operationen unterstützt. Die initialisierten Daten 61 für die Bildvolumina I1, I2 und ∇I2 werden von der CPU 60 zum Texturspeicher 64 der GPU 63 gesendet, während das anfängliche Verschiebungsfeld u0 62 durch den Fragmentprozessor 65 an den Pixelzwischenspeicher 66 übertragen wird, wo es gemäß der Gleichung aus 1 als eine Funktion der Bildvolumina I1, I2 und ∇I2 aktualisiert wird. Das aktualisierte Verschiebungsfeld wird auch im Texturspeicher 64 gespeichert, wo es für die nächste Aktualisierung durch den Fragmentprozessor 65 verfügbar ist. Wenn das Iterationsverfahren ausreichend konvergiert ist, wird das endgültige Verschiebungsfeld 67 von der CPU 60 aus dem Pixelzwischenspeicher 66 ausgelesen.
  • Eine GPU-Implementierung eines erfindungsgemäßen nicht-rigiden Registrierungsalgorithmus ist durch das Flussdiagramm aus 8 dargestellt. Vor dem Durchführen der Registrierung sollte jedoch ein Wiedergabekontext für die Registrierungsanwendung erzeugt werden, um Texturen in den Graphikspeicher zu laden und Cg Kontexte und Programme zu erzeugen. Zusätzlich sollten die Fragmentprogramme kompiliert und auf die GPU geladen werden. Bezug nehmend auf 8 werden die Registrierungsdaten in Schritt 81 in der CPU vorbereitet. Diese Vorbereitung umfasst das Laden der Ziel- und Fließvolumina I1 und I2, das Berechnen des Gradienten des Fließvolumens ∇I2 und entweder das Initialisieren des Verschiebungsfelds u0 = 0 oder das Verwenden eines vorberechneten Verschiebungsfelds uk+1 das bei einer geringeren Auflösung gefunden wurde. In Schritt 82 werden die vier Texturen erzeugt und die Daten in die GPU geladen. In Schritt 83 wird der Pixelzwischenspeicher für das "Render-To-Texture" Verfahren erzeugt. Dies umfasst das Erzeugen eines neuen Wiedergabekontexts, das Initialisieren der Pixelzwischenspeicherattribute, das Erzeugen einer neuen Textur, wo der Pixelzwischenspeicher gefunden ist, und das Initialisieren des Pixelzwischenspeichers mit der Textur, die u0 (oder uk+1) enthält. Pixelzwischenspeicherattribute umfassen Pixelzwischenspeichereigenschaften, wie die Anzahl von Bits, die pro R/G/B/Alpha-Komponente verwendet werden, und einen Merker, der anzeigt, ob der Pixelzwischenspeicher auch als Textur verwendet werden kann. Gemäß einer Ausführungsform der Erfindung werden 32Bit Fließpunktkomponenten verwendet. Als nächstes werden in Schritt 84 die Fragmentprogrammparameter festgelegt, einschließlich der Texturparameter der Einheitsvariablen. Die Texturparameter umfassen die Namen der Graphikhardwarezwischenspeicher, die von den Fragmentprogrammen benötigt werden, wie die Texturen, die I1, I2, ∇I2 und uk enthalten. Die Einheitsvariablen umfassen solche Parameter wie den Zeitabschnitt δ und den Regelungsparameter α. In Schritt 85 wird das derzeit im Pixelzwischenspeicher befindliche Verschiebungsfeld geglättet. In Schritt 86 wird das Verschiebungsfeld uk+1 über k Iterationen berechnet. Sobald ein vorbestimmtes Konvergenzkriterium erfüllt wird, wird das Verschiebungsfeld aus dem Pixelzwischenspeicher in Schritt 87 in den Systemspeicher ausgelesen. Anschließend wird in Schritt 88 das Verschiebungsfeld in der CPU für die nächste Auflösung vergrößert.
  • Wie zuvor erwähnt werden die Bildintensität und die Gradientenvolumina im Texturspeicher gespeichert. Da eine GPU typischerweise für das Repräsentieren von RGB-Werten in einer 2D-Anzeige ausgestaltet ist, besitzt ihr Speicher Komponenten zum Speichern von Helligkeitsinformationen und Farbwerten. Gemäß einer Ausführungsform der Erfindung können Bildintensitäten, die skalare Werte sind, unter Verwendung einer einzigen unsignierten kurzen Helligkeitskomponente gespeichert werden, während der Gradient, der drei Komponentenwerte für jeden Rasterpunkt besitzt, unter Verwendung der Fließpunkt-RGB-Komponenten gespeichert werden kann. Ein Verfahren einer linearen Interpolation wird verwendet, um das Verschiebungsfeld zu vergrößern, wobei Werte außerhalb von Rasterpunkten berechnet werden, während eine trilineare Interpolation angewendet wird, wenn auf Texelwerte zugegriffen wird.
  • Das Verschiebungsfeld wird aktualisiert, indem ein "Off-Screen" Rendering-Pass in den Pixelzwischenspeicher durchgeführt wird. Da ein Rendering-Pass lediglich ein 2D-Bild erzeugen kann, wird das 3D-Verschiebungsfeld in Scheiben geschnitten und als ein 2D-Mosaik dargestellt. Da Bilder und Gradienten als 3D-Textur gespeichert werden, können die folgenden Gleichungen verwendet werden, um 2D-Koordinaten im Verschiebungsfeldmosaik in die entsprechenden 3D-Koordinaten abzubilden:
    Figure 00190001
    wobei
    • (1) x, y und z die gesuchte 3D-Punktkoordinate sind;
    • (2) p und q die 2D-Punktkoordinate im Mosaik sind;
    • (3) fix der Quotient der ganzzahligen Division ist; und
    • (4) mod der Rest der ganzzahligen Division ist.
  • Das 3D-Feld wird benötigt, um das Verschiebungsfeld mittels linearer Interpolation zu vergrößern. Die obigen Gleichungen können invertiert werden, um das 3D-Verschiebungsfeld in ein 2D-Mosaik umzuwandeln:
    Figure 00190002
    wobei
    • (1) Rx die Anzahl von Spalten ist;
    • (2) Ry die Anzahl von Zeilen ist;
    • (3) Rz die Anzahl von Schnitten ist;
    • (4) N definiert ist als:
      Figure 00190003
      wenn das Ergebnis (d.h.
      Figure 00190004
      eine ganze Zahl ist,
      Figure 00190005
      in den anderen Fällen.
  • Es sei bemerkt, dass, da Rz von der Form Rz = 2k ist und N eine ganze Zahl sein sollte, die Wurzel aus (2·Rz) eine ganze Zahl sein wird, wenn die Wurzel aus (Rz) einen nichtganzzahligen Wert liefert.
  • Um den Laplace-Operator des Verschiebungsfelds zu finden, muss man die sechs unmittelbaren Nachbarn finden. Die folgende Gleichung kann verwendet werden: uk(x + 1, y, z) + uk(x – 1, y, z) + uk(x, y + 1, z) + uk(x, y – 1, z) Δuk(x, y, z) = +uk(x, y, z + 1) + uk(x, y, z – 1) – 6.0 × uk(x, y, x)
  • Aber in 2 Dimensionen wird diese letzte Gleichung unter Verwendung der (p, q)-Koordinaten, die zuvor definiert wurden, zu: uk(p + 1, q) + uk(p – 1, q) + uk(p, q + 1) + uk(p, q – 1) Δuk(p, q) = +uk(r, s) + uk(t, u) – 6.0 × uk(p, q)wobei:
    Figure 00200001
  • Für ein 3D-Bild setzt OpenGL automatisch die Grenzbedingungen für das Klemmen an die Kanten fest, bei denen Texelwerte außerhalb des Texturbereichs Null sind. Um mit den Grenzbedingungen im Falle des 2D-Verschiebungsfeldmosaiks umgehen zu können, ist ebenfalls das Klemmen an die Kanten (clamp-to-edge) notwendig. Somit müssen Punkte an den Bildgrenzen anders als Punkte innerhalb des Bilds behandelt werden. Die GPU besitzt kein Wissen darüber, ob ein Punkt ein Grenzpunkt ist oder sich im Inneren des Bilds befindet. Weil das 3D-Verschiebungsfeld in ein 2D-Mosaik aufgespaltet wurde, kann gemäß einer Ausführungsform der Erfindung eine 2D-Maske verwendet werden, um die Grenzbedingungen zu steuern. Die Maske wird für jeden Rasterpunkt im Bild vorberechnet und ist ein Vektor, der aus sieben Koeffizienten (a, b, c, d, e, f, g) besteht, die jeden Term der Laplace-Gleichung multiplizieren, und bestimmt, ob der derzeitige Wert in die Berechnung des Laplace-Operators einfließen soll: a × uk(p + 1, q) + b × uk(p – 1, q) + c × uk(p, q + 1) + d × uk(p, q – 1) + e × uk(r, s) + f × uk(t, u) + g × uk(p, q)wobei
    • (1) a, b, c, d, e, f entweder 0 oder 1 ist, wobei 0 einen Punkt außerhalb der Grenze und 1 einen Punkt innerhalb der Grenze angibt; und
    • (2) g zwischen –6 und 0 abhängig von der Anzahl von inneren nächsten Nachbarpunkten um (p, q) variieren kann.
  • Versuche gemäß einer Ausführungsform der Erfindung haben gezeigt, dass die Berechnungszeit einer PDE-basierten Mehrfachauflösungsregistrierung von zwei 2653 CT Lungenvolumina (Einatmen/Ausatmen) lediglich etwa 95 Sekunden beträgt. Diese Versuche wurden durchgeführt unter Verwendung einer NVIDIA GeForceFx 5600 AGP (256 MB Speicher) Graphikkarte auf einem Computer, der mit zwei Xeon 1.7 GHz Prozessoren ausgestattet war. Diese Berechnungszeit ist beispielhaft, und die Registrierungsberechnungszeiten können abhängig von den Details der Implementierung des Registrierungsalgorithmus sowie der verwendeten GPU und CPU variieren. Da derzeitige Graphikkartenspeicher auf 256 MB beschränkt sind, würde die Registrierung auf der GPU für Volumengrößen von 1283 Voxel oder weniger durchgeführt. Wenige Iterationen können auf der CPU bei voller Auflösung berechnet werden, um das Verschiebungsfeld zu verfeinern. Die Berechnung des Gradienten und die Vergrößerung des Verschiebungsfelds können von der CPU durchgeführt werden, während die Berechnung der Registrierung von der GPU durchgeführt werden kann. Um die Konvergenz des Algorithmus sicherzustellen, wurden 80 Iterationen für die niedrigsten Auflösungen durchgeführt, 40 Iterationen für 1283 und 4 Iterationen für 2563.
  • Eine oberflächenbasierte Wiedergabe von Registrierungsergebnissen der durch die GPU beschleunigten Registrierung ist in 7 dargestellt. Bezug nehmend auf die Figur ist das linke Bild ein 2563 CT Lungendatensatz mit einer großen Verschiebung vor der Registrierung, und das rechte Bild ist der 2563 CT Lungendatensatz nach der Registrierung.
  • Es soll klar sein, dass die vorliegende Erfindung in verschiedenen Formen von Hardware, Software, Firmware, Abläufen zu besonderen Zwecken oder Kombinationen davon implementiert werden kann. In einer Ausführungsform kann die vorliegende Erfindung in Software als ein Anwendungsprogramm implementiert sein, das auf einer computerlesbaren Programmspeichervorrichtung verkörpert ist. Das Anwendungsprogramm kann heruntergeladen werden auf und ausgeführt werden durch ein Gerät, das eine beliebige geeignete Architektur aufweist.
  • Bezug nehmend auf 9 kann ein Computersystem 91 zum Implementieren der vorliegenden Erfindung gemäß einer Ausführungsform der vorliegenden Erfindung unter anderem eine zentrale Prozessoreinheit (CPU) 92 aufweisen, einen Graphikprozessor 99, einen Speicher 93 und eine Eingangs-/ Ausgangs(I/O)-Schnittstelle 94. Das Computersystem 91 ist üblicherweise über die I/O-Schnittstelle 94 mit einer Anzeige 95 und verschiedenen Eingabevorrichtungen 96, wie einer Maus und einer Tastatur, verbunden. Die unterstützenden Schaltungen können Schaltungen wie Cache, Stromversorgungen, Taktschaltungen und einen Kommunikationsbus umfassen. Der Speicher 93 kann einen Schreibe-Lese-Speicher (RAM), einen Lesespeicher (ROM), ein Disklaufwerk, Kassettenlaufwerk etc. oder Kombinationen hiervon aufweisen. Die vorliegende Erfindung kann als Routine 97 implementiert sein, die in einem Speicher 93 gespeichert ist und von der CPU 92 und GPU 99 ausgeführt wird, um ein Signal von einer Signalquelle 98 zu verarbeiten. Das Computersystem 91 als solches ist ein Allzweckcomputersystem, das zu einem Computersystem für einen speziellen Zweck wird, wenn die Routine 97 der vorliegenden Erfindung ausgeführt wird.
  • Das Computersystem 91 umfasst auch ein Betriebssystem und einen Mikrobefehlscode. Die verschiedenen Abläufe und Funktionen, die hier beschrieben wurden, können entweder Teil des Mikrobefehlscodes oder Teil des Anwendungsprogramms, das über das Betriebssystem ausgeführt wird, sein (oder einer Kombination hiervon). Zusätzlich können verschiedene andere Peripheriegeräte mit der Computerplattform verbunden sein, wie eine zusätzliche Datenspeichervorrichtung und ein Drucker.
  • Es soll außerdem klar sein, dass, weil einige der systembildenden Komponenten und Verfahrensschritte, die in den begleitenden Zeichnungen dargestellt sind, in Software implementiert sein können, die eigentlichen Verbindungen zwischen den Systemkomponenten (oder den Verfahrensschritten) sich abhängig von der Art und Weise unterscheiden können, in der die Erfindung programmiert ist. Nach der hier vorgegebenen Lehre der vorliegenden Erfindung wird ein Fachmann auf dem Gebiet in der Lage sein, diese und ähnliche Imple mentierungen und Konfigurationen der vorliegenden Erfindung ins Auge zu fassen.
  • Die oben offenbarten speziellen Ausführungsformen sind lediglich beispielhaft, da die Erfindung modifiziert werden kann und auf unterschiedliche, aber für einen Fachmann bei Kenntnis der hier gelieferten Lehre äquivalente Arten praktisch umgesetzt werden kann. Außerdem sind keine Einschränkungen auf hier gezeigte Details der Konstruktion oder der Ausgestaltung beabsichtigt, die nicht in den nachfolgenden Ansprüchen beschrieben sind. Es ist daher klar, dass die oben offenbarten speziellen Ausführungsformen verändert oder modifiziert werden können und alle derartigen Variationen im Schutzbereich der Erfindung liegen. Dementsprechend wird der Schutz wie in den nachfolgenden Ansprüchen formuliert beansprucht.

Claims (24)

  1. Verfahren zum Registrieren von zwei Bildern unter Verwendung eines Graphikprozessors, das folgende Schritte aufweist: Bereitstellen eines Paars von Bildern mit einem ersten Bild und einem zweiten Bild, wobei die Bilder eine Mehrzahl von Intensitäten entsprechend einem Bereich von Rasterpunkten in einem D-dimensionalen Raum aufweisen; Berechnen eines Gradienten des zweiten Bilds; Initialisieren eines Verschiebungsfelds auf dem Rasterpunktbereich des Paars von Bildern, wobei das Verschiebungsfeld das zweite Bild in das erste Bild transformiert; Erzeugen von Texturen für das erste Bild, das zweite Bild, den Gradienten und das Verschiebungsfeld, und Laden dieser Texturen in den Graphikprozessor; Erzeugen eines Pixelzwischenspeichers und Initialisieren desselben mit der Textur, die das Verschiebungsfeld enthält; Glätten des Verschiebungsfelds; Aktualisieren des Verschiebungsfelds von dem ersten Bild, dem zweiten Bild und dem Gradienten her über eine oder mehrere Iterationen; und Auslesen des aktualisierten Verschiebungsfelds aus dem Pixelzwischenspeicher.
  2. Verfahren nach Anspruch 1, wobei das Erzeugen eines Pixelzwischenspeichers außerdem die Schritte aufweist, einen Wiedergabekontext zu erzeugen, die Pixelzwischenspeicherattribute zu initialisieren und eine neue Textur zu erzeugen, wo der Pixelzwischenspeicher gebunden ist.
  3. Verfahren nach Anspruch 1, desweiteren mit den Schritten, Texturparameter festzulegen und Einheitsvariablen festzulegen.
  4. Verfahren nach Anspruch 1, desweiteren mit den Schritten, einen Wiedergabekontext für die Bildregistrierung zu erzeugen und Fragmentprogramme für das Aktualisieren des Verschiebungsfelds zu kompilieren und in den Graphikprozessor zu laden.
  5. Verfahren nach Anspruch 1, desweiteren mit dem Schritt, die Auflösung des Verschiebungsfelds nach dem Auslesen des Verschiebungsfelds aus dem Pixelzwischenspeicher zu vergrößern.
  6. Verfahren nach Anspruch 5, wobei das Vergrößern der Auflösung den Schritt aufweist, Verschiebungsfeldwerte für Punkte zwischen Rasterpunkten im Verschiebungsfeldbereich linear zu interpolieren.
  7. Verfahren nach Anspruch 1, wobei das Aktualisieren des Verschiebungsfelds ein Rendering-Pass ist, der vom Graphikprozessor gemäß der Gleichung uk+1 = uk + δ[I1 – I2·(Id + uk))∇I2·(Id + uk)] + αΔuk durchgeführt wird, wobei uk und uk+1 das Verschiebungsfeld bzw. das aktualisierte Verschiebungsfeld ist, I1 das erste Bild ist, I2 das zweite Bild ist, ∇I2 der Gradient ist, Id die Identitätsabbildung ist, Δuk der Laplace-Operator des Verschiebungsfelds ist, α ein Regelungsparameter ist, und δ der Zeitabschnitt ist.
  8. Verfahren nach Anspruch 7, wobei der Bereich von Rasterpunkten ein 3-dimensionaler Raum ist, und wobei das Verschiebungsfeld von drei Dimensionen in zwei Dimensionen für den Rendering-Pass gemäß den Transformationen
    Figure 00270001
    umgewandelt wird, wobei fix der Quotient einer ganzzahligen Division, mod der Rest einer ganzzahligen Division ist, (x, y, z) ein 3-dimensionaler Rasterpunkt ist, (p, q) ein 2-dimensionaler Rasterpunkt ist, Rx die Anzahl an Spalten ist, Ry die Anzahl an Zeilen ist, und N eine ganze Zahl ist, die definiert wird als
    Figure 00270002
    wenn das Ergebnis eine ganze Zahl ist, beziehungsweise
    Figure 00270003
    in den anderen Fällen.
  9. Verfahren nach Anspruch 8, wobei das Verschiebungsfeld von einem 2-dimensionalen Raster in ein 3-dimensionales Raster gemäß den Transformationen
    Figure 00270004
    umgewandelt wird, wobei Rz die Anzahl von Schnitten ist.
  10. Verfahren nach Anspruch 7, wobei der Laplace-Operator des Verschiebungsfelds uk in drei Dimensionen definiert ist als Δuk(x, y, z) = uk(x + 1, y, z) + uk(x – 1, y, z) + uk(x, y + 1, z) + uk(x, y – 1, z) + uk(x, y, z + 1) + uk(x, y, z – 1) – 6.0 × uk(x, y, x)und in zwei Dimensionen als Δuk(p, q) = uk(p + 1, q) + uk(p – 1, q) + uk(p, q + 1) + uk(p, q – 1) + uk(r, s) + uk(t, u) – 6.0 × uk(p, q)wobei (x, y, z) ein 3-diemnsionaler Rasterpunkt ist, (p, q) ein 2-dimensionaler Rasterpunkt ist, Rx die Anzahl an Spalten ist R die Anzahl an Zeilen ist Rz die Anzahl an Schnitten ist, und N eine ganze Zahl ist, die als
    Figure 00280001
    definiert ist, wenn das Ergebnis eine ganze Zahl ist, bzw. als
    Figure 00280002
    in den anderen Fallen,
    Figure 00280003
    wobei fix der Quotient einer ganzzahligen Division und mod der Rest einer ganzzahligen Division ist.
  11. Verfahren nach Anspruch 7, wobei die Grenzbedingungen des 3-dimensionalen Verschiebungsfelds an die Kanten geklemmt (clamp-to-edge) sind, und wobei das Verfahren weiterhin den Schritt aufweist, die Grenzbedingungen des 2D-Verschiebungsfelds durch Auflegen einer 2D-Maske zu steuern, wobei die Maske ein vorberechneter Vektor mit 7 Koeffizienten (a, b, c, d, e, f, g) ist, die jeden Term des Verschiebungsfelds gemäß der Gleichung a × uk(x + 1, y) + b × uk(x – 1, y) + c × uk(x, y + 1) + d × uk(x, y – 1) + e × uk(r, s) + f × uk(t, u) + g × uk(x, y)multiplizieren, wobei uk(x, y) das 2D-Verschiebungsfeld ist, (a, b, c, d, e, f) entweder 0 oder 1 sind, wobei 0 einen Verschiebungsfeldwert außerhalb der Grenzen und 1 einen Punkt innerhalb der Grenzen anzeigt, und wobei g zwischen –6 and 0 abhängig von der Anzahl der inneren nächsten Nachbarpunkte um (x, y) variieren kann.
  12. Verfahren zum Registrieren von zwei Bildern mit folgenden Schritten: Bereitstellen eines Graphikprozessors; Bereitstellen eines Paars von Bildern mit einem ersten Bild und einem zweiten Bild, wobei die Bilder eine Mehrzahl von Intensitäten entsprechend einem Bereich von Rasterpunkten in einem 3-dimensionalen Raum aufweisen; Berechnen eines Gradienten des zweiten Bilds; Initialisieren eines Verschiebungsfelds auf dem Rasterpunktbereich des Paars von Bildern, wobei das Verschiebungsfeld das zweite Bild in das erste Bild transformiert; Erzeugen von Texturen für das erste Bild, das zweite Bild, den Gradienten und das Verschiebungsfeld, und Laden der Texturen in den Graphikprozessor; Erzeugen eines Pixelzwischenspeichers einschließlich Erzeugen eines Wiedergabekontexts, Initialisieren der Pixelzwischenspeicherattribute, Erzeugen einer neuen Textur, wo der Pixelzwischenspeicher gebunden ist, und Initialisieren desselben mit der Textur, die das Verschiebungsfeld enthält; Aktualisieren des Verschiebungsfelds von einem Rendering-Pass, der vom Graphikprozessor gemäß der Gleichung uk+1 = uk + δ[I1 – I2·(Id + uk))∇I2·(Id + uk)] + αΔuk durchgeführt wird, wobei uk und uk+1 das Verschiebungsfeld bzw. das aktualisierte Verschiebungsfeld ist, I1 das erste Bild ist, I2 das zweite Bild ist, ∇I2 der Gradient ist, Id eine Identitätsabbildung ist, Δuk der Laplace-Operator des Verschiebungsfelds ist, α ein Regelungsparameter ist und δ der Zeitabschnitt ist; und Vergrößern der Auflösung des Verschiebungsfelds durch lineares Interpolieren von Verschiebungsfeldwerten für Punkte zwischen Rasterpunkten im Verschiebungsfeldbereich.
  13. Verfahren nach Anspruch 12, desweiteren mit den Schritten, das Verschiebungsfeld zu glätten und das aktualisierte Verschiebungsfeld vom Pixelzwischenspeicher auszulesen.
  14. Computerlesbare Programmspeichervorrichtung, die ein. Programm von Befehlen verkörpert, die auf einem Computer ausgeführt werden können, um die Verfahrensschritte zum Registrieren von zwei Bildern unter Verwendung eines Graphik prozessors durchzuführen, wobei das Verfahren die folgenden Schritte aufweist: Bereitstellen eines Paars von Bildern mit einem ersten Bild und einem zweiten Bild, wobei die Bilder eine Mehrzahl von Intensitäten entsprechend einem Bereich von Rasterpunkten in einem D-dimensionalen Raum aufweisen; Berechnen eines Gradienten des zweiten Bilds; Initialisieren eines Verschiebungsfelds auf dem Rasterpunktbereich des Paars von Bildern, wobei das Verschiebungsfeld das zweite Bild in das erste Bild transformiert; Erzeugen von Texturen für das erste Bild, das zweite Bild, den Gradienten und das Verschiebungsfeld, und Laden der Texturen in den Graphikprozessor; Erzeugen eines Pixelzwischenspeichers und Initialisieren desselben mit der Textur, die das Verschiebungsfeld enthält; Glätten des Verschiebungsfelds; Aktualisieren des Verschiebungsfelds vom ersten Bild, vom zweiten Bild und vom Gradienten her über eine oder mehrere Iterationen; und Auslesen des aktualisierten Verschiebungsfelds aus dem Pixelzwischenspeicher.
  15. Computerlesbare Programmspeichervorrichtung nach Anspruch 14, wobei das Erzeugen eines Pixelzwischenspeichers außerdem die Schritte aufweist, einen Wiedergabekontext zu erzeugen, die Pixelzwischenspeicherattribute zu initiali sieren und eine neue Textur zu erzeugen, wo der Pixelzwischenspeicher gebunden ist.
  16. Verfahren nach Anspruch 14, desweiteren mit den Schritten, Texturparameter festzulegen und Einheitsvariablen festzulegen.
  17. Computerlesbare Programmspeichervorrichtung nach Anspruch 14, wobei das Verfahren außerdem die Schritte aufweist, einen Wiedergabekontext für die Bildregistrierung zu erzeugen und Fragmentprogramme für das Aktualisieren des Verschiebungsfelds zu kompilieren und in den Graphikprozessor zu laden.
  18. Computerlesbare Programmspeichervorrichtung nach Anspruch 14, wobei das Verfahren weiterhin den Schritt aufweist, die Auflösung des Verschiebungsfelds zu vergrößern, nachdem das Verschiebungsfeld aus dem Pixelzwischenspeicher ausgelesen wurde.
  19. Computerlesbare Programmspeichervorrichtung nach Anspruch 18, wobei das Vergrößern der Auflösung ein lineares Interpolieren von Verschiebungsfeldwerten für Punkte zwischen Rasterpunkten im Verschiebungsfeldbereich beinhaltet.
  20. Computerlesbare Programmspeichervorrichtung nach Anspruch 14, wobei das Aktualisieren des Verschiebungsfelds ein Rendering-Pass ist, der vom Graphikprozessor gemäß der Gleichung uk+1 = uk + δ[I1 – I2·(Id + uk))∇I2·(Id + uk)] + αΔuk durchgeführt wird, wobei uk und uk+1 das Verschiebungsfeld bzw. das aktualisierte Verschiebungsfeld ist, I1 das erste Bild ist, I2 das zweite Bild ist, ∇I2 der Gradient ist, Id die Identitätsabbildung ist, Δuk der Laplace-Operator des Verschiebungsfelds ist, α ein Regelungsparameter ist und δ der Zeitabschnitt ist.
  21. Computerlesbare Programmspeichervorrichtung nach Anspruch 20, wobei der Bereich von Rasterpunkten ein 3-dimensionaler Raum ist, und wobei das Verschiebungsfeld von drei Dimensionen in zwei Dimensionen für den Rendering-Pass gemäß den Transformationen
    Figure 00330001
    umgewandelt wird, wobei fix der Quotient einer ganzzahligen Division ist, mod der Rest einer ganzzahligen Division ist, (x, y, z) eine 3-dimensionaler Rasterpunkt ist, (p, q) ein 2-dimensionaler Rasterpunkt ist, Rx die Anzahl an Spalten ist, Ry die Anzahl an Zeilen ist, und N eine ganze Zahl ist, die definiert ist als
    Figure 00330002
    wenn das Ergebnis eine ganze Zahl ist, und
    Figure 00330003
    in den anderen Fällen.
  22. Computerlesbare Programmspeichervorrichtung nach Anspruch 21, wobei das Verschiebungsfeld von einem 2-dimensionalen Raster in ein 3-dimensionales Raster gemäß den Transformationen
    Figure 00330004
    umgewandelt wird, wobei Rz die Anzahl an Schnitten ist.
  23. Computerlesbare Programmspeichervorrichtung nach Anspruch 20, wobei der Laplace-Operator des Verschiebungsfelds uk in drei Dimensionen definiert wird als Δuk(x, y, z) = uk(x + 1, y, z) + uk(x – 1, y, z) + uk(x, y + 1, z) + uk(x, y – 1, z) + uk(x, y, z + 1) + uk(x, y, z – 1) – 6.0 × uk(x, y, x)und in zwei Dimensionen als Δuk(p, q) = uk(p + 1, q) + uk(p – 1, q) + uk(p, q + 1) + uk(p, q – 1) + uk(r, s) + uk(t, u) – 6.0 × uk(p, q)wobei (x, y, z) ein 3-dimensionaler Rasterpunkt ist, (p, q) ein 2-dimensionaler Rasterpunkt ist, Rx die Anzahl an Spalten ist, Ry die Anzahl an Zeilen ist, Rz die Anzahl an Schnitten ist, und N eine ganze Zahl ist, die definirt ist als
    Figure 00340001
    wenn das Ergebnis eine ganze Zahl ist, und
    Figure 00340002
    in den anderen Fällen,
    Figure 00340003
    wobei fix der Quotient einer ganzzahligen Division ist und mod der Rest einer ganzzahligen Division ist.
  24. Computerlesbare Programmspeichervorrichtung nach Anspruch 20, wobei die Grenzbedingungen des 3-dimensionalen Verschiebungsfelds an die Kanten geklemmt (clamp-to-edge) sind, und wobei das Verfahren weiterhin den Schritt aufweist, die Grenzbedingungen des 2D-Verschiebungsfelds zu steuern, indem eine 2D-Maske aufgelegt wird, wobei die Maske ein vorberechneter Vektor mit 7 Koeffizienten, (a, b, c, d, e, f, g) ist, die jeden Term des Verschiebungsfelds gemäß der Gleichung a × uk(x + 1, y) + b × uk(x – 1, y) + c × uk(x, y +1) + d × uk(x, y – 1) + e × uk(r, s) + f × uk(t, u) + g × uk(x, y)multiplizieren, wobei uk(x, y) das 2D-Verschiebungsfeld ist, (a, b, c, d, e, f) entweder 0 oder 1 sind, wobei 0 einen Verschiebungsfeldwert außerhalb der Grenzen und 1 einen Punkt innerhalb der Grenzen anzeigt, und wobei g zwischen –6 und 0 abhängig von der Anzahl an inneren nächsten Nachbarpunkten um (x, y) variieren kann.
DE102005008824A 2004-02-25 2005-02-24 Verfahren zum Registrieren von zwei Bildern unter Verwendung eines Graphikprozessors und die computerlesbare Programmspeichervorrichtung hierfür Expired - Fee Related DE102005008824B4 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US54768404P 2004-02-25 2004-02-25
US60/547,684 2004-02-25
US11/062,962 2005-02-22
US11/062,962 US7483034B2 (en) 2004-02-25 2005-02-22 System and method for GPU-based 3D nonrigid registration

Publications (2)

Publication Number Publication Date
DE102005008824A1 true DE102005008824A1 (de) 2005-11-03
DE102005008824B4 DE102005008824B4 (de) 2010-01-21

Family

ID=34889939

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102005008824A Expired - Fee Related DE102005008824B4 (de) 2004-02-25 2005-02-24 Verfahren zum Registrieren von zwei Bildern unter Verwendung eines Graphikprozessors und die computerlesbare Programmspeichervorrichtung hierfür

Country Status (2)

Country Link
US (1) US7483034B2 (de)
DE (1) DE102005008824B4 (de)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8497865B2 (en) * 2006-12-31 2013-07-30 Lucid Information Technology, Ltd. Parallel graphics system employing multiple graphics processing pipelines with multiple graphics processing units (GPUS) and supporting an object division mode of parallel graphics processing using programmable pixel or vertex processing resources provided with the GPUS
EP1687732A4 (de) * 2003-11-19 2008-11-19 Lucid Information Technology Ltd Verfahren und system für eine mehrfach-3d-graphikpipeline über einen pc-bus
US8085273B2 (en) * 2003-11-19 2011-12-27 Lucid Information Technology, Ltd Multi-mode parallel graphics rendering system employing real-time automatic scene profiling and mode control
US20080079737A1 (en) 2003-11-19 2008-04-03 Reuven Bakalash Multi-mode parallel graphics rendering and display system supporting real-time detection of mode control commands (MCCS) programmed within pre-profiled scenes of the graphics-based application
US20090027383A1 (en) 2003-11-19 2009-01-29 Lucid Information Technology, Ltd. Computing system parallelizing the operation of multiple graphics processing pipelines (GPPLs) and supporting depth-less based image recomposition
US7961194B2 (en) 2003-11-19 2011-06-14 Lucid Information Technology, Ltd. Method of controlling in real time the switching of modes of parallel operation of a multi-mode parallel graphics processing subsystem embodied within a host computing system
US7714855B2 (en) * 2004-05-17 2010-05-11 Siemens Medical Solutions Usa, Inc. Volume rendering processing distribution in a graphics processing unit
US7466316B1 (en) 2004-12-14 2008-12-16 Nvidia Corporation Apparatus, system, and method for distributing work to integrated heterogeneous processors
US7898545B1 (en) * 2004-12-14 2011-03-01 Nvidia Corporation Apparatus, system, and method for integrated heterogeneous processors
US7446773B1 (en) 2004-12-14 2008-11-04 Nvidia Corporation Apparatus, system, and method for integrated heterogeneous processors with integrated scheduler
EP1846834A2 (de) 2005-01-25 2007-10-24 Lucid Information Technology, Ltd. Graphikverarbeitungs- und anzeigesystem mit mehreren graphikkernen auf einem silicium-chip von monolithischer bauart
US7653264B2 (en) * 2005-03-04 2010-01-26 The Regents Of The University Of Michigan Method of determining alignment of images in high dimensional feature space
US7852335B2 (en) 2005-05-09 2010-12-14 Siemens Medical Solutions Usa, Inc. Volume rendering processing distribution in a graphics processing unit
US7830386B1 (en) * 2005-06-17 2010-11-09 Nvidia Corporation Register transfer level simulation using a graphics processor
US7948503B2 (en) * 2005-08-30 2011-05-24 University Of Maryland, Baltimore Techniques for 3-D elastic spatial registration of multiple modes of measuring a body
DE102005052993B4 (de) * 2005-11-07 2014-08-21 Siemens Aktiengesellschaft Verfahren zur automatisierten Auswertung eines dreidimensionalen Abbildes eines seitensymmetrischen Organsystems
US20070167784A1 (en) * 2005-12-13 2007-07-19 Raj Shekhar Real-time Elastic Registration to Determine Temporal Evolution of Internal Tissues for Image-Guided Interventions
EP1969564A2 (de) * 2005-12-20 2008-09-17 University of Maryland, Baltimore Verfahren und vorrichtung zur beschleunigten elastischen registration mehrerer abtastungen interner eigenschaften eines körpers
US8425418B2 (en) * 2006-05-18 2013-04-23 Eigen, Llc Method of ultrasonic imaging and biopsy of the prostate
WO2008085193A2 (en) * 2006-08-14 2008-07-17 University Of Maryland Quantitative real-time 4d strees test analysis
US8064664B2 (en) * 2006-10-18 2011-11-22 Eigen, Inc. Alignment method for registering medical images
US7804989B2 (en) * 2006-10-30 2010-09-28 Eigen, Inc. Object recognition system for medical imaging
US20080143707A1 (en) * 2006-11-28 2008-06-19 Calgary Scientific Inc. Texture-based multi-dimensional medical image registration
US8098911B2 (en) * 2006-12-05 2012-01-17 Siemens Aktiengesellschaft Method and system for registration of contrast-enhanced images with volume-preserving constraint
US20080161687A1 (en) * 2006-12-29 2008-07-03 Suri Jasjit S Repeat biopsy system
US8175350B2 (en) 2007-01-15 2012-05-08 Eigen, Inc. Method for tissue culture extraction
US7856130B2 (en) * 2007-03-28 2010-12-21 Eigen, Inc. Object recognition system for medical imaging
US8571277B2 (en) 2007-10-18 2013-10-29 Eigen, Llc Image interpolation for medical imaging
US7942829B2 (en) * 2007-11-06 2011-05-17 Eigen, Inc. Biopsy planning and display apparatus
WO2009076218A2 (en) * 2007-12-07 2009-06-18 University Of Maryland Composite images for medical procedures
US8238675B2 (en) * 2008-03-24 2012-08-07 Microsoft Corporation Spectral information recovery for compressed image restoration with nonlinear partial differential equation regularization
US8380005B1 (en) 2009-02-02 2013-02-19 Adobe Systems Incorporated System and method for image composition using non-destructive editing model and fast gradient solver
US8872812B2 (en) * 2009-11-12 2014-10-28 Marvell World Trade Ltd. Power saving in mobile devices by optimizing frame rate output
EP2369551B1 (de) * 2010-03-25 2019-10-30 Emory University Abbildungssystem und -Verfahren
US8848990B2 (en) * 2010-09-28 2014-09-30 Siemens Aktiengesellschaft Automatic registration of image series with varying contrast based on synthetic images derived from intensity behavior model
CN102034275B (zh) * 2010-12-10 2013-12-18 中国人民解放军国防科学技术大学 面向大尺度变形的非刚性注册方法
KR101307605B1 (ko) 2012-03-30 2013-09-12 한국과학기술원 중앙 처리 장치(cpu)와 그래픽 처리 장치(gpu)를 동시에 사용하는 nmi 기반의 3차원 비강체 영상 정합 병렬 처리 방법 및 장치
WO2015080716A1 (en) 2013-11-27 2015-06-04 Analogic Corporation Multi-imaging modality navigation system
US9760989B2 (en) 2014-05-15 2017-09-12 Vida Diagnostics, Inc. Visualization and quantification of lung disease utilizing image registration
US9886760B2 (en) 2015-03-05 2018-02-06 Broncus Medical Inc. GPU-based system for performing 2D-3D deformable registration of a body organ using multiple 2D fluoroscopic views
EP3294136B1 (de) 2015-05-08 2020-11-18 Vida Diagnostics, Inc. System zur quantifizierung regionaler rissmerkmale
US10716544B2 (en) 2015-10-08 2020-07-21 Zmk Medical Technologies Inc. System for 3D multi-parametric ultrasound imaging
AU2016266019A1 (en) * 2016-11-30 2018-06-14 Canon Kabushiki Kaisha Image registration method
US11074752B2 (en) * 2018-02-23 2021-07-27 Sony Group Corporation Methods, devices and computer program products for gradient based depth reconstructions with robust statistics
CN110959157B (zh) 2018-05-01 2024-03-12 谷歌有限责任公司 加速大规模相似性计算
CN109919987B (zh) * 2019-01-04 2020-09-04 浙江工业大学 一种基于gpu的三维医学图像配准相似度计算方法
CN112348735A (zh) * 2020-09-30 2021-02-09 深圳市阅影科技有限公司 动态图像变形过程的确定方法、确定装置与处理器

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6633686B1 (en) * 1998-11-05 2003-10-14 Washington University Method and apparatus for image registration using large deformation diffeomorphisms on a sphere
GB9906420D0 (en) * 1999-03-19 1999-05-12 Isis Innovation Method and apparatus for image processing

Also Published As

Publication number Publication date
US7483034B2 (en) 2009-01-27
US20050190189A1 (en) 2005-09-01
DE102005008824B4 (de) 2010-01-21

Similar Documents

Publication Publication Date Title
DE102005008824B4 (de) Verfahren zum Registrieren von zwei Bildern unter Verwendung eines Graphikprozessors und die computerlesbare Programmspeichervorrichtung hierfür
US8497861B2 (en) Method for direct volumetric rendering of deformable bricked volumes
DE102008026431B4 (de) Extrapolation von nicht residenten Mipmap-Daten unter Verwendung residenter Mipmap-Daten
DE60133166T2 (de) Verfahren und Vorrichtung zur Volumendarstellung
Lertrattanapanich et al. High resolution image formation from low resolution frames using Delaunay triangulation
US5170347A (en) System to reformat images for three-dimensional display using unique spatial encoding and non-planar bisectioning
EP1478274B1 (de) Verfahren und geräte für schnelle fächerstrahl-tomographie
DE19807053B4 (de) Strahltransformationsverfahren für eine schnelle Volumenaufbereitung für eine perspektivische Betrachtung
DE112005000804T5 (de) Multi-Label-Bildsegmentierung mit GPU
DE102018113845A1 (de) Systeme und Verfahren zum Trainieren von neuronalen Netzwerken mit dünnbesetzten Daten
Di Martino et al. Poisson image editing
DE102015113240A1 (de) System, verfahren und computerprogrammprodukt für schattierung unter verwendung eines dynamischen objektraumgitters
DE102016011380A1 (de) Bildsynthese unter Verwendung einer Aktivmaske
JP2000182038A (ja) 歪まされた情報からの遠近法的矯正デ―タの生成方法及びこれに用いる装置並びにコンピュ―タプログラム製品
DE102017108096A1 (de) System, verfahren und computerprogrammprodukt zum rendern bei variablen abtastraten mittels projektiver geometrischer verzerrung
DE102008032006A1 (de) Verfahren zur Steurung der Bildaufnahme bei einer Bildaufnahmeeinrichtung, sowie eine Bildaufnahmeeinrichtung
JPH01199279A (ja) 作像装置
DE69631718T2 (de) Verfahren und Gerät zur leistungsfähigen Graphikdarstellung dreidimensionaler Szenen
DE102005023964A1 (de) Volumenvisualisierung mittels Texturverschiebung
DE102010025310A1 (de) Textursampling
DE102010033318A1 (de) Techniken zum Speichern und Abrufen von Bilddaten
DE102010048486A1 (de) Bildverarbeitungstechniken
DE102010046507A1 (de) Berechnung der Detailstufe für die anisotrope Filterung
US9311740B2 (en) Method for enhancing reconstructed 3-D tomosynthesis volume image
DE102018125472A1 (de) Grafikprozessor, der Abtastungs-basiertes Rendering durchführt, und Verfahren zum Betreiben desselben

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8127 New person/name/address of the applicant

Owner name: SIEMENS MEDICAL SOLUTIONS USA, INC., MALVERN, PA.,

8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee