The aim is to align multiple images captured from the same object in different perspective or using different imaging modality, getting benefits from each image to have more information(clearer in detail or larger in area) to the object.
One example is using different imaging modality in order to locate AVM tumor with more accuracy. 3D Dyna CT reflects brain vessels much clearer, as the blood contains contrast when capturing; 3D MRA (or X-ray CT) imaging does not need contrast injection and it avoids the distortion of vessels when using DSA or Dyna CT method, and it contains more structural information of head than Dyna CT. So the combination of imaging modalities can achieve the goal of locating AVM and its vessel flow direction with enough accuracy in 3D view.
This project includes several parts.
1. Image preprocessing
(1) Crop unnecessary parts in images to reduce size.
(2) Use Dicom information to resize 3D images (resize xy plane according to slice thickness, resize between different modalities).
(3) Optional de-noising if image quality does not meet qualification
2. Vessel segmentation and construct graph network
(2) Use graph network in describing features of CTA and MRA data.
(a) Use "open snake tracing system" to acquire the tracing result of images (a list of nodes with location and largest included sphere radius of each node)
Or (b) Use connectivity between each slice in 3D image to construct a graph network, and trim unnecessary nodes and links to simplify.
3. Register images
(1) Manually move and rotate reference and matching image close enough.
(2) Register between branches
(a) Calculate Network Structure Index (NSI) of each node in graph network.
(b) Find nodes with high NSI and degree more than 2 (possible branch split points). Compare these nodes in two images and register node pair if they are close enough. Neglect the node if there is no pair available in another image.
(c) According to node pairs, segment branches and calculate the property of each branch such as volume area and tortuosity.
(d) Based on location and branch properties, pair branches in two images.
(3) Register between feature nodes in each branch
(a) Based on my circuit conversion theory, convert each node in a branch to a resistance, an inductance and a voltage pulse, and convert branch split point to a voltage source.
(b) Calculate voltage of each node.
(c) The real part of voltage describes the volume size and the imaginary part of voltage describe the tortuosity trend in each branch. Find feature points in a branch to split branch to sub-branches. Feature points are turns in a twisty branch determined by imaginary series, and shrinking or expanding location in a branch determined by sudden change of real part. Set up node pairs to the feature points.
(4) Register between common nodes in each sub-branch
(a) When feature nodes in a twist branch paired, other nodes in a matching sub-branch are paired according to voltage deviation between nodes in based sub-branch. Deviation of voltage is converted to deviation of distance away from base node.
(b) Combine the sub-branch pair result in a branch.
5. Display results
For each node in matching image, paint the deviation of distance towards nodes paired in reference image.
To project 3D Dyna CT into 2D view using maximum intensity projection(MIP) and align with 2D DSA image.
Using Gaussian Process Regression method to register nodes with higher accuracy.
For DSA and MRA
(1) Find seeds in arteries and veins from DSA, using region growth algorithm to expand areas of combined vessel data. Paint vessels with colors.
(2) Convert 3D vessels to point cloud data for better evaluation.
Last update: 2016.6.27
Code in github: https://github.com/clatfd/avm
Report in Chinese: