{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "\n", "# Tomography\n", "\n", "## Examples – Biophysics\n", " \n", "Last edited: January 20th 2019\n", "\n", "___\n", "This notebook is based on an assignment given in the course *TMA4320 Introduction to Scientific Computation* at NTNU in April 2016 [[1]](#rsc). The assignment was prepared by Pål Erik Goa, Jon Andreas Støvneng, Peder Galteland and Grunde Wesenberg. The code is based on the answers by Gjert Magne Knutsen, Daniel Halvorsen and Jonas Tjemsland.\n", "___" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Introduction\n", "\n", "Medical imaging is central in modern diagnostics. [Fig. 1](#img1) below shows a cross section of a head based on so-called *computed tomography* (CT). In this notebook we get a glimpse off how CT uses X-rays to reconstruct quite sharp images. We will use grayscaled images of size $N\\times N$, which is represented by an $N\\times N$ matrix. The value of each matrix element will represent the \"grayness\" of the pixel ($1$ for white and $0$ for black). In the end we will use the tools developed in the notebook *[Image Filtering Using Fourier Transform](https://nbviewer.jupyter.org/urls/www.numfys.net/media/notebooks/image_filtering_using_fourier_transform.ipynb)* to get a sharper image.\n", "\n", "
\n", "\n", "**Figure 1:** *Axial CT scan of the brain [[2]](#rsc).*\n", "\n", "To fully understand and appreciate the results we start with the underlying theory. The impatient reader is advised to skip ahead to the *Simple example* section." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import progressbar\n", "import numpy as np\n", "import scipy.fftpack as fft\n", "from skimage import io\n", "import math\n", "import warnings\n", "\n", "warnings.filterwarnings(\"ignore\")\n", "%matplotlib inline\n", "\n", "# Set some figure parameters\n", "newparams = {'axes.labelsize': 9, 'axes.linewidth': 1, 'savefig.dpi': 200,\n", " 'lines.linewidth': 1, 'figure.figsize': (8, 3),\n", " 'ytick.labelsize': 7, 'xtick.labelsize': 7,\n", " 'ytick.major.pad': 5, 'xtick.major.pad': 5,\n", " 'legend.fontsize': 9, 'legend.frameon': True, \n", " 'legend.handlelength': 1.5, 'axes.titlesize': 9, 'figure.dpi': 200,\n", " 'mathtext.fontset': 'stix', 'font.family': 'STIXGeneral'}\n", "plt.rcParams.update(newparams)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Theory\n", "\n", "### X-ray\n", "\n", "X-rays are electromagnetic radiation in the wavelength range $0.01$ to $10\\:\\mathrm{nm}$, corresponding to energies between $100\\:\\mathrm{eV}$ and $100\\:\\mathrm{keV}$. The photons may for example be generated in vacuum tubes. In a vacuum tube, electrons are emitted from a heated cathode and accelerated toward the anode by an electric field created by an acceleration high voltage. The radiation can be created from different physical mechanisms. E.g., an accelerated electron may knock out an electron from one of the anode atom's inner orbitals. An electron in a state with higher energy is then allowed to occupy this empty state and on the way there emit a photon. This photon has a characteristic energy equal to the energy difference between the two electron orbitals, or states, in the anode atom. Such a transition from the second lowest to the lowest energy state is called $K_\\alpha$ and its energy is approximately described by *Moseleys law*,\n", "\n", "$$\n", "E(K_\\alpha)=10.2 \\:\\mathrm{eV}\\cdot (Z-1)^2,\n", "$$\n", "\n", "where $Z$ is the atomic number of the anode material. Wolfram ($W; Z=74$) yields an energy $E(K_\\alpha) = 54.4\\:\\mathrm{keV}$, a little below the experimental value of $59.3\\:\\mathrm{keV}$.\n", "\n", "In addition to this characteristic X-ray radiation, a continous spectrum is observed, with a sharply defined minimum wavelength. This is due to the *breaking radiaton* or *bremsstrahlung*, and occurs essentially in all situations where charged particles are accelerated in electric fields created by other particles. In an X-ray tube the accelerated electrons are deaccelerated when they collide with atoms in the anode material. A given electron can maximally impose all of its kinetic energy $E_k$ to a single photon. This implies that the excited photon has a wavelength larger than or equal to\n", "\n", "$$\n", "\\lambda_{min}=\\frac{hc}{E_k},\n", "$$\n", "\n", "where $E_k = \\mathrm{eV}$ is detemined by the voltage $V$ between the cathode and anode. Here $h$ is Plack's constant, $\\mathrm{e}$ is the elementary charge and $c$ is the speed of light.\n", "\n", "In reality, CT uses photons from both characteristic radiation and bremsstrahlung. For simplicity we will assume that a photon has a specific energy, say 60 keV, which is approximately the same as for $K_\\alpha$ radiation from wolfram." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Attenuation\n", "\n", "Let an object (e.g. a human head) be radiated by X-rays (or any other type of electromagnetic radiation) with the given intensity $I$. A proportion of the X-ray photons will pass unaffected through the object. The rest of the photons will either be absorbed or scattered by atoms. The probability for absorption or scattering will depend strongly on both the photon energy and the material characteristics of the object. For a given photon energy the relative intensity reduction $\\mathrm{d}I/I$ per unit length $\\mathrm{d}t$ given by\n", "\n", "$$\n", "\\frac{\\mathrm{d}I/I}{\\mathrm{d}t}=-\\mu,\n", "$$\n", "\n", "where $\\mu$ is the *linear attenuation coefficient*. $\\mu$ is high for hard and dense tissue, low for soft tissue (typically with a high consentration of water) and approximately zero for air. For photons with energy $60\\:\\mathrm{keV}$ we have $\\mu\\approx 600\\: \\mathrm{m}^{-1}$ for bones and $\\mu\\approx 20\\:\\mathrm{m}^{-1}$ for soft tissue.\n", "\n", "The intensity $I$ that passes through the detector is obtained by intergrating the equation above,\n", "\n", "$$\n", "I=I_0\\exp\\left\\{-\\int_{t_1}^{t_2}\\mu(t)\\;\\mathrm{d}t\\right\\}.\n", "$$\n", "\n", "This integral is called the *projection*. It will depend on where the X-ray hits the object, denoted $s$, and how the object is oriented relative to the direction of the beam, denoted $\\theta$. This is given as\n", "\n", "$$\n", "p(s,\\theta)=\\ln(I_0/I)=\\int_{t_1}^{t_2}\\mu(t)\\mathrm{d}t.\n", "$$\n", "\n", "Note that both $\\mu$, $t_1$ and $t_2$ depend on $s$ and $\\theta$, as shown in [Fig. 2](#fig2) below." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Setup\n", "\n", "The X-rays are sent out in thin (essentially one dimensional) beams toward the object to be mapped. Using multiple beams placed side by side we can essentially radiate a horisontal cross section of the object. We are going to analyse how information about the object can be extracted from such experiments. In other words, how can we reconstruct the cross section?\n", "\n", "\n", "\n", "\n", "**Figure 2:** *Source and detector is rotated an angle $\\theta$ relative to the object. The coordinate $s$ specifies where the X-ray beam (dashed lines) hits the object. The coordinate $t$ specifies the direction of the beam. For $\\theta=0$, $t$ coinsides with the $y$ axis. The beam enters the object at $t=t_1$ and leaves the object at $t=t_2$. The function $f(x,y)$ represents the distribution of different kinds of tissues within the object. In general, we can think of $f(x,y)$ as a grayscale color in the position $(x,y)$.*\n", "\n", "From [Fig. 2](#fig2) we obtain the relation\n", "\n", "$$\n", "s=x\\cos\\theta + y\\sin \\theta,\n", "$$\n", "\n", "such that the projection line for specific values of $s$ and $\\theta$ can be written as \n", "\n", "$$\n", "y(x;s,\\theta)=-x\\cot\\theta +\\frac{s}{\\sin\\theta}.\n", "$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Performing the measurement\n", "\n", "By measuring the projections for $s$-values which cover the whole object and for $\\theta$-values which cover all possible orientations of the object ($\\theta \\geq 180^\\circ$), we obtain a matrix $\\{p(s,\\theta)\\}$ – a so-called *sinogram*. The sinogram contains in principle all the information necessary to reconstruct the tissue distribution of the object $f(x,y)$. But to extract this information we have to use a form of tomographic reconstrution." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Obtaining the back projection\n", "\n", "From the sinogram we can construct a *direct back projection* $g(x,y)$. A given projection $p(s,\\theta)$ gives us the value of the integral $f(x,y)$ on the straight line which hits the object in position $s$ for a given orientation $\\theta$. The best we can do (without addtional information about $f(x,y)$) is to assume that the value of the integral is evenly smudged between $t_1$ and $t_2$, given as\n", "\n", "$$\n", "g(x,y;s,\\theta)=\\frac{p(s,\\theta)}{t_2-t_1}.\n", "$$\n", "\n", "This can of course be done for all $\\theta$ and $s$ values. If we let $x$ and $y$ be fixed and add all the values of $g(x,y;s,\\theta)$ we obtain $g(x,y)$. If this is done for all $(x,y)$ we obtain the direct back projected image.\n", "\n", "As you might have guessed, the back projected image will be a smudged out version of the original image. Also, now might be a good idea to pause and take a look at the images produced below before continuing reading, to visualise what is said so far." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Simple example\n", "\n", "We start with a simple example on a $3\\times 3$ grid described by a $3\\times 3$ matrix. Consider an object consisting of a square bone ( $f(x,y)=1$; white) surrounded by soft tissue ( $f(x,y)=0$; black). We start by generating the sinogram using angles $\\theta=\\{0,\\pi/2\\}$. From the *Obtaining the back projection* section above, see if you can find the answer (or at least visualise the answer) to these questions:\n", "\n", "* What is the three projections with $\\theta = 0$? That is, $p(m,0)$ with $m=1$ for 1. column etc.\n", "* What is the three projections with $\\theta = \\pi/2$? That is, $p(m,\\pi/2)$ with $m=1$ for first row etc.\n", "* How is the image you get by direct back projection from these six projections?\n", "\n", "We now perform the calculations and plot the result." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "