θ - Universitätsklinikum Düsseldorf
Transcription
θ - Universitätsklinikum Düsseldorf
Universitätsklinikum Düsseldorf Studiengang Medizinische Physik Heinrich-Heine-Universität Düsseldorf Bildrekonstruktion und Bildanalyse Prinzipien der Computertomographie Dr. Ioannis Simiantonakis Klinik und Poliklinik fü für Strahlentherapie und Radioonkologie Ioannis.Simiantonakis@med.uni-duesseldorf.de Universitätsklinikum Düsseldorf Teil 2: Praxis der Bildrekonstruktion Was und wie wird gemessen? Homogenes Objekt, monochromatische Strahlung Inhomogenes Objekt, monochromatische Strahlung d2 d4 Inhomogenes Objekt, polychromatische Strahlung Hounsfield-Skala Hounsfield-Skala Fensterung der Hounsfield-Skala C/W: Center/Width Massenschwächungskoeffizienten Massenschwächungskoeffizienten Bild-Berechnung Aus den gemessenen Intensitäten Si können die Schwächungskoeffizienten µi berechnet werden. SS77 S6 Koordinatensystem der Projektion • Die Parallelstrahlgeometrie für den Winkel θ stellt ein neues Koordinatensystem (r,s) dar, in welchem die Projektion Iθ(r) akquiriert wird: – Die Rotationsmatrix R transformiert das Koordinatensystem (x, y) in (r, s): r x cos θ sin θ x = R = s y − sin θ cos θ y – Das gilt für alle Punkte (x,y) für welche r = x cosθ + y sinθ auf der Linie Iθ(r) – RT ist die inverse, welche (r, s) in (x, y) überführt x cos θ T r =R = y s sin θ − sin θ r cos θ s – s ist die Parametrisierungsvariable entlang der Linie Iθ(r) Projektion • Für den fixen Winkel θ ist die gemessene Intensität der Detektorposition r die integrierte Dichte entlang der Linie Iθ(r): ∫ − Iθ (r ) = I 0 ⋅ e µ ( x , y ) ds Lr ,θ ∫ µ ( r ⋅cosθ − s⋅sin θ , r ⋅sin θ + s⋅cosθ ) ds = I 0 ⋅ e Lr ,θ • Für ein kontinuierliches Energiespektrum gilt: ∞ ∫ µ ( r ⋅cosθ − s ⋅sin θ , r ⋅sin θ + s⋅cosθ ) ds Iθ (r ) = ∫ I 0 ( E ) ⋅ e Lr ,θ 0 • Gilt für monochromatische Wellen Projektionsprofil • Jedes Intensitätsprofil Iθ(r) wird in ein Schwächungsprofil pθ(r) transformiert: pθ (r ) = − ln Iθ ( r ) = ∫ µ (r ⋅ cos θ − s ⋅ sin θ , r ⋅ sin θ + s ⋅ cos θ )ds I0 Lr ,θ – pθ(r) = 0, falls |r|>FOV/2 (FOV: Field Of View, Detektorgröße) – pθ(r) liegt zwischen (0,2π) – Parallelstahlansichten (π,2π) sind redundant, so dass nur Messungen für (0,π) notwendig Sinogramm • Die Überlagerung aller Projektionen (Linienintegrale) führt zum Sinogramm, Sinogramm einem 2-D Datensatz p(r,θ) • Bei einem Punktobjektt: – Sinogramm beschreibt ein Sinusoid in p(r,θ): Projektionen Punktobjekt Sinogramm Radon-Transformation • Die Transformation jeder Funktion f(x,y) nach p(r,θ) ist die Radon-Transformierte p(r , θ ) = R{ f ( x, y )} = ∞ ∫ f (r ⋅ cos θ − s ⋅ sin θ , r ⋅ sin θ + s ⋅ cos θ )ds −∞ • Die Radon-Transformatierte hat folgende Eigenschaften: – p(r,θ) ist periodisch in θ mit der Periode 2π p (r , θ ) = p (r , θ + 2π ) – p(r,θ) ist symmetrisch in θ mit der Periode π p(r ,θ ) = p(−r ,θ ± π ) Abtastung • Praktisch existiert eine limitierte Anzahl von Ansichten M und von Detektoren N • Dies hat ein diskretes Sinogramm p(Ν∆r,Μ∆θ) zur Folge: – Matrix mit M Reihen und N Spalten ∆r: Abtastabstand des Detektors ∆θ: Rotationsinterval zwischen nachfolgenden Ansichten ∆s: Strahlbreite • ∆r ∆s ∆θ Abtasttheorem besagt wie die Parameter für eine gewünschte Objektauflösung gewählt sein sollten Abtastung Raumbereich Frequenzbereich Projektion pθ(r) Strahlapertur ∆s geglättete Projektion Spaltfunktion 1/∆s Abtastung Raumbereich Frequenzbereich Geglättete Projektion Abtastung bei ∆r 1/∆r Abtastprojektion 1/∆s Treppeneffekt (Aliasing) • Projektionaliasing - Aliasing innerhalb der Sinogrammlinien: – Um das Aliasing zu beschränken, muß es im Frequenzraum getrennt werden (mind. identisch mit Nulldurchgang): 1 2 ∆s ≥ → ∆r ≤ 2 ∆r ∆s – Daher werden mind. 2 Stichroben pro Strahl benötigt ∆k ∆θ • Winkelaliasing - Aliasing außerhalb der Sinogrammlinien: ∆θ = π kmax kmax=1/∆r M k ∆k = max N /2 for uniform sampling: ∆θ = ∆k → Sinogramm im Frequenzraum (2 Projektionen mit N=12) π kmax M = kmax N → M =π N /2 2 M: Ansichten, gleichmäßig verteilt um den Halbkreis N: Anzahl der Detektorproben, verursacht N Frequenzbereichproben für jede Projektion Rekonstruktion: Prinzip • Aus dem gegebenen Sinogramm p(r,θ) soll das Objekt mit Koordinaten (x,y) wiederhergestellt werden • Entsprechend dem Prinzip der axiale Tomographie gilt: – nachträgliches “Verschmieren” der akquirierten p(r,θ) entlang der Filmplatte – für einen Punkt erhältπ man b( x, y ) = B{ p (r ,θ )} = ∫ p( x ⋅ cos θ + y ⋅ sin θ ,θ )dθ 0 • Die Methode wird Rückprojektion genannt Rückprojektion: Illustration Rückprojektion: Praktische Betrachtung • Annahmen: – Ein finiter Satz von M Projektionen und ein diskretes Array von N Pixeln (xi, yj) M b( xi , y j ) = B{ p(rn ,θ m )} = ∑ p( xi ⋅ cos θ m + y j ⋅ sin θ m ,θ m ) m =1 Strahl Pixel – Für die Rekonstruktion des Pixels (xi, yj) gibt es keinen Strahl p(rn,θn) (Detektorabtastung) im Projektionssatz also Interpolation nötig (normalerweise lineare Interpolation) Detektorproben Interpolation – Die erhaltenen Rekonstruktionen mit der einfachen Rückprojektion erscheinen verschmiert Fourier Slice Theorem Fourier Slice Theorem (Central Slice Theorem) hilft die Verschmierung zu verstehen • Die Fourier-Transformierte FT P(θ,k) der Projektion p(r,θ) ist eine Linie entlang des Ursprungs der Fourier-Transformierten F(kx,ky) der Funktion f(x,y) • Mögliche Rekonstruktion: – berechne die 1-D FT aller Projektionen p(rm,θm), welche für F(kx,ky) auf einem Polargitter abzweigen – überführe das Polargitter in das kartesische (mittels Interpolation) – führe inverse 2-D FT aus, um die gewünschte f(x,y) im kartesischen Gitter zu erhalten • Zwei wichtige Beobachtungen hierzu: – Interpolation im Frequenzraum führt zu Artefakten – Am Rand der FT ist das Spektrum nur spärlich abgetastet Polargitter Kartesisches Gitter Gefilterte Rückprojektion: Prinzip Um diese Betrachtungen zu verstehen, modifiziert man die Rekonstruktion wie folgt: – Filterung der Projektionen um die Verschmierung zu kompensieren – Durchführung der Interpolation im Ortsraum mittels Rückprojektion Filterung • Abgleichen aller Frequenzbeiträge im Polargitter der FT • Multiplikation jeder P(θ,k) mit der Rampenfunktion • Die Größe der höherfrequenten Proben in jeder Projektion wird hoch skaliert um ihre geringere Menge auszugleichen • Die Rampe ist die geeignete Skalierungsfunktion, da die Probendichte in den Rändern der FT linear abfällt Gefilterte Rückprojektion: Gleichung 1-D FT von p(r,θ) P(k,θ) Rückprojektion für alle Winkel π ∞ Rampenfilterung f ( x, y ) = ∫ ( ∫ P(k ,θ ) ⋅ k ⋅ ei 2π kr dk ) dθ 0 −∞ • inverse 1-D FT p(r,θ) Gegenüberstellung der Rückprojektion und gefilterten Rückprojektion nicht gefiltert gefiltert Filter • Viele verschiedene Filter verfügbar: – Alle haben große Ausmaße Faltung aufwendig – Deshalb Filterung üblicherweise im Frequenzraum benötigte 2 FT und Multiplikation mit der Filterfunktion weniger komplex • Die verbreitesten Filter: – Ram-Lak: originärer Rampenfilter beschränkt durch das Interval [±kmax] – Ram-Lak mit Hanning/Hamming Glättungsfenster: unterdrückt höhere Frequenzen um Aliasing und Rauschen zu reduzieren Ram-Lak Hanningfenster Geglätteter Ram-Lak Strahlgeometrie • Parallelstahlkonfiguration nicht praktisch – benötigt für jeden Strahl eine neue Quellenposition • Gewünscht wird ein Bild als “one shot” – benötigt Fächerstrahlkonfiguration Parallelstrahl Fächerstrahl 3-D cone-beam Fächerstrahl • • Umschreiben der Parallelstrahlgleichung in die Fächerstrahlgeometrie Wir erinnern uns: – Filterung: p *(r ,θ ) = + FOV / 2 ∫ p(r ',θ )q(r − r ')dr ' − FOV / 2 – Rückprojektion: π f ( x, y ) = ∫ p *(r ,θ )dθ with r = x cos θ + y sin θ 0 – Kombination: f ( x, y ) = 2π + FOV / 2 ∫ ∫ 0 − FOV / 2 p(r ',θ )q( x cos θ + y sin θ − r ')dr ' dθ Fächerstrahl v(x,y): Abstand zur Quelle – Änderung der Variablen: θ =α +β r = R sin α – Nach einigen weiteren Manipulationen: f ( x, y ) = 2π + FOV / 2 ∫ ∫ p(r ',θ )q( x cos θ + y sin θ − r ')dr ' dθ 0 − FOV / 2 Beachte: α, γ sind die neuen r’, r die Projektion in β f ( x, y ) = 2π ∫ 0 + fan − angle / 2 1 γ −α ⋅ ⋅ R cos α p ( α , β ) ( )q(γ − α )dα d β 2 ∫ v ( x, y ) − fan −angle / 2 2sin(γ − α ) 3. Wichtung während Rückprojection 1. Projektion vor Wichtung 2. Filterung 3-D Aufnahme • • Sequentielle CT – Patientientisch wird nach jeder beendeten Schichtakquisition weiter transportiert – Stop-Bewegung ist zeitaufwendig und rüttelt den Patienten – Die effektive Schichtdicke Dz ist äquivalent zur Strahlbreite Ds – 2 Schichten pro Dz müssen akquiriert werden um Aliasing zu unterdücken Spirale (helikale) CT – Tisch bewegt sich während die Röhre um den Patienten rotiert – sehr verbreitete Technik – schnelle und kontinuierliche Akquisition – table feed (TF): axiale Translation pro Röhrenrotation – Schrittweite pitch = TF / Dz Dz Dz Rekonstruktion: Spiral-CT • Tisch schreitet vorwärts (z steigt) während Röhre rotiert (β wächst) – Rekonstruktion einer Schicht mit konstantem z benötigt Daten aus allen Winkeln β – dies benötigt Interpolation verfügbare Daten sequentielle CT Spiral-CT interpoliert – fallsTF=Dz/2, dann ist ein gutes pitch = (Dz/2)/Dz = 0.5 – opponierende Strahlen (β =[180°…360°]) haben (grob) die gleiche Information: TF kann verdoppelt werden (und folglich ist pitch = 1) – in der Praxis liegt pitch zwischen 1 und 2 – höheres pitch vermindert Dosis, Scanzeit, und Bewegungsartefakte 3-D Rekonstruktion: Cone-Beam CT Direkte 3-D Scanmodalität – verwendet 2-D Detektor – benötigt nur eine Rotation um den Patienten um alle Datenzu akquirieren (innerhalb der Limits des cone Winkels) – Rekonstruktionsformel kann in ähnlicher Art und Weise abgeleitet werden wie die Fächerstrahlformel (benutzt ebenfalls verschiedene Wichtungen) – häufig verwendet Gleichung: Feldkamp-Davis-Kress – Rückprojektion läuft ab entlang der cone-beam Strahlen • Vorteile: – potentiell sehr schnell (da nur eine Rotation) – oft in der 3-D Angiographie angewandt • Nachteile: – Abtastproblematik an den Extremitäten – Abtastrate der Rekonstruktion variiert entlang z Kriterien der Bildqualität • Akquisition – Brennfleck, Größe der Detektorelemente, table feed, Interpolationsmethode, Probenabstand u.a. • Rekonstruktion – Rekonstruktionskernel (Filter), Interpolationsprozeß, Voxelgröße • Rauschen – Quantenrauschen wegen der statistischen Natur von Röntgenstrahlen – Zunahme der Leistung reduziert Rauschen aber erhöht Dosis – Bildrauschen abhängig vom Rekonstruktionsalgorithmus, Interpolationsfilter, und Interpolationsmethode – Größeres Dz reduziert Rauschen, aber verschlechtert axiale Auflösung • Kontrast – abhängig von Röntgenspektrum, Strahlaufhärtung, Streuung Bildartefakte • Normales Phantom (simuliertes Wasser mit Eisenstange) • Schlierenartefakte Hinzufügen von Rauschen im Sinogramm führt zu Schlierenbildung • Aliasingartifakte entstehen wenn die Anzahl der Proben sehr klein ist (Ringbildung an scharfen Ecken) • Aliasingartefakte Anzahl der Ansichten ist zu gering Bildartefakte • Normales Phantom (Plexiglasplatte mit 3 Amalgamfüllungen) • Strahlaufhärtungsartefakte – Nichtlinearitäten in einer polychromatischen Welleschwächung (Hohe Durchlässigkeit absorbiert viele niederenergetische Photonen, während die hochenergetischen Photonen nicht absorbiert werden) – Schwächung wird unterschätzt • Streuung (Schwächung wird unterschätzt) – Je größer die Schwächung, um so größer der Anteil der Streuung Bildartefakte • Partialvolumenartefakte – entstehen fallls nur ein Teil des Strahls eine undurchlässige Struktur durchdringt und abgeschwächt wird – Besonders ernst an scharfen Ecken – Berechnete Schwächung: -ln(avg(I/I0)) – Wirkliche Schwächung: -avg(ln(I/I0)) – führt zu einer unterschätzten Schwächung weil -ln (avg ( I / I 0 ) < −avg (ln( I / I 0 )) Einzelner Pixel von individuellen Strahlen durchlaufen I0 I Detektorkasten Bildartefakte • Bewegungsartefakte Bewegung während der Akquisition • Stufenartefakte (stair step) helikaler Akquisitionspfad wird in der Rekonstruktion sichtbar • Kombination mehrerer Artefakte Universitätsklinikum Düsseldorf Ultraschall-Computertomographie mit Matlab Ultraschall • Eine Bildsequenz kann in einer 3-D Datenreihe (Array) von Bildern gespeichert werden • Beispiel: mydata = aviread(‘mymovie.avi’); for i=1:nFrames I(:,:,i) = frame2im(mydata(i)); end • Funktionen wie z.B. “mean” und “median” können entlang einer ausgewählten Dimension vollzogen werden Imean = mean(I,3); Mittelwert entlang der 3. Dimension Reflexionsultraschall • Für die meisten med. Ultraschallbilder werden Reflexionssignale verwendet. • Echo weist auf die Präsenz einer Gewebsschicht hin • Flugzeit indiziert die Tiefe – Im A-Mode: einzelner Transducer scannt in einer Linie entlang des Körpers – Im B-Mode: lineares Array von Transducern scannt eine Ebene (Schicht) Transmissionsultraschall • Einige Systeme verwenden die Transmission: – Das empfangene Signal gibt das Integral vom Brechungsindex n(x,y) entlang des Strahls an ∫ [1 − n( x, y)] ds = L − V T ray w d • Typische Applikation: sonographische Bildgebung der Brust Konventionelle Röntgen-CT • Urspünglich eine einfache Methode bei der eine Röntgenröhre und ein Film während der Bestrahlung bewegt wurden. • Das resultierende Bild ist auf der Ebene der spezifischen Tiefe innerhalb des Körpers fokussiert • Unscharfe Details befinden sich auf anderen Tiefen Fokusebene Bewegte Quelle Bewegter Film Moderner CT-Scanner • Patient wird durch den Scanner transportiert • Bilder entstehen für eine Schicht pro Zeiteinheit Bewegte Röntgenröhre Patient Detektorring Axiale Tomographie g(ρ,θ) ρ g(ρ,θ=90°) Lineares Detektorarray g(ρ,θ=135°) θ g(ρ,θ=0°) Quelle und Detektoren rotieren um das Objekt Parallele Röntgenstrahlen Radon-Transformation Johann Radon, österreichischer Mathematiker (1917): “Über die Bestimmung von Funktionen durch ihre Integralwerte längs gewisser Mannigfaltigkeiten” • Bei der Radon-Transformation integriert man über alle Linien mit variierendem Winkel und Verschiebung ∞ ∞ g ( ρ , θ ) = • Projektionsvorgang: ∫−∞ ∫−∞ f ( x, y ) δ [x cosθ + y sin θ − ρ ] dx dy f(x,y) g(ρ,θ) Radon-Transformation Radon-Transformation in Matlab • [R,xp] = radon (I,theta) – I: Bild – Theta: verwendeter Winkelset – R: Radon-Transformierte (Die Reihen sind die Radon-Transformierten für jeden Winkel) – xp: korrespondierende Koordinaten entlang der ρ-Achse • Beispiel: Viereck – Plot R bei 0° und 45° – R als Bild I = zeros(400,400); I(150:250, 150:250) = 1.0; theta = 0:1:180; [R,xp] = radon(I,theta); imagesc(theta, xp, R); Radon-Transformation in Matlab Originalbild 90 starker Peak bei θ = 1°, xp = -80 -100 80 70 -50 60 50 0 40 30 50 20 100 10 0 20 40 60 80 100 θ (degrees) Flankenerkennung (Edge detection) 120 140 160 Inverse Radon-Transformation • Gegeben: • Gesucht: • Lösung: g(ρ,θ) f(x,y) Rückprojektion f ( x, y ) = ∫ g [x cos θ + y sin θ , θ ] dθ π 0 Ergebnis der Rekonstruktion • Die einfache Rückprojektion resultiert in einer signifikanten Anzahl von Unschärfen Originalbilder Rekonstruierte Bilder mit 0,5° Winkelinkrement Gefilterte back projection • Die 1-D FT von g(ρ,θ) bezüglich r ist ∞ G (ω , θ ) = ∫ g ( ρ , θ ) e − j 2πωρ dρ −∞ • Die Projektion von f(x,y) ist gegeben durch g ( ρ ,θ ) = ∫ ∞ ∫ ∞ −∞ −∞ • f ( x, y ) δ [x cos θ + y sin θ − ρ ] dx dy Substitution für g(ρ,θ) ergibt G (ω ,θ ) = ∫ ∞ ∞ ∫ ∫ ∞ −∞ −∞ −∞ =∫ ∞ ∫ ∞ −∞ −∞ f ( x, y ) δ ( x cos θ + y sin θ − ρ ) e − j2πωρ dx dy dρ ∞ f ( x, y ) ∫ δ ( x cosθ + y sin θ − ρ ) e − j 2πωρ dρ dx dy −∞ ∞ ∞ = ∫ ∫ f ( x, y ) e − j 2πω ( ux + vy ) dx dy −∞ −∞ u =ω cosθ , v =ω sin θ Fourier Slice Theorem • Gegeben • Somit ist 1-D FT der Projektion g ist gleich einer radialen Schicht durch die 2-D FT von f(x,y) ∞ ∞ G (ω , θ ) = ∫ ∫ f ( x, y ) e − j 2πω ( ux + vy ) dx dy −∞ −∞ u =ω cosθ , v =ω sin θ G ( ρ , θ ) = [F (u, v )]u =ω cosθ , v =ω sin θ = F (ω cos θ , ω sin θ ) Fourier Slice Theorem g(ρ,θ) Die FT der Funktion ergibt die Werte von F(u,v) entlang der gestrichelten Linie in der (u,v) Ebene y ρ F(u,v) v r f(x,y) w θ x u • 1-D FT der Projektionen ergibt F(ω,θ) • Anordnung von F(ω,θ) auf einem rechteckigen Gitter ergibt F(u,v) • Inverse Fouriertransformierte ergibt f(x,y) Rückprojektion - Rekonstruktion • Die inverse FT von F(u,v) ist f ( x, y ) = ∫ 2π ∫ 0 • 0 2π ∫ ∞ −∞ 0 F (ω cos θ , ω sin θ ) e j 2πω ( x cosθ + y sinθ ) ω dω dθ Unter Verwendung des Fourier Slice Theorems ergibt sich f ( x, y ) = ∫ 2π ∫ ∞ −∞ 0 • F (u, v ) e j 2π ( ux + vy ) du dv Setze u = ω cosθ, v = ω sinθ f ( x, y ) = ∫ • ∞ G (ω, θ ) e j 2πω ( x cosθ + y sin θ ) ω dω dθ Umschreiben als f ( x, y ) = ∫ π 0 ∫ ∞ −∞ ω G (ω, θ ) e j 2πω ( x cosθ + y sin θ ) dω dθ Rückprojektion - Rekonstruktion • Folglich, erhält man die FT der Projektionen, filtert (d.h. multipliziert) sie mit einem Rampenfilter |ω|, errechnet die inverse FT und integriert über alle Winkel θ f ( x, y ) = ∫ π 0 ∞ ω G (ω, θ ) e j 2πω ( x cosθ + y sin θ ) dω dθ ∫−∞ Auch weichere Filter möglich, z.B. Hamming Gefilterte Rekonstruktion Inverse Radon-Transformation in Matlab • I = iradon(R, theta, interp, filter, freq_scaling, N) • wobei – – – – – – R: vorwärtsgerichtete Radon-Transformierte Theta: Winkelset Interp: ‘Ram-Lak’, ‘Hamming’, ‘Shepp-Logan’ Filter Filter: ‘linear’ freq_scaling:1.0 N: gewünschte Größe des Ausgabebildes Inverse Radon-Transformation in Matlab • Übermittlung der Radon-Transformierten eines “Phantombildes” original N = 400; I = phantom(N); rangeTheta = 0:1:180; [R,xp]=radon(I,rangeTheta); figure,imagesc(rangeTheta, xp, R), title('radon'); colormap(gray); xlabel('theta (degrees)'); ylabel('xp'); Inverse Radon-Transformation in Matlab • Inverse Radon-Transformierte I2 = iradon(R,rangeTheta,'linear','Hamming',1.0,N); figure,imshow(I2,[]), title('reconstructed'); % Compute RMS error res = I - I2; figure, imshow(res,[]), title('residual'); fprintf('RMS error: %f\n', sqrt( mean2 (res .^ 2)));