Understanding the maths of Computed Tomography (CT) scans
source link: https://www.tuicool.com/articles/hit/vIJbeqI
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Noseman is having a headache and as an old-school hypochondriac he goes to see his doctor. His doctor is quite worried and makes an appointment with a radiologist for Noseman to get a CT scan.
Modern CT scanner by SiemensBecause Noseman always wants to know how things work he asks the radiologist about the inner workings of a CT scanner.
The basic idea is that X-rays are fired from one side of the scanner to the other. Because different sorts of tissue (like bones, brain cells, cartilage etc.) block different amounts of the X-rays the intensity measured on the other side varies accordingly.
The problem is of course that a single picture cannot give the full details of what is inside the body because it is a combination of different sorts of tissue in the way of the respective X-rays. The solution is to rotate the scanner and combine the different slices.
How, you ask? Good old linear algebra to the rescue!
We start with the initial position and fire X-rays with an intensity of 30 (just a number for illustrative purposes) through the body:
Initial positionAs can be seen in the picture the upper ray goes through areas 1, 2 and 3 and let’s say that the intensity value of 12 is measured on the other side of the scanner:
or
The rest of the formula is found accordingly:
We then rotate the scanner for the first time…
Position after first rotation…which gives the following formula:
And a second rotation…
Position after second rotation…yields the following formula:
Now we are combining all three systems of equations:
or written out in full:
Here is the data of the matrixfor you to download:ct-scan.txt).
We now have 9 equations with 9 unknown variables… which should easily be solvable by R, which can also depict the solution as a gray-scaled image… the actual CT-scan!
A <- read.csv("data/ct-scan.txt") b <- c(18, 21, 18, 18, 21, 9, 18, 14, 16) v <- solve(A, b) matrix(v, ncol = 3, byrow = TRUE) ## [,1] [,2] [,3] ## [1,] 9 9 0 ## [2,] 9 5 7 ## [3,] 9 9 0 image(matrix(v, ncol = 3), col = gray(4:0 / 4))CT of Noseman
The radiologist looks at the picture… and has good news for Noseman: everything is how it should be! Noseman is relieved and his headache is much better now…
Real CT scans make use of the same basic principles (of course with a lot of additional engineering and maths magic :wink: )
Here are real images of CT scans of a human brain…
Source: Wikimedia… which can be combined into a 3D-animation:
Source: WikimediaIsn’t it fascinating how a little bit of maths can save lives!
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK