* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Blood vessel segmentation for neck and head computed tomography angiography Anders Hedblom
Hold-And-Modify wikipedia , lookup
Indexed color wikipedia , lookup
Medical imaging wikipedia , lookup
Edge detection wikipedia , lookup
Stereoscopy wikipedia , lookup
Stereo display wikipedia , lookup
Image editing wikipedia , lookup
Spatial anti-aliasing wikipedia , lookup
LiU-ITN-TEK-A-13/056-SE Blood vessel segmentation for neck and head computed tomography angiography Anders Hedblom 2013-10-11 Department of Science and Technology Linköping University SE- 6 0 1 7 4 No r r köping , Sw ed en Institutionen för teknik och naturvetenskap Linköpings universitet 6 0 1 7 4 No r r köping LiU-ITN-TEK-A-13/056-SE Blood vessel segmentation for neck and head computed tomography angiography Examensarbete utfört i Medieteknik vid Tekniska högskolan vid Linköpings universitet Anders Hedblom Handledare Gunnar Läthén Examinator Jonas Unger Norrköping 2013-10-11 Upphovsrätt Detta dokument hålls tillgängligt på Internet – eller dess framtida ersättare – under en längre tid från publiceringsdatum under förutsättning att inga extraordinära omständigheter uppstår. Tillgång till dokumentet innebär tillstånd för var och en att läsa, ladda ner, skriva ut enstaka kopior för enskilt bruk och att använda det oförändrat för ickekommersiell forskning och för undervisning. Överföring av upphovsrätten vid en senare tidpunkt kan inte upphäva detta tillstånd. All annan användning av dokumentet kräver upphovsmannens medgivande. För att garantera äktheten, säkerheten och tillgängligheten finns det lösningar av teknisk och administrativ art. Upphovsmannens ideella rätt innefattar rätt att bli nämnd som upphovsman i den omfattning som god sed kräver vid användning av dokumentet på ovan beskrivna sätt samt skydd mot att dokumentet ändras eller presenteras i sådan form eller i sådant sammanhang som är kränkande för upphovsmannens litterära eller konstnärliga anseende eller egenart. För ytterligare information om Linköping University Electronic Press se förlagets hemsida http://www.ep.liu.se/ Copyright The publishers will keep this document online on the Internet - or its possible replacement - for a considerable time from the date of publication barring exceptional circumstances. The online availability of the document implies a permanent permission for anyone to read, to download, to print out single copies for your own use and to use it unchanged for any non-commercial research and educational purpose. Subsequent transfers of copyright cannot revoke this permission. All other uses of the document are conditional on the consent of the copyright owner. The publisher has taken technical and administrative measures to assure authenticity, security and accessibility. According to intellectual property law the author has the right to be mentioned when his/her work is accessed as described above and to be protected against infringement. For additional information about the Linköping University Electronic Press and its procedures for publication and for assurance of document integrity, please refer to its WWW home page: http://www.ep.liu.se/ © Anders Hedblom ITN, Norrköping October 31, 2013 Blood vessel segmentation for neck and head computed tomography angiography A MASTER THESIS IN COMPUTER TECHNOLOGY Author: Anders Hedblom Examiner: Jonas Unger Supervisors: Gunnar Läthén Chunliang Wang Aron Ernvik Erik Edespong [email protected] [email protected] [email protected] Abstract Medical imaging has become an invaluable tool over the last decades. The development from two dimensional X-ray images to the possibility of creating three dimensional representations of the body has helped significantly when it comes to detecting diseases. Today, the most common cause of death is vascular diseases that can lead to a heart attack or a stroke. The problem is that both happen very instantaneously and can be difficult to predict. Angiography allows for examination of the blood vessels in the body without having to undergo surgery. The body is scanned, with for instance a computed tomography scanner, and can then be viewed in 3D. All the tissues in the body will be displayed with different intensities, depending on their densities. Blood vessels do not stand out well from their surrounding tissues and have to be injected with a contrast enhancing fluid before the scan. However, this leads to some complications, mainly an intensity overlap between blood vessels and bone. This means that, to get a clear view of the blood vessels, an image segmentation has to be done. Many methods for doing so have been presented over the years, but none capable of doing segmentation of all the vessels in the head and neck simultaneously. This thesis presents tests and discussions evaluating different methods for doing automatic or semi automatic blood vessel segmentation on single CT data volumes of the head and neck. The two approaches being closest to accomplish this are a bone subtracting registration process, and a more advanced region growing combined with morphology. The results hint that the former approach does not give segmentations that are good enough to fit this task with todays hardware. The latter method is more likely to be useful as its results are good but requires on the other hand far more user interaction during the segmentation process. There will always be a tradeoff between automation, quality and speed. Most of the test were done in MeVisLab – an open source software for medical image processing. Acknowledgments It has been a long journey, reaching the end of my education. Long and challenging, but never did I doubt that I was going in the right direction – I have learned a lot and created friendships that will last for life. I want to thank Sectra for giving me the opportunity to work with them. Many thanks to all my supervisors who have helped me a lot with ideas and feedback. Especially I want to thank Chunliang Wang who gave me much of his time and knowledge about different segmentation methods, also checking in from time to time to see how I was doing. Finally, I want to thank all my friends and family for supporting me and believing in me when I didn’t. It means a lot. Glossary Artery/Arteries Blood vessels, transporting oxygen rich blood from the heart to the rest of the body. The only time when arteries are low on oxygen is when going from the heart to the lungs (Pulmonary arteries). Bit depth The number of bits used to store a pixel/data. Higher bit depth gives greater accuracy and higher dynamic intensity range. BSCTA Bone Subtraction Computed Tomography Angiography is a hardware based way of segmenting and displaying blood vessels. It requires two CT data sets – one with contrast agent injected and one without. Thus, it exposes the body to more radiation than CTA. Capillary/Capillaries Small vessels that connect arteries and veins. Responsible for the interchange of chemicals between blood and tissue. CT Computed Tomography is a technique to reconstruct an image presentation of the body by using several X-ray projections. CTA Computed Tomography Angiography – visualization of the blood vessels where the data is captured from one or several CT scans, having a contrast agent injected into the vessels. Dual-energy Scan By using two different x-ray wavelengths during a CT scan, it is possible to capture two tissue responses instead of one. Different tissues respond differently to the wavelength change, which makes it possible to distinguish vessels from bone easier. Hemorrhage A rupture of a blood vessel, causing blood to leak out in surrounding tissue. HU Hounsfield Units. Used to measure x-ray attenuation in tissue. ITK The Insight Segmentation and Registration Toolkit (ITK) is an open-source, cross-platform library for image analysis and processing. Lumen In angiography, lumen is the hollow inside of a blood vessel. Some vascular diseases cause the lumen to become thinner. Metric A definition of distance between two points in a metric space or between two data sets. MIP Maximum Intensity Projection (MIP) is a rule for how the voxels will be displayed during volume rendering. As the name hints, it takes the voxel with the maximum value along each ray and assigns this to its belonging screen pixel. MPR Multiplanar Reconstruction is when a 2D image is created by first stacking all axial slices from a CT-scan, to build a data volume, and then cut a new slice in any given plane. MRI Magnetic Resonance Imaging. An imaging modality which uses nuclear magnetic resonance to image the body in 2D or 3D. Pixel Picture element Plaque Substance that can build up on the inner walls of blood vessels. It consists mainly of fat, cholesterol, calcium.Plaque both narrows the lumen and makes the vessels more rigid, which both make the vessel less healthy. ROI Region of Interest Vein/Veins Blood vessels, transporting carbon dioxide rich blood, back to the heart. The only time veins are rich on oxygen is when going from the lungs to the heart (Pulmonary veins). Voxel Volume element X-ray Electromagnetic radiation where the wavelength is between 0.01 and 0.1 nanometers. Contents 1 Introduction 1.1 Problem description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Main facility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Background 2.1 Preliminaries . . . . . . 2.2 Anatomy overview . . . 2.2.1 Neck . . . . . . 2.2.2 Head . . . . . . 2.2.3 Bone and marrow 2.2.4 Blood vessels . . 2.3 Common diseases . . . . 2.3.1 Stenosis . . . . . 2.3.2 Aneurysm . . . . 2.3.3 Stroke . . . . . . 2.4 Medical imaging . . . . 2.4.1 CT . . . . . . . 2.4.2 MRI . . . . . . . 2.5 Image segmentation . . . 3 1 2 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4 7 8 9 9 9 10 10 10 10 10 11 11 12 Previous work 3.1 Thresholding . . . . . . . . . . . . . . . . 3.2 Clustering . . . . . . . . . . . . . . . . . . 3.2.1 K-means . . . . . . . . . . . . . . 3.3 Morphological operations . . . . . . . . . . 3.4 Edge enhancements . . . . . . . . . . . . . 3.4.1 Gradient calculations . . . . . . . . 3.5 Region growing . . . . . . . . . . . . . . . 3.6 Active contour model . . . . . . . . . . . . 3.7 Shape extraction . . . . . . . . . . . . . . . 3.7.1 Vesselness . . . . . . . . . . . . . 3.8 Registration . . . . . . . . . . . . . . . . . 3.8.1 Transforms . . . . . . . . . . . . . 3.8.2 Interpolators . . . . . . . . . . . . 3.8.3 Metrics . . . . . . . . . . . . . . . 3.8.4 Optimizers . . . . . . . . . . . . . 3.8.5 Doing registration in multiple steps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 13 14 14 15 17 17 18 19 19 20 20 21 22 23 23 24 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Method and implementation 4.1 Software . . . . . . . . . . . . 4.1.1 MeVisLab . . . . . . . 4.1.2 Matlab . . . . . . . . 4.1.3 Elastix . . . . . . . . 4.2 Vessel finding approaches . . . 4.2.1 Region growing . . . . 4.2.2 Centerline tracking . . 4.2.3 Vesselness calculation 4.3 Bone subtracting approaches . 4.3.1 Gradient based method 4.3.2 Bone registration . . . 4.4 Combining approaches . . . . 4.5 Vessel analysis . . . . . . . . . . . . . . . . . . . . . 25 25 25 25 26 26 26 26 27 27 28 28 29 31 5 Results 5.1 Bone subtraction segmentation . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 Vessel analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3 Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 33 39 42 6 Conclusion 6.1 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 Future work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 43 44 Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 List of Figures 1.1 A CT slice, showing one of the many challenges when doing blood vessel segmentation – the left vertebral vessel is so close to the vertebra that they almost meld together in the image. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1 The different orthographic projections of a CT volume in sagittal (left), coronal (middle) and axial (right) views. The yellow cross marks the same voxel in all views. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A 2D slice extracted from the whole volume of a human skull (left). . . . . . . . Histogram of a CT image. The dots are key points for adjustment of dynamic range and opacity for those HU values. This adjustable histogram is a part of the 3D engine, integrated into MeVisLab. . . . . . . . . . . . . . . . . . . . . Source: http://antranik.org/blood-vessels/. Basic structure of the main vessels in the neck and head area. The vessels with lower opacity are located behind bone tissue. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Source: http://en.wikipedia.org/wiki/File:Blood vessels.svg. The basic anatomy of blood vessels. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 2.3 2.4 2.5 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 Left: Original CT image. Right: Same image, thresholded with a value of 500 HU. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . K-means clustering with three clusters. 1) Cluster centers are initialized as random elements. 2) All elements are assigned to the cluster with the nearest center point. 3) Center points are moved to the center of all elements assigned to respective cluster. 4) Elements are reassigned to a cluster, with the new closest center point. 5) Done! All elements have found their final cluster. . . . . . . . . Source: http://en.wikipedia.org/wiki/File:Dilation.png. Dilation of the dark-blue, with a circular structure element, region results in the union of the dark-blue and light-blue region. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Source: http://en.wikipedia.org/wiki/File:Erosion.png. Erosion of the dark-blue region, with a circular structure element, results in the light-blue region. . . . Source: http://en.wikipedia.org/wiki/File:Opening.png. Opening of the dark-blue region, with a circular structure element, results in light-blue region. . . . . . Source: http://en.wikipedia.org/wiki/File:Closing.png. Closing of the dark-blue region, with a circular structure element, results in the union of the dark-blue and light-blue region. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . The gradient operator applied to the surface in (a). The result is a vector field (b). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . The principles of region growing. A seed point is initialized as the first active element (blue). All active elements check for non-labeled pixels/voxels in its neighborhood (here, in a 8-connected fashion). If a checked pixel agrees with the chosen intensity threshold it will be updated as an active pixel/voxel. All previous active pixels/voxels become labeled as part of the region (green). . . . 5 6 7 8 9 14 14 15 16 16 17 18 19 3.9 The different transformations trying to match the moving image (b) to the fixed image (a). An overlay grid makes it easier to see how the image has deformed with (c) translation, (d) a rigid transformation, (e) an affine transformation and (f) a non-rigid transformation. It is important to notice that the grid does not resemble the movable grid points for a non-rigid transform, as they are defined on the fixed image. The transforms are always calculated from the fixed to the moving image, and then inversely applied on the moving image. Source: http://elastix.isi.uu.nl/download/elastix manual v4.6.pdf . . . . . . . . . . . . 3.10 One dimensional example of interpolations of the discrete data points in a), where b) is nearest-neighbor, c) is linear interpolation and d) is polynomial interpolation with a sixth degree polynomial. . . . . . . . . . . . . . . . . . . 4.1 4.2 4.3 5.1 5.2 5.3 5.4 5.5 5.6 5.7 Blood vessel segmentation where the vessel intensities have been amplified with a vesselness filter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . The result of doing bone subtraction with the registration approach. Even though this was a nice data set, there are still pieces of bone fragments left, and some vessel data removed. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Centerline algorithm in Sectra’s internal tool VRTTest. Two mouse clicks are used to place start and stop for the centerline. This can be done either in 3D or 2D. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Final segmentation of a CT head and neck image, with the combined bone subtraction and vessel finding algorithm. These images are captured from Sectra’s internal tool VRTTest. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . The same segmentation shown with voxels of lower HU included and excluded respectively. This is good if only either the cerebral vessels or carotid vessels are supposed to be examined. . . . . . . . . . . . . . . . . . . . . . . . . . . . Final segmentation of a CT head and neck image, viewed from behind, obliquely downwards and from the side. The 3D image is rendered with MIP in MeVisLab. Segmentation of the carotid and vertebral vessels. The zoomed in figure shows that the patient suffers from stenosis near the carotid bifurcation. . . . . . . . Successful contour calculation of the common and interior carotid vessel. The lower image shows that the vessel is diagnosed with stenosis with a risk factor of 53-65% . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Showing how the contour changes along the carotid bifurcation. There is a small distance (middle image) where the algorithm cannot distinguish two vessels from one, due to the high intensity voxels in between the vessels. . . . . . . . . More results showing that the algorithm is capable of segmenting: large, noisy vessels (top); vessels that are very small and close to another vessel (second); highly calcified vessels (bottom two). . . . . . . . . . . . . . . . . . . . . . . 22 23 27 29 31 34 36 37 38 39 40 41 Chapter 1 Introduction Medical imaging is an important and quickly growing subject. Due to the fact that vascular diseases are a major cause of death, it is important to be able to study the vessels for more knowledge and to examine the patients to detect any of these diseases before they become too severe. Angiography is the process of visualizing the lumen, i.e. the inside, of blood vessels. This can be done by intravenously injecting a contrast agent into the patient, followed by a computed tomography scan. It allows the doctors to get a view of the body, presented as a volume of x-ray data. The contrast agent is used to make the vessels stand out from the surrounding softer tissue. However, this inevitably leads to another problem. The density of bone tissue varies so much that some parts will overlap with the blood vessels, intensity-wise, and therefore obscure the vessels during visualization. This means that it is necessary to do a vessel segmentation before visualizing the data. Vessel segmentation is a common technique and is therefore well documented, for instance seen in A review of vessel extraction techniques and algorithms [1], presented by Kirbas et al in 2004, and later in Survey of 3d image segmentation methods [2], by O. Wiejadi in 2007. However, most of the methods could still be improved. First of all, there are ways to do angiography with a very good view of the vessels, having almost as good as no bone left in the image at all. But these methods expose the body to higher doses of radiation. They can also be time consuming and therefore cost more money. Some methods allow for very good segmentation of certain vessels, such as the common carotid vessels and the carotid bifurcation, as presented by O. Cuisenaire et al [3] and M. Freiman et al [4]. Even though this is a common location for defects, it would be more efficient if all vessels in a region, in this case the head and neck, could be visualized simultaneously. However, this involves several problems since the structure and placement of bone and blood vessels are different in the head compared to the neck. This is the report for my master thesis in media and computer technology, which was done at Sectra during spring 2013. It discusses different methods for doing automatic or semi automatic blood vessel segmentation on single CT data volumes of the neck and head. These data sets are all captured with contrast agent injected into the blood vessels. The structure of this report is as follows: A short introduction to the problem and the purpose of this project is the part you are reading now. The second part contains some background of medical imaging and anatomy. Following is a chapter with previous work to give the reader the knowledge necessary to follow the evaluation of the different evaluated segmentation approaches. After that, the tested methods are presented, followed by a chapter containing the achieved results. Everything is then summed up in the conclusion part. 2 CHAPTER 1. INTRODUCTION 1.1 Problem description The main issue when trying to segment contrast agent filled vessels is the intensity overlap that occurs between vessels and bones. The density of different skeleton parts varies heavily throughout the body. In Computed Tomography Images (CTI) the HU values for bone and cartilage stretch from around 200 to 3000, whereas the contrast enhanced blood vessels have values between 100 and 500 HU. This means that the two cannot easily be separated with thresholding techniques. When the vessels are visible, the images will also show the softest part of the skeleton. Furthermore, the thin gap between bone and vessels, in some areas, makes the task even more complicated. The carotid vessels, going from neck to head, pass through the Temporal bone via the Carotid canal, where the vessel is completely enclosed by bone with a separation of less than a millimeter. For most CT scanners, the image resolution is too coarse (commonly >1 mm spacing between slices) to capture a distance of this size, thus making the rim of the vessel blend into the bone. Smaller vessels also closely stretch along the surface of the occipital bone. This hampers most segmentation methods. However, it is highly important to be able to completely remove the bones while keeping the vessels for visual inspection. By doing so, symptoms for pathologies, like stenosis, plaque or aneurysms, can be detected more effortlessly. It is possible to solve the problem by taking two different images of the body, as with the BSCTA method, for instance used by Garatam van Andel et al [5], and later further compared to normal CTA by D. Morhard et al [6]. Another way is to use dual-energy scans, presented and discussed by M. van Straten et al [7]. The MRI also gives good representation of vessels without too much image processing. However, with today’s computer power it is, for several reasons, favorable to solve the problem software-oriented. This gives a good compromise of using little radiation and not taking too long to carry through. The main motivation for not using techniques as BSCTA or dual-energy is the amount of radiation that the body is exposed to. The purpose of this project is to come up with an idea how to do automatic or semi automatic blood vessel segmentation good enough to be used by physicians, not using more than a single CT scan. The ultimate goal would be an algorithm that allows the user to press a ”segmentation” button and nothing but the blood vessels would be visualized on-screen. Vessel segmentation can be done with two main approaches: 1. Locating all the blood vessels with an appropriate method and visualizing them. This can, for instance, be done by ray casting the original vessel data or by creating a mesh around the edges of the vessels. The problem with this approach is that the number of vessels is huge. Their structure varies a lot, going from the neck area up to the brain. The placement and structure of the vessels also differs a lot from person to person, which can make the results more uncertain. 2. Subtracting all, or as much as possible, of the obscuring bone tissue. Finding the bone allows for a segmentation of the vessels by masking away the bone. When this is done, the contrast filled vessels can easily be separated from surrounding lower intensity tissue by using thresholding. Large parts of the scull can be located quickly with several methods, since they have defined structure and are not adjacent to any important vessels. However, as mentioned, bone varies a lot in density and can resemble blood vessels in some areas in the lower skull region and parts of the vertebras. Each approach allows for different methods to be used, though nothing says they cannot be combined for a more accurate result. 1.2. MAIN FACILITY 3 Figure 1.1: A CT slice, showing one of the many challenges when doing blood vessel segmentation – the left vertebral vessel is so close to the vertebra that they almost meld together in the image. 1.2 Main facility Sectra is a Swedish company that was founded 1978. This project was carried out at the headquarters of Sectra, which is located in Linköping. There are two main departments at Sectra, Medical Systems and Secure Communication Systems, where the former represents the vast majority of the company. Employees of Sectra are well known for having a remarkably good contact with their clients, fulfilling the clients actual needs. Following is a brief description of Sectra, found at the company’s own homepage: http://www.sectra.com/ “Sectra is one of today’s major diagnostic imaging providers. More than 1,400 hospitals worldwide use Sectra’s system, performing over 50 million radiology examinations per year. The company’s systems are installed in most major countries in Europe, the Far East and North America. Sectra’s core business is delivering top-of-the-line, high-availability, robust enterprise diagnostic imaging for 24/7 operation. The product offering includes for example systems for film-free radiology, mammography and orthopedics.” Chapter 2 Background In order to fully understand the rest of the report, the process and the challenges that occur during blood vessel segmentation, this chapter provides a basic background of medical imaging and other subjects that are relevant to this project. 2.1 Preliminaries Notations: Throughout this report, if nothing else is stated, scalars are written as normal lowercase symbols (x), scalar fields as normal upper case symbols (X), vectors as bold lowercase symbols (x) and vector fields as bold uppercase symbols (X). Hounsfield Units (HU): HU is the standard reference scale used for measuring x-ray image intensities. It builds on the fact that denser material absorbs more radiation than soft materials and leaves less photons to hit the printing plate. X-ray images are usually inverted to make dense material, such as bone, have high intensities, thus appear bright in the final image. The Hounsfield unit is defined such that the radiodensity of distilled water (at STP - Standard Temperature and Pressure) is equal to zero HU, and the radiodensity of air (at STP) is equal to −1000 HU, seen in equation 2.1. HU = 1000 µx − µwater µwater (2.1) where µx represents the linear attenuation coefficient in a specific voxel x and µwater is the linear attenuation coefficient for water. Approximate HU values for different tissues can be found in the table 2.1, [8]. Note that, these values change depending on the wavelength of the x-rays. This is taken advantage of when using dual energy CT-scanners, which however is outside the scope of this project. Volume Data: In the same way as an image can be represented with a discrete two-dimensional pixel grid, volume data can be described with a three-dimensional voxel grid. From the grid, it is possible to reconstruct a 2D slice, as seen in figure 2.1 and 2.2. 2.1. PRELIMINARIES 5 Table 2.1: Table of HU for different tissues Tissue Bone Blood (with contrast agent) Liver Blood (without contrast agent) Gray matter White matter Muscle Kidney Cerebrospinal fluid Water Fat Air HU 200 – 3000 100 – 500 40 – 60 40 37 – 45 20 – 30 10 – 40 30 15 0 -50 – (-100) -1000 Figure 2.1: The different orthographic projections of a CT volume in sagittal (left), coronal (middle) and axial (right) views. The yellow cross marks the same voxel in all views. 6 CHAPTER 2. BACKGROUND Figure 2.2: A 2D slice extracted from the whole volume of a human skull (left). Volume rendering is the gathered name for all techniques that take a 3D data set and displays its 2D projection. The discrete data elements are often called voxels. A common way to do volume rendering is ray casting, where rays are cast from a defined camera position, through the image plane (one ray per pixel) and finally through the data volume. Each pixel is then given a color depending on the voxels that their ray passed. The color could for instance be based on the value of the first non-zero voxel that is encountered, or a combination of the passed voxels. Remapping values: When looking at x-ray images, there is no need for having several color channels of the image, since only the HU magnitude needs to be stored in each and every voxel. On a computer screen, this can obviously be represented with a gray scale value. However, with a CT scanner, the HU variation is measured with higher precision than 8 bits, which is used to present the 256 different gray scale intensities on a standard monitor. Often the x-ray volume is stored with a dynamic range of 12 bits (4096 values). This means that the image intensities have to be remapped before being visualized, i.e., the higher dynamic range of the HU intensities are turned into gray scale values, with a lower dynamic range. Most suitably is to recalibrate so that air gives the grayscale value of zero. Depending on what type of tissue will be studied, the dynamic range of one to 255 can be concentrated in the area of interest. Thus, everything denser than the densest tissue in the chosen range, will be shown as white. Just showing gray scale values with full opacity is feasible with 2D-images, however, when looking at a volume, this is not sufficient (we would mostly see a black box, due to all air). It is necessary to include a variation of the opacity, for instance giving air the opacity zero. Different colors can also be used for different intensity ranges to increase the total dynamic range of the visualization. 2.2. ANATOMY OVERVIEW 7 Figure 2.3: Histogram of a CT image. The dots are key points for adjustment of dynamic range and opacity for those HU values. This adjustable histogram is a part of the 3D engine, integrated into MeVisLab. 2.2 Anatomy overview In this section the basic vessel structure is outlined, in order to get an overview of the case. Since the brain requires a lot of oxygen to function properly, the arteries and veins leading there have to be thick. From mid-neck area and upwards, duplicates of the vessels are located on left and right side, even though their shape might differ somewhat. 8 CHAPTER 2. BACKGROUND Figure 2.4: Source: http://antranik.org/blood-vessels/. Basic structure of the main vessels in the neck and head area. The vessels with lower opacity are located behind bone tissue. 2.2.1 Neck The neck contains some of the most important blood vessels in the body, including the carotid vessels. Their task is to supply most of the head with blood. The common carotid vessel is split into the internal and external carotid vessels, at a point called the carotid bifurcation. This part is especially exposed to stenosis, which makes it the culprit to many cases of decreased blood flow towards the head. The internal carotid vessel is the one leading inwards to the brain. It actually passes right through the temporal bone via the carotid canal, thus making it a critical part during segmentation. Finally it connects to the Circle of Willis, where most of the blood passes before being sent into different cerebral areas. The external carotid vessel mostly supplies facial organs as well as the outside of the skull. In the neck region, the carotid vessels are normally well separated from any bone tissue, i.e., they can be segmented comparatively easy with several methods. The vertebral vessels are more difficult as they are partly enclosed by every cervical vertebra they extend along. 10 CHAPTER 2. BACKGROUND During angiography, the lumen of the vessels are the most important part. The border of the lumen will also be the border of contrast agent that is injected into the blood, and is therefore the most visible part of the vessel during visualization. The most common reason for blood flow degradation is narrowing of the lumen. 2.3 Common diseases The following section describes some of the most common vessel problems. They are together the main cause to do an angiography. 2.3.1 Stenosis Stenosis is a narrowing of tubular organs, such as blood vessels and tracheal parts, leading to decreased effectiveness or full loss of function. Arterial stenosis is caused by the build-up of plaque on the inner walls of the vessels. When this happens on the carotid vessels, major parts of the blood flow can be blocked. Symptoms are rarely noticed until the stenosis is at a severe stage and a clot forms, creating a transient ischemic attack (a mini-stroke). Since stenosis narrows the actual lumen of a blood vessel, it can be detected with medical imaging, for instance by doing a CT angiography. 2.3.2 Aneurysm Aneurysms are caused by a weakening of the blood vessel walls and appears as a balloon-like shape on its side. The aneurysm can grow to a size where it breaks and causes hemorrhage. If this happens in the cerebral area, where aneurysms often occur, the consequences can be severe. Larger aneurysms can easily be detected during an angiography. 2.3.3 Stroke A stroke is more a critical state than a disease – it is the result of a sudden loss of blood flow to the brain. Smaller strokes can be temporary and disappear within minutes, others can be permanent if no medical treatment is given. This could lead to major damage to the brain or in worst case, death. A stroke is caused either by a blockage of a blood vessel or hemorrhage. 2.4 Medical imaging The use of medical imaging has indeed grown vastly over the last years. It occupies a big part of computational research and constantly pushes the development of visualization and image processing forward, hand in hand with hardware development. In 1895, Wilhelm Röntgen discovered the x-ray. It was such a huge discovery that he was awarded with the first ever Nobel Prize in Physics. X-rays have been used ever since, in particular to visualize and analyze the inside of objects. Over the years, other methods for doing so have been invented, due to the hostile nature of radiation for the human body: magnetic resonance imaging and ultra sound, just to mention a few. The purpose of medical imaging is to create visualizations of living tissue, either for scientific research or clinical procedures, to better be able to analyze and diagnose diseases. Having the ability to do so saves a lot of time and money, not to mention that the accuracy of a diagnose increases. This is an important factor before, for instance, making the decision to do a surgery. Tomography is a technique that allows for creation of two-dimensional slices of the body. Each slice is represented as an image, where the pixels hold a transformation of the HU-value at 2.4. MEDICAL IMAGING 11 that position of the body. Since the image has a limited resolution, the value can either be based on the mean HU-value over the whole pixel area, or just the center value. When many slices are stacked, they create a volume representation of the body, a voxel grid. In most cases, this grid is not isotropically shaped, seeing that the spacing between slices not necessarily needs to be the same as the pixel spacing for every slice. Therefore, the grid might have to be resampled in order to get a non-distorted representation of the scanned body, before any image processing is done. Being able to study blood vessels, and prevent these diseases, is one of the most useful aspects of medical imaging. It is an indispensable tool for our healthcare and will be so even more in the future. As previously mentioned, ultrasound can be used for medical imaging, thoroughly discussed in the master thesis of Per Mattson and Andreas Eriksson [9]. However, when trying to visualize blood vessels, the two most common techniques are CT and MRI. 2.4.1 CT Computed tomography angiography There are many ways to get an inner view of the body without the need to physically examining it. Computed tomography is one of them and uses x-rays to scan the body. The difference from using normal x-ray imaging is that the body is scanned from different directions. The advantage of doing so is that it gives the possibility to create a 3D representation of the scanned area. This data can be processed in software to give a good view of any type of body tissue. CT scans are especially good at reproducing well defined images for bones and other harder tissue like cartilage, that x-rays have difficulty passing. Softer tissue like muscles or the brain are more clearly seen with magnetic resonance imaging (MRI). Bone subtraction computed tomography angiography Bone subtraction computed tomography angiography (BSCTA) allows for subtraction of bone during visualization, without much image processing. The patient is scanned twice in the same position: one time in normal condition and one time with contrast agent injected into the vascular system. The vessels can then, after registration (see section 3.8), be visualized separately by subtracting the first image from the second. There are however some drawbacks of doing so. Since two images have to be taken, the patient will suffer from twice as much radiation, compared to only doing a single scan. Furthermore, it can be inconvenient for the patient having to lie completely still for an extended time. 2.4.2 MRI Magnetic Resonance Imaging (MRI) is a newer way to create three-dimensional representations of the body. Instead of using x-rays to scan the body, very strong magnetic fields are used to orient the hydrogen atoms in a specific way. When the magnetic field is released, the atoms will return to their original orientation, thus loosing energy. The energy is turned into radio waves, which can be collected and turned into an image. For this reason, the MRI method is, as far as we know today, harmless to living tissue. Since this project only handles images from CT scans, MRI will not be further explained in this report. But it is still important to mention why MRI is not always used instead of CT. First of all, since MRI scanners are relatively new, they are generally more expensive than CT scanners. They also do not produce results with as good resolution as the CT scanners. A CT procedure can be done in a matter of seconds (∼30 – 60 sec), whereas doing a MRI scan takes several minutes (∼20 – 40 min). During this time, it is essential that the patient lies completely 12 CHAPTER 2. BACKGROUND still, which is not comfortable for everyone. Finally, CT and MRI produce images that differ a lot from one another. CT images are far more useful when looking at dense tissue, such as bone. MRI is more appropriate when looking at softer tissue, such as the brain [10]. 2.5 Image segmentation Image segmentation involves the process of partitioning image data into multiple sets of pixels/voxels. In other words, every pixel/voxel is assigned a label/value, where those with the same label/value belong to the same segment. There are a vast number of methods for doing image segmentation – thresholding, clustering, region growing and edge detection, just to mention a few – and they can be applied to varying problems: detection of pores in wood [11] for instance. Some of them can be used for doing blood vessel segmentation and are discussed in this report. The reason for doing segmentation is in most cases to get a different view on the image, mostly creating a more comprehensible representation of the original, making it easier to analyze. For this project, the whole problem consists of coming up with a good way to segment blood vessels from other tissues. If succeeding to do so, the final segmentation can be used to mask away obscuring tissue, primarily bone, to make it easier for the doctors to examine the vessels. But where many images can be easily segmented using, for instance colors, the segmentation task faced here is far more tricky. Chapter 3 Previous work 3.1 Thresholding Thresholding is a technique used for partitioning an image with respect to its intensity values. This is one of the easiest ways to do segmentation. Most often, the result is a binary mask where all the values that below the threshold are set to zero, and the ones greater than the threshold are set to one. If using two thresholds, the value one is often assigned to the intensities that lie within the two thresholds, and zero to the rest. Though it is possible to use an arbitrary number of thresholds, it is not that useful, as it requires the result to be handled differently than a mask. There are automated ways to decide which threshold values are going to be used for a particular image, where the most known is Otsu’s method. The basic idea is to search for a threshold that minimizes the variance within the segmentation. K. Zhao et al [12] also propose a method to automatically find thresholds for CT bone-subtraction. However, the approach is based on the fact that they have two images – with and without contrast fluid injected into the vessels. Even though thresholding is fast and easy to use, the method has some limitations. Sometimes a threshold value works well for one part of the image, but poorly for the rest. In the case of CT images, the problem is that different types of tissue can be very similar. It is thus difficult to decide one threshold value that does not include too much or too little of the wanted segment. The intensity overlap between bone and blood vessels results in this complication. 14 CHAPTER 3. PREVIOUS WORK Figure 3.1: Left: Original CT image. Right: Same image, thresholded with a value of 500 HU. 3.2 Clustering Clustering is the name for dividing a set of data into smaller groups, where each group member is best fitted into that specific group. Clustering can be used for image processing as a pixel segmentation technique, where the pixels are partitioned, for instance, according to their intensity or color. 3.2.1 K-means K-means is one of the most well-known centroid based clustering algorithms today. It divides n data elements into k clusters by iteratively moving the mean value for every cluster based on the i already assigned data elements. At initialization, every cluster mean kmean is set to a random data element. Then, every data element is assigned to the cluster that has the closest mean. When all data elements have been distributed among the clusters, their means are recalculated and the process repeats. This is done until no data element changes cluster. Figure 3.2: K-means clustering with three clusters. 1) Cluster centers are initialized as random elements. 2) All elements are assigned to the cluster with the nearest center point. 3) Center points are moved to the center of all elements assigned to respective cluster. 4) Elements are reassigned to a cluster, with the new closest center point. 5) Done! All elements have found their final cluster. 3.6. ACTIVE CONTOUR MODEL 19 Figure 3.8: The principles of region growing. A seed point is initialized as the first active element (blue). All active elements check for non-labeled pixels/voxels in its neighborhood (here, in a 8-connected fashion). If a checked pixel agrees with the chosen intensity threshold it will be updated as an active pixel/voxel. All previous active pixels/voxels become labeled as part of the region (green). 3.6 Active contour model Active contour model, also known as snakes, is a technique proposed by Kass et. al. [14], to outline the contour of an object. This is done by minimizing the energy of a spline, constrained by external and internal forces. These pull the contour towards features in the image, edges for instance, and lock the contour in place when the designated shape has converged. The total ∗ snake energy, Esnake , for a contour with n points, can be expressed as ∗ Esnake = Z 1 Esnake (v(s)) ds = 0 Z 1 (Einternal (v(s)) + Eexternal (v(s))) ds (3.6) 0 Eexternal = Eimage + Econ (3.7) where vi = (xi , yi ) and i = 0...n − 1. Eexternal is the external energy, Eimage is the energy based on the image values, Econ is the additional constraints energy given by the user and Einternal is the internal energy. The external energy reacts to the image intensities and additional constraints set by the user. The energy is minimized when a strong edge is found, i.e., the gradient is maximized. The internal energy is based on the current shape of the spline. Hard bends on the spline create more energy than smooth shapes, forcing the spline to straight out, a bit similar to a rubber band, which has a minimal internal energy when taking a perfect circular shape. An active contour model can be used to do image segmentation, by finding the edges of regions. S. Grosskopf et al [15] show how they can segment a vessel contour by using an adaptive and self-learning version of the active contour model. 3.7 Shape extraction Since blood vessels are more or less cylindrically shaped, they can be found by measuring how similar the local surrounding of each voxel is to a cylinder. Now, it is important to remember that blood vessels are not the only cylindrically shaped structures in the body. Tissues, such as tendons, bones and cartilage are all likely to show up in the result as well. So what approach is necessary to discover cylindrical shapes? It is a fact that the cross section of a cylinder is a circle. But there is also the fact that the cross section does not change 20 CHAPTER 3. PREVIOUS WORK much lengthwise. If these two features are satisfied, it is plausible to say that the shape is a cylinder. 3.7.1 Vesselness Vesselness calculation is based on the idea of looking at the eigenvalues of the Hessian matrix for every voxel in the image. The Hessian matrix can be derived by calculating the second-order partial derivatives of a function. Consequently, in three dimensions, the Hessian matrix, H(f ) is given by equation 3.8. 2 2 2 ∂ f 2 ∂∂x2 f H(f ) = ∂y∂x ∂2f ∂z∂x ∂ f ∂x∂y ∂2f ∂y 2 ∂2f ∂z∂y ∂ f ∂x∂z ∂2f ∂y∂z ∂2f ∂z 2 (3.8) where f (x, y, z) in this case gives the voxel intensities. With the eigenvalues, λ1 > λ2 > λ3 , a bright vessel on a darker background can be detected if the following condition is fulfilled: λ1 ≈ 0 and 0 >> λ2 ≈ λ3 . This states that in one direction around the voxel, the intensity change is near to zero, which would match the direction of the vessel. It also states that in the two other orthogonal directions, the intensity varies a lot, and approximately equally, which would match the near-circle shaped cross-section of the vessel. The more closely a voxel can be compared to this condition, the more likely it is that it belongs to a vessel shaped structure. R. Marcin [16] uses and describes this approach to find vessel structures in the body. 3.8 Registration Registration is the process of trying to spatially match a data set to another. In most cases, this is done on two-dimensional images, but can be done on volumetric data sets, meshes and more. It is a proven tool for medical imaging and can, for instance, be used to analyze sets of images. So how can this be used for blood vessel segmentation? Trying to match a bunch of blood vessels to the vessels of an arbitrary patient, to mask away the surrounding tissue, would be a next to impossible task. The vessels are numerous, relatively small compared to the image resolution and differ a lot in shape and size from person to person. A better approach would be to find the skeleton since the bone tissue is much more similar between different persons. Furthermore, a final registration of the bone does not have to be as accurate as a vessel registration, since removing too much/little bone will in most cases not affect any vessels at all. As mentioned previously however, some areas like the cervical vertebrae will still cause some problems due to close proximity of bone and vessels. In order to match a moving image Im(x) to a fixed image If(x), a designated transform T(x) is needed. T(x) can be any given transform: rigid, affine or completely non-rigid. Deriving the optimal transform is a non-trivial task that comes down to minimizing the difference between the two images, after the transform has been applied, such as showed in equation 3.9. T̂ = arg minC(IF (x), IM (T (x))) T (3.9) where T̂ is the optimal transform, x is an element that belong to the fixed image domain ΩF and C is a cost function that measures the difference between the fixed image and the transformed moving image. Solving such a minimizing problem computationally is an iterative process of optimizing the transform and measuring the error after it has been applied. Depending on what the user wants to accomplish, a set of parameters must be specified. These 3.8. REGISTRATION 21 include the type of transform that will be used, the optimizing algorithm, the cost function, the number of allowed iterations, stopping conditions, interpolation method, metric type, grid spacing in case of a non-rigid transformation, etc. 3.8.1 Transforms For all the following transforms, T is the transform on a data element position (in this case voxel position) x, with the input parameter vector µ Translation: Translation of an image is the pure movement of all pixels/voxels in one specific direction. The image is not allowed to rotate or transform in any way that does not keep the isometry of the image to itself. This is the simplest transformation that can be done. Translation is described as Tµ (x) = x + t (3.10) where t is the translation vector. Rigid: A rigid transform allows rotation in addition to translation. However, it does not allow any scaling or stretching of the image data. A rigid transform can be described as Tµ (x) = R(x − c) + t + c (3.11) where t, once again is the translation vector, R is the rotation matrix and c is the vector to the center of rotation. Affine: The affine transform extends the rigid transform by also allowing scaling and skewing. During an affine transformation, all straight lines before the transformation are kept straight afterwards. The affine transform is a good way to start a registration procedure. It can make a good line-up of two images so that only small adjustments remain to be done. The transform is described as Tµ (x) = A(x − c) + t + c (3.12) with the same notation as for the rigid transform, except that R is now replaced with the affine rotation matrix A that has no restrictions. Non-rigid: A registration is mostly finalized with a non-rigid transform, where B-splines are often used to parametrize it. The image is divided into a grid with a set spacing. Each point on the grid can move more or less independently from the others. The higher resolution of the grid, the less restricted is the transform, but a too high resolution can also lead to bad transformations and of course longer computation time. A non-rigid transform is not suited to match images that are differently rotated and scaled, but only to make finer adjustments. Therefore it is essential to apply a good base transform first. A non-rigid transform made with B-splines can be described as X 3 x − xk (3.13) pk β Tµ (x) = x + σ xk ∈Nx where xk is a movable point on the grid, the set N contains all of these grid points, β 3 (x) is the B-spline polynomial, pk is a vector containing all coefficients for the polynomial, and σ is the spacing between the grid points. 22 CHAPTER 3. PREVIOUS WORK Figure 3.9: The different transformations trying to match the moving image (b) to the fixed image (a). An overlay grid makes it easier to see how the image has deformed with (c) translation, (d) a rigid transformation, (e) an affine transformation and (f) a non-rigid transformation. It is important to notice that the grid does not resemble the movable grid points for a non-rigid transform, as they are defined on the fixed image. The transforms are always calculated from the fixed to the moving image, and then inversely applied on the moving image. Source: http://elastix.isi.uu.nl/download/elastix manual v4.6.pdf 3.8.2 Interpolators Since the transformations can be arbitrary, but the final image has to be represented by discrete pixels/voxels along a predefined static grid, the pixel values have to be set via a chosen method. The most common ways are nearest-neighbor, linear interpolation and polynomial interpolation, seen in figure 3.10. Nearest-neighbor assignment is very straightforward. A pixel/voxel is given the same value as its nearest pixel. This tends to give rough jagged edges. Using linear interpolation means that the value in point p is given by the nearest surrounding values, linearly weighted by their distance from the p. Even better result can be achieved by using polynomials or splines to derive an interpolated value. However, these are also more computationally heavy and can lead to over/under-shots. 3.8. REGISTRATION 23 Figure 3.10: One dimensional example of interpolations of the discrete data points in a), where b) is nearest-neighbor, c) is linear interpolation and d) is polynomial interpolation with a sixth degree polynomial. 3.8.3 Metrics The cost function, C in 3.9, returns a value based on a metric, used to measure the difference between the two images, i.e. a way of saying if the transformation was successful or not. The choice of metric is important and balances accuracy and computation time. An example of metric is the sum of squared differences. Sum of Squared Differences (SSD) is a common way to measure similarity in data sets. Every transformed data element, or here voxel, is compared to its original. The difference is squared and summed to all other voxel differences. The result is divided with the total number of voxels to give the mean error, as seen in equation 3.14. SSD(IF , IM ) = X 1 (IF (x) − IM (T (x)))2 | ΩF | (3.14) xi ∈ΩF where F and M are indications for fixed and moving image I, respectively, Ω is the set of all voxels, x is the voxel position and T is the transform that was applied to it. 3.8.4 Optimizers Optimizers are used to derive how best the parameters should be changed in order to minimize the difference (given by the metric) between the fixed and the moving image. A common 24 CHAPTER 3. PREVIOUS WORK optimizer is the gradient descent method [17], which checks for the largest minimization of the metric and keeps transforming in that direction. 3.8.5 Doing registration in multiple steps Combining transforms In order to get a good result from the registration process it is often necessary to combine different types of transformations. If the moving image looks a lot different from the fixed image, it might not be possible to get a valid result at all, but a good start is to do some basic transforms, such as rigid and affine transform. This will help a great deal getting the moving image matched against the fixed image. This can then be followed up with a B-spline transform, to adjust the details. If the rigid/affine transformation was poor, it is not likely to get good results here either – in some cases the outcome can be far worse than the input. Multiple resolutions Using multiple resolutions helps a lot when registering complex images. This basically means that the registration is done repeatedly, first with a very coarse resolution, followed up by higher and higher detail level. The coarse images can either be down sampled or blurred versions of the original images. This implies that there will be less struggle for the optimizer to move the image around in the beginning, but still being able to match the details in the final steps. An example of down sampling can be to have the resolution halved for each step. That is, if using four different resolutions, the first registration will be done on images that have been down sampled to one eighth of the original resolution, then one fourth, then one half and finally with the true resolution. Multi-Atlas Hortense A. Kirisli et al [18] take the registration one step further by using an atlas of fixed images. The moving image is registered towards all images in the atlas and basically, the best matched result is used. This does indeed improve the possibilities of successful registrations but is very time consuming. Five images in the atlas means five times more computation. Chapter 4 Method and implementation This chapter briefly describes the softwares that were used during the project and the different methods that were tested for blood vessel segmentation. 4.1 Software 4.1.1 MeVisLab MeVisLab is an open source software that has been invaluable for prototyping during this project. MeVisLab allowed for testing of many different approaches to vessel segmentation, that would not have been possible otherwise for such a time limited period. It can be quickly described none better than by quoting the developers from the home page: “MeVisLab represents a platform for image processing research and development with a focus on medical imaging. It allows fast integration and testing of new algorithms and the development of application prototypes that can be used in clinical environments. MeVisLab includes advanced medical imaging modules for segmentation, registration, volumetry, and quantitative morphological and functional analysis. Several clinical prototypes have been realized on the basis of MeVisLab, including software assistants for neuro-imaging, dynamic image analysis, surgery planning, and vessel analysis. The implementation of MeVisLab makes use of a number of well known third-party libraries and technologies, most importantly the application framework Qt, the visualization and interaction toolkit Open Inventor, the scripting language Python, and the graphics standard OpenGL. MeVisLab has originally been created and developed by Fraunhofer MEVIS (formerly MeVis Research). Since the transfer of MeVisLab to MeVis Medical Solutions in 2008, the further development and advancement of MeVisLab as well as the communication with the MeVisLab users community is pursued as a joint effort between MeVis Medical Solutions and Fraunhofer MEVIS. A part of the modules contained in the MeVisLab distribution are directly contributed by Fraunhofer MEVIS.” MeVisLab’s user friendly node based system makes it very comprehensible, even for beginners. Many of the existing implemented algorithms are taken directly from ITK, which is convenient since it allows the user to keep these algorithms when leaving the prototyping state. 4.1.2 Matlab Matlab is a cross-platform environment created by MathWorks, used for numerical computing. Matlab is really good for solving image processing tasks, many thanks to the Image Processing Toolbox and image viewing capabilities. For this project, it was used for prototyping, mainly during the vessel analysis part, see section 4.5. The program language is very easy to use and 26 CHAPTER 4. METHOD AND IMPLEMENTATION allows for quick import of images into matrices – most functions in Matlab are matrix based. Thanks to Matlab’s matrix based syntax, many operations can be done on multiple data elements without the necessity of writing for-loops. However, where Matlab shines with its versatility, it lacks in computational speed that other languages provide, such as C++. Therefore, Matlab code is often ported to another language when a working prototype has been developed. 4.1.3 Elastix Elastix is a toolbox for rigid and non-rigid registration, and was used for all registration tests during this project. The description from the developers reads as follows: “Elastix is open source software, based on the well-known Insight Segmentation and Registration Toolkit (ITK). The software consists of a collection of algorithms that are commonly used to solve (medical) image registration problems. The modular design of Elastix allows the user to quickly configure, test, and compare different registration methods for a specific application. A command-line interface enables automated processing of large numbers of data sets, by means of scripting.” Elastix is easy to get started with and has a well documented users manual. 4.2 Vessel finding approaches The vessel finding approaches involves trying to find the blood vessels themselves and sorting all other voxels away. 4.2.1 Region growing One of the most intuitive ways to find all vessels would be to locate one or several places in the image where most of the blood must pass, and search outwards from there. If the scan includes some of the chest area, the aorta is a good point to start. Otherwise, one point in each common carotid vessel should be enough. If region growing could be executed here, the problem would be more or less solved. However, as previously discussed this is not entirely possible. Due to the intensity overlap and close proximity of bone, the region growing will leak out and include bone parts such as vertebrae and parts of the scull. In some few cases, where the vessels are better separated from bone structure, it might be possible to minimize leakage to a point where it is no longer critical. But by doing so, it is likely to have included too little of the vessels themselves. The region growing method works very well though, if the only goal is to strip the skull bone. It is possible to place a seed point at arbitrary locations inside the brain, and then region grow the brain with an upper threshold set just so that none of the skull bone is included. If there are any vessels in the head that were excluded as well, they can be selected by some closing operations. Still, the threshold parameter is very difficult to adjust. This method was tested early on, both in Matlab and MeVisLab, and was abandoned not long after. It requires a lot of parameter tweaking and is, by far, not robust enough on its own. 4.2.2 Centerline tracking The centerline tracking was tested with the Tubular Tracking [19] node in MeVisLab. This algorithm takes a seed point from where it tries to track the centerline of a tube shaped structure, such as a blood vessel, by fitting a cylindrical kernel. The kernel is always moved bi-directional 4.3. BONE SUBTRACTING APPROACHES 27 along the already found centerline, and the rotation is tested in several steps. The algorithm also allows the user to test multiple hypothesis, which makes it possible to find vessel branching. This method is good for tracking uniform vessels, but lacks the versatility of finding all vessels in the neck and head. Furthermore, since the algorithm has to check for multiple hypotheses in every single time step, in order to find branches, it quickly becomes an immense task to compute. 4.2.3 Vesselness calculation MeVisLab has a built-in algorithm for direct calculation of the vesselness in the image. It could also be done by manually calculating the Hessian matrix for every voxel and use its eigenvalues to get a scalar field as a result. Both ways were tested during this project. In order to actually find the vessels, it is essential to know the diameter of the vessels. Generally, the blood vessels in the neck are much thicker than those in the head. Even if the two are split up, it is still impossible to set an exact diameter that fits every vessel. Therefore, the algorithm has to be run several times with different kernel sizes. This takes a lot of time – filtering a 5123 image with a 73 kernel involves around 46 billion operations, though this number can be reduced drastically by using a rough ROI mask. The vesselness approach is difficult to use on its own since it inevitably finds other tissue that is cylindrically structured. Figure 4.1 shows an early result given with a coarse bone subtraction followed by a vesselness enhancement. Figure 4.1: Blood vessel segmentation where the vessel intensities have been amplified with a vesselness filter. 4.3 Bone subtracting approaches Instead of trying to find the actual vessels in the neck and head, which we have seen is a very challenging task, they could be visualized if all obscuring bone would be removed. This would mean that no left-over tissue would overlap the vessels intensity-wise and could easily be hidden by thresholding during the visualization. This approach was embraced when the described approaches above turned out to give insufficient results. The two main advantages of finding the bone instead of the vessels is, first of all, that bone structure varies less than vessel structure from patient to patient, and second of all, it does not affect the vessel data the same way. For 28 CHAPTER 4. METHOD AND IMPLEMENTATION instance, this approach is much more reasonable for segmenting the vessels in the upper head, since a skull stripping algorithm will by no risk affect the vessels inside the brain. 4.3.1 Gradient based method Even though contrast filled blood vessels and bone suffers from an intensity overlap in the CT-scans, they differ a lot in the way they connect with surrounding tissue. The lumen of the vessels, that contains the contrast agent, is enclosed by three layers of vessel tissue, with the arteries having the thickest walls. This gives the appearance of a gradually decreasing intensity from the lumen out towards the surrounding tissue. Bones on the other hand are more cancellous on the inside, in the marrow, and denser towards the outer (cortical) layers. This can be exploited to find the bones, without including the vessels. The method is based on three steps: 1. Find image edges 2. Distinguish bone edges and fill the insides 3. Improve mask and mask away all bone tissue The first step is done by either using a morphological gradient or calculating the real gradient of the image and converting it to a scalar field. The first is given by first doing a grayscale dilation of the original, from which the grayscale erosion of the original is subtracted. Both these methods are implemented in MeVisLab and appeared to take approximately the same time to calculate, even though the real gradient is a bit faster. During testing, a step length of two voxels outside the current voxel seemed to be a good setting for the gradient calculation. After this step, only the edges of bone, cartilage, vessels and skin are well visible. It is at this stage clear that the bone edges are much more prominent than the rest of the edges. Thus, applying a lower threshold to the gradient image will remove edges that do not belong to bone. Simultaneously, the image is converted to a binary mask, that only contains the edges of bone. A filling filter, also implemented in MeVisLab, can then be used to fill up cavities, i.e., the inside of the bones, consisting mainly of marrow. This however works far form perfectly, since leakages are not prevented. Finally, to make sure that there will not be a thin layer of bone left (even a single voxel thin layer can obscure almost all view), the mask is dilated with a simple 33 cross kernel. The mask can now be used to hide all voxels, in the original volume, that it covers. The vessels are then best visualized with a MIP volume rendering. 4.3.2 Bone registration The problem when trying to find bone is that whatever method is used, it is very difficult to find it all. Parts of marrow and cartilage are likely to be left unfound. As mentioned in section 3.8, one of the newest techniques to do bone subtraction, and mainly skull stripping, is registration. The concept here is to match a correctly segmented bone structure to another patients bone structure by moving, scaling, rotating and distorting it. When the matching is done, the transform can be applied to any mask, used to remove the bone. ITK is well developed for doing registration on multi-dimensional images, but the number of functions and parameters can be frightening to use for someone who has never worked with registration before. Fortunately, it has been made easy with Elastix, mentioned in section 4.1.3. Some things have to be done before Elastix can be used, though. The first step is to have a bone mask. This is the paradoxical problem since a bone mask is the result we want to achieve by doing the registration. So alternatives are to either create a mask by manually masking every slice separately, or to create a rough mask by for instance using thresholding and morphological operations. For this project many different masks were 4.4. COMBINING APPROACHES 29 tested, where the most detailed one was extracted by thresholding a CT volume of a deceased person, with no contrast fluid in the blood vessels. To speed up the registration process, it is possible to use a ROI mask surrounding only the head in the fixed image. This can also contribute to a better end result as lots of information, such as noise around the head can simply be ignored. For the final result, first a registration with only affine transformation was used, followed by a non-rigid B-spline transform registration, using the affine registration output as input. This turned out to be a very time consuming approach. When doing registration on a 512x512x510 voxel volume with a ROI mask around the bone, it still took around 5 minutes to get a final result. This was on a dual CPU computer with 12 cores, clocked to 2.4 GHz, and 32 GB of RAM. The results are not good enough to be used for examination due to the loss of vessel data in many regions. Figure 4.2: The result of doing bone subtraction with the registration approach. Even though this was a nice data set, there are still pieces of bone fragments left, and some vessel data removed. 4.4 Combining approaches It is fully possible to use techniques for both subtracting bone and to find vessels. Stephanie Behrens [20] proposes an approach where most of the bone is first masked away, and the vessels are then extracted with an edge based level-set segmentation. However, what it finally came down to was to do a bone subtraction with some restrictions, inspired by A. Alysassin et al [21]. The basic idea is to, by region growing, do a composite bone mask that contains all the bone in the image, both dense and porous, as well as some of the vessels where the region growing has leaked. The remaining thing to do is to remove the vessel data from this mask. This is done with another region growing from the common carotid arteries, outwards. Now here is the problem: If the first region growing leaks from bone to vessel, the second one will obviously leak from vessel to bone, thus removing too much of the composite mask. This leakage can be limited in the following manner: 30 CHAPTER 4. METHOD AND IMPLEMENTATION 1. Find only the densest bone in the image and create a mask of this. 2. Dilate this mask to make it thick enough. 3. Subtract this mask from the original image where the vessel region growing will be made. If done correctly, this will have created a gap between most of the vessels and porous bone, stopping the leakage. The reason for not doing it in the bone region growing step is that it might create a gap so that the region growing finishes before it can collect all bone. For instance, if a seed point is placed on the top of the skull, the spine might not be included in the composite mask. Instead, in worst case now, there will be pieces of bone still in the final segmentation. The final algorithm works as follows: 1. Create an image, M ID, containing all bone and high intensity vessels (such as the carotid). 2. Create an image, HIGH, containing only the densest bone. 3. Dilate HIGH and subtract it from M ID, giving M ID2 . 4. Create a composite bone mask, Mcomposite , by region growing all bone from the top of the scull. The thresholds have to make sure that all bone is included. This will leak into vessels. 5. Create a restriction mask, Mvessels , by region growing the vessels in M ID2 , and dilate it. 6. Subtract Mvessels from Mcomposite to create a final bone mask, Mbone . 7. Subtract Mbone from the original image and do a region growing on the result from the carotid vessels. Here, the thresholds can go from Imagemin to very large value, for instance 2000 HU. Its only purpose is to remove small pieces of garbage, far from the vessels. This technique was used for the segmentation in the final result images. 4.5. VESSEL ANALYSIS 31 4.5 Vessel analysis In the end of this project I was given a sub-task, namely to extract the contour of a vessel cross cut in 2D, given a center point. Sectra’s software engineers have implemented a centerline tracking algorithm for blood vessels, based on fuzzy connectedness [22]. It allows for segmentation of a single vessel from two chosen points, A to B. Among other things this is used for giving assistance during diagnosis of stenosis. When plaque builds up inside the vessel, the diameter of the lumen decreases. Hence, if the diameter changes drastically over a short section, the chance of stenosis is high. Figure 4.3: Centerline algorithm in Sectra’s internal tool VRTTest. Two mouse clicks are used to place start and stop for the centerline. This can be done either in 3D or 2D. To do this comparison, an MPR (128 x 128 pixels) is created for three part of the centerline, simultaneously, so that every image plane is orthogonal to the centerline direction at that point. Further, another algorithm calculates the contour of the vessel cross cut. Finally, the minimum and maximum diameter of the contour can be derived and compared to the other two contours. The bigger the difference between the minimum diameters, the higher chance of stenosis. Calculating the contour can be done in many ways. Previously, an optimized level-set method has been used to do this. The main demands on the algorithm is that it has to be fast (< 0.1s per image) and it should not leak into adjacent vessels, for instance from an artery into a vein. The first attempt was to use thresholding and labeling, i.e., the MPR would be thresholded into a binary image so that vessel-like pixels would get the value one and everything else zero. Then a labeling algorithm would sort other regions out from the one containing the center point. This approach was naive and worked very poorly, since it required only a single pixel to leak and was also slow due to the many read and write instructions to every pixel. The method was improved quite a bit by implementing a K-means clustering algorithm. This algorithm converged to automatically set thresholds which assigned pixels in the image to separate clusters: lumen, plaque, vessel tissue and other tissue. This made the algorithm more robust, but still had problem with leakage. 32 CHAPTER 4. METHOD AND IMPLEMENTATION The way to go was to use a more simple type of active contour (also known as snake) – an approach where the contour behaves according to several conditions. The contour iteratively converges towards the contour of the vessel lumen. Moreover, what the algorithm does is to give every point on the contour a certain energy depending on the underlying pixel intensity, as well as position compared to its adjacent contour points. This is basically how it works: 1. A contour is initiated as a circle around the given center point. The point positions are stored in an array. 2. For every point, the underlying pixel value is checked. There are three important key values: lumen-to-outside border, Tlow , lumen mean, Tmid , and lumen-to-plaque border, Thigh . The point is given energy according to a function that has its max (1) at Tmid , is zero at Tlow and Thigh and is negative if lower than Tlow or higher than Thigh . 3. The point is also pulled towards its two closest neighbors to make sure that the ”tension” between points strives to be uniform around the whole contour. The farther away two points are from one another, the more powerful the pulling force will be. 4. If the energy, derived from step 2 is positive, the point will move outwards, expanding the contour. If it is negative, the contour will contract. The movement direction of any point is a mix between the direction away from the center point and the normal of the contour at the current point. The normal is given by the vector, which is orthogonal to the vector between a points left neighbor minus its right neighbor. 5. When all points are moved a new center point is calculated, based on the geometrical center of the contour. 6. The area inside the contour is calculated and compared to the area from previous iteration. If the difference is small, the algorithm stops, since the contour hopefully has converged to the lumen contour. 7. The array, holding all points, is returned. The final algorithm adjusts for more than just the above mentioned situations. For instance, sometimes the centerline goes through plaque, which will result in bad center points for certain MPR. If this happens, the movement of the contour will be inverted, which is bad. Therefore, the first thing to examine is if the poorly placed center point can be saved. If the center point value is of plaque, the initialized contour points are checked to see if any of them are outside plaque. If so, the center point is moved there instead – preferably to the point with a value closest to Tmid . If not, it is more desirable to return no contour at all and say that this was a hopeless case, rather than giving an erroneous result. Chapter 5 Results 5.1 Bone subtraction segmentation The following section contains the result achieved with the method described in section 4.4. The method was tried out on several data sets with various results. Not all of them are shown in this report. It is obvious that the better the image is, the better the segmentation will be. Image noise, bad contrast agent distribution and tooth fillings are all lowering the possibility of doing a good segmentation. 34 CHAPTER 5. RESULTS Figure 5.1: Final segmentation of a CT head and neck image, with the combined bone subtraction and vessel finding algorithm. These images are captured from Sectra’s internal tool VRTTest. 5.1. BONE SUBTRACTION SEGMENTATION 35 36 CHAPTER 5. RESULTS Figure 5.2: The same segmentation shown with voxels of lower HU included and excluded respectively. This is good if only either the cerebral vessels or carotid vessels are supposed to be examined. 38 CHAPTER 5. RESULTS Figure 5.4: Segmentation of the carotid and vertebral vessels. The zoomed in figure shows that the patient suffers from stenosis near the carotid bifurcation. 5.2. VESSEL ANALYSIS 39 5.2 Vessel analysis This section holds the results of the 2D vessel segmentation algorithm. Also here, many data sets were used for testing, but not all of them are shown in the result images. Testing indicates that the algorithm certainly works well for most cases, but suffers from problems with heavily varying intensities in the MPR (mostly caused by noise). The exact speed of the algorithm is difficult to establish, partly because it varies a lot depending on the vessel size, partly because it is so fast. Most of the time, a final contour is calculated in the matter of milliseconds. The contour in the following images was calculated with C++ code. Figure 5.5: Successful contour calculation of the common and interior carotid vessel. The lower image shows that the vessel is diagnosed with stenosis with a risk factor of 53-65% 5.2. VESSEL ANALYSIS 41 Figure 5.7: More results showing that the algorithm is capable of segmenting: large, noisy vessels (top); vessels that are very small and close to another vessel (second); highly calcified vessels (bottom two). 42 CHAPTER 5. RESULTS 5.3 Evaluation Since there are few people on Sectra that have extended medical background, it has been difficult to determine if a result is good or not. Also, many people that do have medical background are not used to look at 3D images and might get confused. My main source of evaluation has been Chunliang Wang, employee at Sectra and researcher at CMIV, having both a medical and philosophical doctors degree. According to him, the final results of the vessel segmentation looks good. My other source of evaluation is a doctor in Holland, whom I have not met in person. My results were brought there during a business trip and he meant that the results looked good enough to invest money into. If this segmentation could have been used, more or less automatically, for the last 10 patients that had a CT-scan on the head and neck area, they would have done so. Overall, the registration approach is to slow and does not produce results that are good enough. However, the combined approach with region growing and morphology does produce results that could be used for medical examinations. Sectra mentioned to present this thesis as work in progress and will hopefully develop the method further. Chapter 6 Conclusion 6.1 Discussion Developing tools for medical imaging is very challenging, due to many reasons. First of all, the results have to be very good and reliable. If they are not, doctors might not be able to make a correct diagnosis. Secondly, input images may vary a lot from patient to patient, therefore making some algorithms very parameter sensitive and difficult to automate. As I have stated several times already, it is important to get results that are not misleading. In terms of blood vessel segmentation, this is mainly showing parts of vessels that should not be there, i.e., visualizing the blood vessel lumen thicker than it really is. The reason for this is that the doctors still only use the 3D visualizations as a pre-step in the examination. If they suspect there might be a problem, further investigations will be made based on the pure 2D slices. Removing too much of a vessel is also a problem, though it is not as misleading as removing too little. If a vessel looks thinner than it should, it can easily be confirmed, from the 2D images, whether it really is or not. Having this in mind and comparing the methods of finding the blood vessels themselves and removing the bone, it is possible to draw a conclusion. The first technique involves tracking down either the edge of the vessels in some way or finding their center lines and growing these outwards. But how can we decide if the right amount of vessel is captured during the segmentation? Both the outcome of getting too much and too little is possible. The limit of which within a vessel exists has to be defined during the segmentation process, thus it can be difficult to adjust the results during inspection to see if the border thresholds were chosen well. However, when removing the bone surrounding the vessels, the only way the vessels themselves might be erroneously visualized is if parts of them are masked away together with adjacent bone. Of course we want to keep as much of the vessels as possible, but this method is superior due the fact of two things: Data is never, in any way, added to the final image, only removed. Also, only vessels that are in close proximity to the bone mask risk being partly removed. Just by knowing which vessels are in the risk zone makes it possible to see if they are badly segmented or indeed suffers from stenosis etc. There is obviously the case where there are still pieces of bone tissue left after the segmentation. However, these cases might not even be disturbing, and if they are, they are probably located in an area where it is not as important to investigate blood vessels, compared to the Carotid vessels and inside the brain. I tried to find a way to be able to segment the blood vessels in both head and neck simultaneously. The most difficult part to segment is the lower skull base: the carotid canal etc. As I have learned during this project, this area is not that interesting to look at during a 3D-visualization, due to the difficulties of getting good segmentations results there, which could also explain why there are almost no research on doing segmentation for head and neck simultaneously. One conclusion that I have come to is that if the data set is bad, the result will be bad, no 44 CHAPTER 6. CONCLUSION matter how good your segmentation algorithm is. Bad data can depend on movement from the patient or bad timing with the contrast agent. Unfortunately, this seems to be a quite common problem. If the contrast agent is at wrong position when capturing the image, small vessels will disappear completely. Another big problem is dental restorations. Old dental fillings are made of amalgam, which the x-rays bounce against. The result is a fan like shape with high voxel intensities, around the tooth region.These artifacts can be difficult to remove but fortunately, the blood vessels around this area are not as important as many others. It can still be annoying and obscure the visualization. A problem with the registration approach is that it is initially made for smaller image adjustments, such as to counter patient movements. When doing BSCTA, the patient is first scanned without contrast agent injected into the vessels, and then with it. At that time, the patient will most definitely have moved slightly. The images are therefore aligned with registration before their difference is calculated. But the variation from patient to patient can be huge, both regarding global size, position and noise, but also the inner structure of bone tissue. This can make it difficult to match images from different patient well. A solution to this is to use an atlas of bone masks, proposed in [18]. Unfortunately, I did not have the time to create such an atlas. However, the largest issue is knowing what to mask away after the registration is completed. The derived transform could be applied to any mask, though, if the mask is just a non-detailed blob, it will not matter whether the registration is good or not. The ultimate mask would be a perfect segmentation of all the bone from the patient in the moving image. But this is what we want to achieve by doing a registration in the first hand. So, it is kind of a Catch-22 – the paradoxial situation where we cannot get a segmentation of the bone until we have a segmentation of the bone. Of course, there are ways to get a bone mask, for instance, by manually painting the mask slice by slice. Another way is to extract the mask from an image volume where the patient was scanned without contrast agent in the vessels. In that case, there is no intensity overlap and a simple threshold segments the image as needed. Unfortunately, I only had access to a single CT image of this type. Despite this fact, one should not assume that the registration will be flawless just because the mask is. As said, placement of tissue varies a lot between patients. For instance, there are those who have a lot of space between the vertebral arteries and the vertebras. Others have almost none, which gives the problem where it looks like the arteries and vertebras are one unit. If the first case is matched to the second, the edge of the vertebras might get stretched to also cover the artery, thus removing parts of it during mask application. The confined region growing approach results in some very good segmentations. The algorithm is also very quick. The problem is its lack of automation. For every image that will be segmented, a number of thresholds have to be specified, which in itself is time-consuming. 6.2 Future work Registration is a trendy technique to use for medical image segmentation. The biggest problem, as for now, is that when used for bone removal, the risk of also removing vessels is imminent. Even though it is mostly possible to see if the vessel was removed by the algorithm (and not hidden due to a vascular defect) the result can be misleading. If the registration could be combined with a method to limit the masking, that would be a huge improvement. The second problem is the time it takes to do registration on huge volumes. If the process could be implemented to take advantage of the parallelism in modern graphics processors, the computation time could probably be decreased to only a fraction of that with a CPU. Blood vessel segmentation in head and neck should also probably be treated differently, as H. Shim et al [23] propose with their partition-based extraction of the cerebral arteries. This is 6.2. FUTURE WORK 45 due to the fact that the vessels in the head are not very similar to the ones in the neck. This of course leads to the necessity to find the border between the two regions, which could be future work for this project. Also, to be able to automate the thresholds for the region growing approach would be a huge benefit. Bibliography [1] C. Kirbas and F. Quek, “A review of vessel extraction techniques and algorithms,” ACM Comput. Surv., vol. 36, pp. 81–121, June 2004. [2] O. Wirjadi, “Survey of 3d image segmentation methods,” 2007. [3] O. Cuisenaire, S. Virmani, M. E. Olszewski, and R. Ardon, “Fully automated segmentation of carotid and vertebral arteries from contrast enhanced cta,” pp. 69143R–69143R–8, 2008. [4] M. Freiman, L. Joskowicz, N. Broide, M. Natanzon, E. Nammer, O. Shilon, L. Weizman, and J. Sosna, “Carotid vasculature modeling from patient ct angiography studies for interventional procedures simulation,” International Journal of Computer Assisted Radiology and Surgery, vol. 7, no. 5, pp. 799–812, 2012. [5] H. A. F. G. van Andel, H. W. Venema, G. J. Streekstra, M. van Straten, C. B. L. M. Majoie, G. J. den Heeten, and C. A. Grimbergen, “Removal of bone in ct angiography by multiscale matched mask bone elimination,” Medical Physics, vol. 34, no. 10, pp. 3711–3723, 2007. [6] D. Morhard, C. Fink, C. Becker, M. Reiser, and K. Nikolaou, “Value of automatic bone subtraction in cranial ct angiography: comparison of bone-subtracted vs. standard ct angiography in 100 patients,” May 2008. [7] M. van Straten, M. Schaap, M. L. Dijkshoorn, M. J. Greuter, A. van der Lugt, G. P. Krestin, and W. J. Niessen, “Automated bone removal in ct angiography: Comparison of methods based on single energy and dual energy scans,” Medical Physics, vol. 38, no. 11, pp. 6128–6137, 2011. [8] WikiRadiography, “Hounsfield unit.” http://www.wikiradiography.com/ page/Hounsfield++unit. Online; accessed 2013-04-24. [9] P. Mattsson and A. Eriksson, “Segmentation of carotid arteries from 3D and 4D ultrasound images,” Master’s thesis, Linköping University, SE-581 83 Linköing, Sweden, 2002. LiTH-ISY-EX-3279. [10] Diffen, “Ct scan vs mri.” www.diffen.com/difference/CT_scan_vs_MRI. Online; accessed 2013-04-25. [11] S. Pan and M. Kudo, “Original paper: Segmentation of pores in wood microscopic images based on mathematical morphology with a variable structuring element,” Comput. Electron. Agric., vol. 75, pp. 250–260, Feb. 2011. [12] K. Zhao et al, “Auto-threshold bone segmentation based on ct image and its application on cta bone-subtraction,” Photonics and Optoelectronic (SOPO), pp. 1–5, 2010. BIBLIOGRAPHY 47 [13] B. Bouraoui, C. Ronse, J. Baruthio, N. Passat, and P. Germain, “3D segmentation of coronary arteries based on advanced mathematical morphology techniques,” Computerized Medical Imaging and Graphics, vol. 34, pp. 377–387, 2010. [14] M. Kass, A. Witkin, and D. Terzopoulos, “Snakes: Active contour models,” International Journal of Computer Vision, vol. 1, pp. 321–331, Jan. 1988. [15] S. Grosskopf, C. Biermann, K. Deng, and Y. Chen, “Accurate, fast, and robust vessel contour segmentation of CTA using an adaptive self-learning edge model,” Medical Imaging 2009: Physics of Medical Imaging, vol. 7258, 2009. [16] R. Marcin, “Vessel Detection Method Based on Eigenvalues of the Hessian Matrix and its Applicability to Airway Tree Segmentation,” Oct. 2009. [17] M. Avriel, Nonlinear programming : analysis and methods. Publications, 2003. Mineola, NY: Dover [18] H. A. Kirisli, M. Schaap, S. Klein, L. A. Neefjes, A. C. Weustink, T. Van Walsum, and W. J. Niessen, “Fully automatic cardiac segmentation from 3d cta data: a multi-atlas based approach,” pp. 762305–762305–9, 2010. [19] P. H.-O. Friman O, Hindennach M, “Multiple hypothesis template tracking of small 3d vessel structures,” Medical Image Analysis, pp. 160–171, 2010. [20] S. Behrens, “Automatic level set based cerebral vessel segmentation and bone removal in ct angiography data sets,” 2012. [21] A. M. Alyassin and G. B. Avinash, “Semiautomatic bone removal technique from CT angiography data,” in Society of Photo-Optical Instrumentation Engineers (SPIE) Conference Series (M. Sonka and K. M. Hanson, eds.), vol. 4322 of Society of Photo-Optical Instrumentation Engineers (SPIE) Conference Series, pp. 1273–1283, July 2001. [22] C. Wang and Ö. Smedby, “Coronary artery segmentation and skeletonization based on competing fuzzy connectedness tree,” in Medical Image Computing and Computer-Assisted Intervention MICCAI 2007, vol. 4791 of Lecture Notes in Computer ’ Science, pp. 311–318, Springer Berlin Heidelberg, 2007. [23] H. Shim, I. D. Yun, K. M. Lee, and S. U. Lee, “Partition-based extraction of cerebral arteries from ct angiography with emphasis on adaptive tracking,” in Proceedings of the 19th international conference on Information Processing in Medical Imaging, IPMI’05, (Berlin, Heidelberg), pp. 357–368, Springer-Verlag, 2005.