Introduction Over the course of the second semester we were given the task of programming a simple viewer for computed tomography images. On the following pages I'd like to introduce the program to you. First, let's cover the basics: Computed Tomography Simply put, computed tomography is an imaging technique in which a body is x-rayed around a single axis of rotation. In the simplest of cases, a scanner is being rotated around the subject. The subject's internal structures absorb the radiation according to their x-ray density. The data gathered in the process is used to calculate a so called slice, practically a transversal slice of the scanned body. Repeat over the the length of the body and combine the slices to get a three dimensional image of the body - a CT-Image. The technique is very popular in modern medicine, as it can quickly be applied and diagnosis relevant data is available practically instantly. It's wide use is being discussed, as the x-ray exposure is above that of a normal X-Ray, but it's diagnostical value in critical situations still outweighs this argument. The Project Over the course of our second term, we were assigned to program a CT-Viewer that could display downsized CT-Images produced by the process explained above. We were to work in teams of two and the programming language to use was Java. The relevant requirement specifications were as follows: - Can display saggital, transversal and frontal slices of CT-Images
- User can navigate through the image
- Can read and write different file formats of CT-Images
- Calculates a histogram for the given slice
- Mangages the metadata of the CT-Images
Aditionally, my esteemed colleague Clas Rurik and I implemented the following features: - A custom window framework for our internal frames. The aim was to optimize space efficiency and visual appeal.
- Managing multiple open CT-Images and multiple views of one or more images.
- Generation and Display of MIP-Images from the CT-Images. More on that later.
The Program
The program was in development for 5 months, parallel to the normal curricular activities and we named it Omega CT on a whim. I hope to upload a compiled and obfuscated version soon, but I have to clarify the situation regarding the libraries of java3d which we used to implement the 3D navigational view. If possible, the source will follow as well. Right now, I can at least offer you some pictures. Overview (click picture to enlarge)
This is what Omega CT looks like with an opened CTimage. Note the three CT panels displaying a transversal, saggital and frontal slice of the tomographed head. Right-clicking and dragging the mouse on a CT-Panel allows you to scroll through the slices from front to back, while left-clicking and dragging will display a red line. Once you release the mouse button the slice will orient itself along the line, allowing for arbitrary slice orientation. The presets can be dragged onto a CT-Panel and will set the displayed slice back to a default orientation. The overview simplifies the navigation through the image, the selected CT-Panel's slice is displayed by the blue layer. The overview can be rotated horizontally and vertically by left clicking and dragging inside the frame. The histogram displays the distribution of brightness over the current slice. Techniques: Maximum Intensity Projection
Coming Soon
|