Definition av den omvända Radontransformationen
Funktionen iradon
inverterar Radontransformationen och kan därför användas för att rekonstruera bilder.
Som beskrivs i Radontransform kan funktionen radon
, givet en bild I
och en uppsättning vinklar theta
, användas för att beräkna Radontransformen.
R = radon(I,theta);
Funktionen iradon
kan sedan anropas för att rekonstruera bilden I
från projektionsdata.
IR = iradon(R,theta);
I exemplet ovan beräknas projektioner från den ursprungliga bilden I
.
Bemärk dock att det inom de flesta tillämpningsområden inte finns någon originalbild från vilken projektioner bildas. Exempelvis används den omvända Radontransformationen ofta i tomografitillämpningar. Vid röntgenabsorptionstomografi bildas projektioner genom att mäta dämpningen av strålning som passerar genom ett fysiskt prov i olika vinklar. Den ursprungliga bilden kan ses som ett tvärsnitt genom provet, där intensitetsvärdena representerar provets densitet. Projektioner samlas in med hjälp av specialutrustning och sedan rekonstrueras en intern bild av provet med hjälp av iradon
. Detta möjliggör icke-invasiv avbildning av insidan av en levande kropp eller ett annat ogenomskinligt föremål.
iradon
rekonstruerar en bild från projektioner med parallella strålar. I parallellstrålgeometri bildas varje projektion genom att kombinera en uppsättning linjeintegraler genom en bild i en specifik vinkel.
Följande figur illustrerar hur parallellstrålgeometri tillämpas i röntgenabsorptionstomografi. Observera att det finns lika många n emittenter och n sensorer. Varje sensor mäter den strålning som sänds ut från motsvarande emitter, och dämpningen i strålningen ger ett mått på objektets integrerade densitet, eller massa. Detta motsvarar det linjeintegral som beräknas i Radontransformen.
Den geometri med parallellstråle som används i figuren är densamma som den geometri som beskrevs i Radontransformen. f(x,y) betecknar bildens ljusstyrka och Rθ(x′) är projektionen vid vinkeln theta.
Parallelstråleprojektioner genom ett objekt
En annan geometri som ofta används är fläktstrålegeometri, där det finns en källa och n sensorer. För mer information, se projektion med fläktstråle. Om du vill konvertera data för parallellstråleprojektion till data för fläktstråleprojektion använder du funktionen para2fan
.
Förbättra resultaten
iradon
använder den filtrerade bakåtprojektionsalgoritmen för att beräkna den omvända Radontransformen. Denna algoritm bildar en approximation av bilden I
baserat på projektionerna i kolumnerna i R
. Ett mer exakt resultat kan erhållas genom att använda fler projektioner i rekonstruktionen. När antalet projektioner (längden på theta
) ökar, närmar sig den rekonstruerade bilden IR
mer exakt den ursprungliga bilden I
. Vektorn theta
måste innehålla monotont ökande vinkelvärden med en konstant inkrementell vinkel Dtheta
. När skalaren Dtheta
är känd kan den överföras till iradon
i stället för arrayen med thetavärden. Här är ett exempel:
IR = iradon(R,Dtheta);
Algoritmen för filtrerad bakåtprojektion filtrerar projektionerna i R
och rekonstruerar sedan bilden med hjälp av de filtrerade projektionerna. I vissa fall kan det finnas brus i projektionerna. För att ta bort högfrekvent buller applicerar du ett fönster på filtret för att dämpa bullret. Många sådana filter med fönster finns tillgängliga i iradon
. I exempelanropet till iradon
nedan tillämpas ett Hamming-fönster på filtret. Se referenssidan för iradon
för mer information. För att få ofiltrerade data för bakåtprojektion anger du 'none'
som filterparameter.
IR = iradon(R,theta,'Hamming');
iradon
gör det också möjligt att ange en normaliserad frekvens, D
, över vilken filtret har nollrespons. D
måste vara en skalär i intervallet . Med det här alternativet skalas frekvensaxeln om så att hela filtret komprimeras så att det ryms i frekvensområdet . Detta kan vara användbart i fall där projektionerna innehåller lite högfrekvensinformation men där det finns högfrekvent buller. I detta fall kan bruset undertryckas helt utan att rekonstruktionen äventyras. Följande anrop till
iradon
ställer in ett normaliserat frekvensvärde på 0,85.
IR = iradon(R,theta,0.85);