
This application claims the benefit of U.S. Provisional Application No. 60/322,038, filed Sep. [0001] 14, 2001, which is incorporated herein by reference.
BACKGROUND OF THE INVENTION

The present invention relates to the art of diagnostic imaging of small pulmonary nodules. In particular, the present invention is related to analyzing and manipulating computed tomography scans to: segment the lungs, measure lung volume, locate and determine the size of the nodules without explicit segmentation, register the nodules using a rigidbody transformation, and removing the pleural surface from juxtapleural nodules in thresholded images. [0002]

Lung cancer is the leading cause of cancer deaths among the population in the United States. Each year there are about 170,000 newly diagnosed cases of lung cancer and over 150,000 deaths. More people die of lung cancer than of colon, breast, and prostate cancers combined. Despite the research and improvements in medical treatments related to surgery, radiation therapy, and chemotherapy, currently the overall survival rate of all lung cancer patients is only about 14 percent. Unfortunately the survival rate has remained essentially the same over the past three decades. The high mortality rate of lung cancer is caused by the fact that more than 80% lung cancer is diagnosed after it has metastasized. Patients with early detection of lung cancer followed by proper treatment with surgery and/or combined with radiation and chemotherapy can improve their fiveyear survival rate from 13 percent to about 41 percent. Given that earlierstage intervention leads to substantially higher rates of survival, it is therefore a major public health directive to reduce the mortality of lung cancer through detection and intervention of the cancer at earlier and more curable stages. [0003]

The development of the computed tomography (CT) technology and postprocessing algorithms has provided radiologists with a useful tool for diagnosing lung cancers at early stages. However, current CT systems have their inherent shortcomings in that the amount of chest CT images (data) that is generated from a single CT examination, which can range from 30 to over 300 slices depending on image resolution along the scan axial direction, becomes a huge hurdle for the radiologists to interpret. Accordingly, there is a constant need for the improvement and development of diagnostic tools for enabling a radiologist to review and interpret the vast amount of information that is obtained through a CT examination. [0004]

International Publication No. WO 01/78005 A2 discloses a system and method for three dimensional image rendering and analysis, and is incorporated herein by reference. The system performs a variety of tasks that aid a radiologist in interpreting the results of a CT examination. [0005]

One task that radiologists focus on is segmenting the lung region from the image of a single slice obtained from the CT examination. In the prior art, some have suggested using a linear discriminant function and morphological filtering to automatically segment the lungs (S. Hu, E. A. Hoffman, and J. M. Reinhardt, “Automatic Lung Segmentation for Accurate Quantitation of Volumetric XRay CT Images,” [0006] IEEE Transactions on Medical Imaging, Vol 20, No 6, June 2001, which is incorporated herein by reference) while others have used mean and median filtering to remove the streaking artifacts due to excessive xray quantum noise (J. Hsieh, “Generalized Adaptive Median Filters and their Application in CT,” SPIE, Vol 2299, 1994; J. Hsieh, “Adaptive Trimmed Mean Filter for CT Imaging,” SPIE, Vol 2299, 1994 which is incorporated herein by reference).

Radiologists also study the location and size of the pulmonary nodules in the CT scan. It is preferred if the radiologist could perform this analysis without the use of explicit segmentation. In some prior work, the location of a nodule was determined by finding the center of mass of the nodule through an iterative correlationbased procedure (A. P. Reeves, W. J. Kostis, D. F. Yankelevitz, C. I. Henschke, “Analysis of Small Pulmonary Nodules without Explicit Segmentation of CT images,” [0007] Radiological Society of North America—2000 Scientific Program, vol. 217, pgs. 2434, November 2000 which is incorporated herein by reference). The method works for isolated pulmonary nodules, but fails on nodules attached to the pleural surface.

Radiologists also estimate a measurement of doubling time of a nodule by registering two separate images of the nodule taken at two different times (time1 and time2). This analysis requires that the time1 and time2 nodules be registered correctly so that the growth can be properly measured. Other objects such as vessels and bronchial tubes must also be registered together. This results in their absence in the difference image and little effect on the growth measurement. Previously, two nodules were registered by finding the centers of mass of the nodules and translating the image accordingly (A. P. Reeves, W. J. Kostis, D. F. Yankelevitz, C. I. Henschke, “Analysis of Small Pulmonary Nodules without Explicit Segmentation of CT images,” [0008] Radiological Society of North America—2000 Scientific Program, vol. 217, pgs. 2434, November 2000 which is incorporated herein by reference). However, this analysis did not guarantee that the two nodules would be correctly orientated, and that the other objects in the image would registered because these objects might be rotated about the nodule. Some have registered the nodules by performing a maximization search of the mutual information metric over the rigidbody transformation parameters (F. Maes, A. Collignon, D. Vandermeulen, G. Marchal and P. Suetens, “Multimodality image registration by maximization of mutual information,” IEEE Transactions on Medical Imaging, vol. 16, no. 2, pgs. 187198, April 1997; Takagi, N.; Kawata, Y.; Nikvi, N.; Morit, K.; Ohmatsu, H.; Kakinuma, R.; Eguchi, K.; Kusumoto, M.; Kaneko, M.; Moriyama, N. “Computerized characterization of contrast enhancement patterns for classifying pulmonary nodules” Image Processing, 2000. Proceedings. 2000 International Conference on, vol. 1, pgs. 188191, 2000 which are incorporated herein by reference).

Radiologists also need to remove the pleural surface from juxtapleural nodules in CT images. In some prior work, threedimensional morphological filtering and mathematical moments were used to segment a juxtapleural nodule from pleural surface in a binary image (A. P. Reeves, W. J. Kostis, “ComputerAided Diagnosis of Small Pulmonary Nodules,” [0009] Seminars in Ultrasound, CT, and MRI, vol. 21, no. 2, pgs. 116128, April 2000 which is incorporated herein by reference).
SUMMARY OF THE INVENTION

The present invention is directed to diagnostic imaging of small pulmonary nodules. There are two main stages in the evaluation of pulmonary nodules from Computed Tomography (CT) scans: detection, in which the locations of possible nodules are identified, and characterization, in which a nodule is represented by measured features that may be used to evaluate the probability that the nodule is cancer. Currently, the most useful prediction feature is growth rate, which requires the comparison of size estimates from two CT scans recorded at different times. The present invention includes methods for detection and feature extraction for size characterization. The invention focuses the analysis of small pulmonary nodules that are less than 1 centimeter in size, but is also suitable for larger nodules as well. [0010]

For the purpose of Computer Aided Diagnosis (CAD), pulmonary nodules are dichotomized into attached nodules and isolated nodules based on their location with respect to other solid lung structures. Attached nodules are adjacent to some larger solid structure, such as the pleural surface. Isolated nodules consist of both wellcircumscribed nodules and nodules that are larger than all adjacent structures, such as blood vessels or bronchi. Nodules themselves may be solid, nonsolid or partsolid. The analysis of a CT scan for the existence and study of pulmonary nodules generally entails the following: [0011]

1. Detection [0012]

(a) Identify the lung regions and main bronchi from thoracic CT images [0013]

(b) Separate the lungs into two major regions: (1) the lung parenchyma and (2) the lung surface region, including the pleural surface and major airways. [0014]

(c) Identify possible locations of isolated nodules in the lung parenchyma region and identify possible locations of attached nodules in the in the lung surface regions. [0015]

2. Characterization [0016]

(a) Starting with a single location point within a possible nodule, identify the nodule region in the CT images. This entails locating the geometric center of the nodule and approximating its size. [0017]

(b) Given the location and approximate size of a nodule, compute characteristic features of the nodule, including robust size estimates. [0018]

In connection with the overall methodology of analyzing CT scans, the present invention includes submethods for the following: [0019]

1. The Segmentation of Whole Lung CT Scans into Lung Parenchyma and Lung Surface Regions [0020]

The first preprocessing stage in CT lung image analysis is to obtain the regions of interest from the whole lung scans. The lung region consists of all tissue found within the pleural surface, including lung parenchyma, vessels, and possibly nodules. Features of this approach are the partitioning of the lung into three major regions and the tailoring of the segmentation algorithm for each region. In addition a distinction is made between the central lung parenchyma and the region of the of the lung parenchyma near to the lung walls. A properly segmented lung region greatly reduces the search space of an entire CT scan. [0021]

2. The Characterization of Lung Air Volume and Inspiration Both From the Entire Parenchyma Region and from Single Axial CT Images [0022]

The total volume of the lungs is estimated from the whole lung scans. In addition the change in volume between different scans due to changes in inspiration is also addressed. [0023]

3. The Automatic Location and Size Characterization of Nodules [0024]

An algorithm finds the center and approximate size of pulmonary nodules in CT images without the use of explicit segmentation. The algorithm has a weighting function that locates the center of mass of the nodule. A second weighting function, centered on the location of the first weighting function, estimates the size of the nodule. The process is repeated with weighting functions of increasing size until the size of the nodule region is reliably determined. The algorithm works for both isolated nodules and nodules attached to the walls. [0025]

The algorithm is designed for use on images that are resampled from highresolution CT scans (1 mm slice thickness) into an isotropic voxel space. Such a system could be useful in helping radiologists analyze pulmonary nodules. In the CT image browser, the radiologist could click on a nodule and, using the algorithm, the computer could automatically locate the center and size of the nodule. Using this information, the computer then clips out a region of interest for the nodule and performs some nodule characterization analysis and perhaps some 3D visualization. [0026]

4. The Registration of Nodules from Two Scans [0027]

An algorithm registers two different scans of a nodule region. A threedimensional rigidbody transformation of one scan is made to optimally match the location and orientation (6degrees of freedom) of the second scan. Powell's method is the preferred search strategy. [0028]

The analysis of pulmonary nodules without explicit segmentation estimates a measurement of doubling time by applying a weighted function on the difference image of the two nodules. The analysis requires that the time1 and time2 nodules be registered correctly so that the growth can be properly measured. Other objects such as vessels and bronchial tubes must also be registered together, resulting in their absence in the difference image and little effect on the growth measurement. [0029]

5. The Segmentation of Nodules Attached to the Pleural Surface. [0030]

An algorithm segments nodules that are attached to the pleural surface from the pleural surface. Starting from a location within a nodule, the direction of the pleural surface is determined. A cutting plane is then iteratively moved towards the surface until the volume of the region behind the wall suddenly increases. The increase in volume indicates that the pleural surface has been reached. The orientation and location of the plane is then preferably optimized by a hill climbing procedure. [0031]

The algorithm removes the pleural surface (and any other extraneous objects) from a highresolution image containing a juxtapleural nodule. The algorithm is not only required to perform a good segmentation, but expected to perform the same segmentation when given different scans of the same nodule. This property is necessary because the resulting segmented nodule will be used for the characterization and analysis of the nodule. If the segmentation is not performed consistently between images scanned at different times, then the doubling time estimation will not be accurate. [0032]

A preferred embodiment of the present invention is a method and apparatus for generating a lung mask for segmenting a lung image from voxel data containing the lung image, noise, solid components and surrounding background information. The apparatus of the invention is a masking unit configured with the teachings of the method of the invention. The invention can also be practiced on a machine readable medium. The method includes initially applying a median filter and a mean filter to the voxel data to reduce noise. The noise reduced voxel data is then thresholded to identify solid components and other structures. The surrounding background in the noise reduced voxel data is identified and deleted. The connected components of the voxel data are labeled, and the largest connected components are determined to select a lung region having a geometric form. The voxel data is morphological filtered to refine the geometric form of the lung region. [0033]

In a preferred embodiment, the voxel data is associated with a plurality of slices through a patient's lung with the slices beginning at about the patient's shoulders and the application of the median filter and the mean filter is performed for the first 25 percent of the plurality of slices only to substantially reduce the computation time. Preferably the median filter has a size of 4×4, and the mean filter has a size of 1×3. Preferably the voxel data in step is thresholded at a gray level of about 500. Preferably the largest connected components are selected to be associated with more than about 1 percent of the voxel data. Preferably the voxel data is associated with a plurality of slices for the morphological filtering with the slices being divided into a first end region, a middle region, and a second end region. The morphological filtering is preferably performed with 2D circular filter having a first diameter in the first end region and the second end region while being performed with 2D circular filter having a second diameter which is about twice the first diameter in the middle region. [0034]

The present invention also includes a method and apparatus for measuring lung volume from a segmented lung image. The lung image is obtained from a scan which includes a plurality of slices of voxel data having a gray level value and a volume associated therewith. The apparatus of the invention is a lung volume measuring unit configured with the teachings of the method of the invention. The invention can also be practiced on a machine readable medium. The method includes initially generating a matrix of entries from the segmented lung image. The matrix includes a plurality of columns and a plurality of rows. Each of the plurality of columns represent the gray level value and each of the plurality of rows represent one of the plurality of slices in the scan with the entries corresponding to the number of times that the gray level occurs in the corresponding slice. The number of voxels in the segmented lung image is next determined from the matrix entries. The number of voxels in the segmented lung image is multiplied by the volume of each voxel. [0035]

The present invention also includes a method and apparatus for measuring volume of tissue in a segmented lung image. The lung image is obtained from a scan which includes a plurality of slices of voxel data having a gray level value and a volume associated therewith. The apparatus of the invention is a lung tissue measuring unit configured with the teachings of the method of the invention. The invention can also be practiced on a machine readable medium. The method includes initially generating a matrix of entries from the segmented lung image. The matrix includes a plurality of columns and a plurality of rows. Each of the plurality of columns represent the gray level value and each of the plurality of rows represent one of the plurality of slices in the scan with the entries corresponding to the number of times that the gray level occurs in the corresponding slice. The sum of tissue of voxels in the segmented lung image is next determined from the matrix entries. The sum of tissue of voxels in the segmented lung image is multiplied by the volume of each voxel. The sum of tissue of voxels is preferably calculated by summing the product of each matrix entry multiplied by the corresponding gray level value divided by a gray level value assigned for tissue. [0036]

The present invention also includes a method and apparatus for finding the location, P′, and size, r′, of a pulmonary nodule in a highresolution computed tomography (CT) image. The apparatus of the invention is a nodule finding unit configured with the teachings of the method of the invention. The invention can also be practiced on a machine readable medium. In the method, a set of initial processing parameters including an initial location, P[0037] _{1}, an initial size, r_{1}, and target value, T, is initially selected. An initial new location P_{i}′ of the nodule is computed with a locator template function. After incrementally increasing size, r_{i}, a new location P_{i}′ of the nodule is computed with the locator template function, and a size metric is computed with a sizing template function. The size, r_{i}, is incrementally increased while determining a new location P_{i}′ of the nodule and computing the size metric until the size metric is less than the target value. The location, P′, and the size, r′, is then returned from the previous iteration of increasing size, r_{i}.

A preferred method for finding the location, P, and size, r, of a pulmonary nodule in a highresolution computed tomography image initially includes windowing the image to ignore bone structures, and selecting a locator template function and a sizing template function. A set of initial processing parameters including: an initial location, P; size, r; and termination criteria is selected. A search is performed to determine a maximum response of the locator template function. A response of the sizing template function is determined and compared to the termination criteria. If the termination criteria has not been satisfied, the size, r, is incrementally increased, the response functions are determined and compared to the termination criteria. Once the termination criteria are satisfied the location, P, and size, r, of the nodule are outputted. [0038]

In the preferred method for finding the location, P, and size, r, of a pulmonary nodule in a highresolution computed tomography image, preferably the image at intensities over about 1000 are clipped to window the image. Preferably the locator template function is either; a Gaussian template function, a Laplacian of the Gaussian template function, or a difference of Gaussians template function. The template function preferably has at least four parameters corresponding to the xlocation, ylocation, zlocation, and radius. The initial location, P, can generally be either calculated from the image or specified by a user. Preferred methods for searching include a hill climbing method and Powell's method. [0039]

The present invention also includes a method and apparatus for registering 3d images of a pulmonary nodule from a highresolution computed tomography (CT) scans. The images include a first image (im[0040] _{1}) obtained at time1 and a second image (im_{2}) obtained at time2, and are in a floating point pixelformat associated with a 6dimensional parameter space. The apparatus of the invention is a registering unit configured with the teachings of the method of the invention. The invention can also be practiced on a machine readable medium. The method includes calculating initial rigidbody transformation parameters for a rigidbody transformation on the first image (im_{1}). The optimum rigidbody transformation parameters are determined by calculating a registration metric between the second image (im_{2}) and the rigidbody transformation on the first image (im_{1}). A registered image is generated from the optimum rigidbody transformation parameters.

In a preferred method for registering 3d images of a pulmonary nodule from a highresolution computed tomography (CT) scans, the calculation of the initial rigidbody transformation parameters is preferably preceded by masking one of the images by setting pixels to a background value. Preferably the background value is about −1000. The registration metric is generally either minimized or maximized. In one preferred embodiment, the registration metric is preferably calculated by: [0041]

transforming the first image (im[0042] _{1}) with the initial rigidbody transformation parameters to obtain a transformed first image (im_{1t});

calculating the registration metric as a correlation (C.) between the transformed first image (im[0043] _{1t}) and the second image (im_{2}); and

searching for the maximum correlation (C.) in the 6dimensional parameter space. [0044]

In another preferred embodiment, the registration metric is preferably calculated by: [0045]

transforming the first image (im[0046] _{1}) with the initial rigidbody transformation parameters to obtain a transformed first image (im_{1t)};

calculating the registration metric as a meansquareddifference (MSD) between the transformed first image (im[0047] _{1t}) and the second image (im_{2}); and

searching for the minimum meansquareddifference (MSD) in the 6dimensional parameter space. [0048]

The transforming of the first image (im
[0049] _{1}) to obtain the transformed first image (im
_{1t}) is preferably a mapping of a point v in 3d space to a point v′ in transformed space defined by:
${v}^{\prime}={R}_{x}\ue89e{R}_{y}\ue89e{R}_{z}\ue89ev+\left[\begin{array}{c}{t}_{x}\\ {t}_{y}\\ {t}_{z}\end{array}\right]$

wherein R
[0050] _{x}, R
_{y}, and R
_{z }are rotation matrices defined as:
${R}_{x}=\left[\begin{array}{ccc}1& 0& 0\\ 0& \mathrm{cos}\ue8a0\left({r}_{x}\right)& \mathrm{sin}\ue8a0\left({r}_{x}\right)\\ 0& \mathrm{sin}\ue8a0\left({r}_{x}\right)& \mathrm{cos}\ue8a0\left({r}_{x}\right)\end{array}\right]$ ${R}_{y}=\left[\begin{array}{ccc}\mathrm{cos}\ue8a0\left({r}_{y}\right)& 0& \mathrm{sin}\ue8a0\left({r}_{y}\right)\\ 0& 1& 0\\ \mathrm{sin}\ue8a0\left({r}_{y}\right)& 0& \mathrm{cos}\ue8a0\left({r}_{y}\right)\end{array}\right]$ ${R}_{z}=\left[\begin{array}{ccc}\mathrm{cos}\ue8a0\left({r}_{z}\right)& \mathrm{sin}\ue8a0\left({r}_{z}\right)& 0\\ \mathrm{sin}\ue8a0\left({r}_{z}\right)& \mathrm{cos}\ue8a0\left({r}_{z}\right)& 0\\ 0& 0& 1\end{array}\right].$

The initial rigidbody transformation parameters preferably include six parameters (tx,ty,tz,rx,ry,rz) respectively defined as translation in x, translation in y, translation in z, rotation about the xaxis, rotation about the yaxis, and rotation about the zaxis. Preferably the initial rotation parameters (rx,ry,rz) are all set to zero, and the initial translation parameters (tx,ty,tz,) are set so that the nodule in the first image (im[0051] _{1}) overlaps the nodule in the second image (im_{2}) during the initial calculation of the registration metric. The initial translation parameters (tx,ty,tz,) can be set to a difference between the center of the first image (im_{1}) and the center of the second image (im_{2}). Preferably the initial translation parameters (tx,ty,tz) are set to a difference between the center of mass of the first image (im_{1}) and the center of mass of the second image (im_{2}). The searching is can be conducted by calculating the correlation (C) or meansquareddifference (MSD) for every possible set of rigidbody transformation parameters. Preferably the searching is conducted by either a HillClimbing search method or by Powell's method.

The present invention also includes a method and apparatus for removing extraneous matter from an image having a juxtapleural nodule. The apparatus of the invention is a processing unit configured with the teachings of the method of the invention. The invention can also be practiced on a machine readable medium. The method includes providing an initial location P′. A spherical volume that fits inside the image and is centered at the initial location P′ is calculated. A center of mass, COM, of the spherical volume is calculated. An initial direction d′ directed towards the extraneous matter is determined in accordance with the following equation:
[0052] ${d}^{\prime}=\frac{\mathrm{COM}{P}^{\prime}}{\uf605\mathrm{COM}{P}^{\prime}\uf606}.$

A current location P
[0053] _{i }is initialized to be equal to the initial location P′. A current direction d
_{i }is initialized to be equal to the initial direction d′. A maximum ratio γ
_{max}, step size s, prior mass mass
_{i1}, and prior change in mass Δ
_{i1 }are initialized. The current location P
_{i }is moved by the step size s in the current direction d
_{i}. An equation defining a plane A is determined so that the plane A is normal to the current direction d
_{i }and the plane A passes through the current location P
_{i}. A current mass, mass
_{i}, is calculated of the nodule on a side of the plane A opposing that of the extraneous matter. A current change in mass Δ
_{i }is calculated by subtracting the prior mass mass
_{i1 }from the current mass mass
_{i}. A current ratio γ is calculated in accordance with the following equation:
$\gamma =\frac{{\Delta}_{i}}{{\Delta}_{i1}}1.$

The prior mass mass[0054] _{i1 }is set equal to the current mass mass_{i}. The prior change in mass Δ_{i1 }is set equal to the current change in mass Δ_{i}. The current ratio γ is compared to the maximum ratio γ_{max}. The current direction d_{i }is modified to minimize the current mass mass_{i}, and the above steps are repeated starting with moving the current location P_{i }by the step size s in the current direction d_{i }while the current ratio γ is one of less than and equal to the maximum ratio γ_{max}. The area of the nodule partitioned by the plane A is output in response to the current ratio γ being greater than the maximum ratio γ_{max}.

In the preferred method for removing extraneous matter from an image having a juxtapleural nodule, the extraneous matter can include a pleural surface. Preferably the maximum ratio γ[0055] _{max }is initialized to 0.5 and initializing the step size s is initialized to 1.5. Preferably the method also includes following the steps after the current ratio γ is determined to be greater than the maximum ratio γ_{max}:

defining the current location P[0056] _{i }as being visited;

determining on which side of the plane A the current location P[0057] _{i }is located;

terminating in reponse to the current location P[0058] _{i }not being located on a side of the plane opposing that of the extraneous matter;

defining the current location P[0059] _{i }as being part of a region of interest in response to the current location P_{i }being located on the side of the plane opposing that of the extraneous matter; and

performing these additional steps recursively using a location corresponding to at least one of six (6) onepixel moves from the current location P[0060] _{i}.

Preferably the step where the current direction d, is modified to minimize the current mass mass[0061] _{i}, and the step where the area of the nodule partitioned by the plane A is output in response to the current ratio γ being greater than the maximum ratio γ_{max }include the steps of:

calculating recursively the current mass mass[0062] _{i }of the nodule on a side of the plane A opposing that of the extraneous matter using at least one of six (6) directions and a step size s_{1 }from the current location P_{i}; and

defining the current direction d[0063] _{i }equal to the direction yielding the largest decrease in the current mass mass_{i}.

Preferably the initial location P′ is located near a center of the nodule. [0064]

For a better understanding of the present invention, reference is made to the following description to be taken in conjunction with the accompanying drawings and its scope will be pointed out in the appended claims.[0065]
BRIEF DESCRIPTION OF THE DRAWINGS

Preferred embodiments of the invention have been chosen for purposes of illustration and description and are shown in the accompanying drawings, wherein: [0066]

FIG. 1 illustrates at the top six (6) images that are selected slices from a, single computer tomography scan along with the corresponding extracted lung regions from the selected slices at the bottom; [0067]

FIG. 2 illustrates a histogram of image intensity of the lung region that includes parenchyma, vessels, and nodules and other solid structures such as bone and organs; [0068]

FIG. 3 is a table illustrating the densities of structures within the lungs; [0069]

FIG. 4 illustrates an air pocket that is not part of the lungs but has similar characteristics to the modeling of the lungs; [0070]

FIG. 5 is a lung mask generation algorithm; [0071]

FIG. 6 is a flow chart of the lung segmentation algorithm with sample images incorporated therein; [0072]

FIG. 7 illustrates on the left hand side the horizontal streaking artifacts due to beam hardening that can be reduced as shown on the right hand side with median and mean filtering; [0073]

FIG. 8 illustrates an original computer tomography scan on the left hand side with the image shown after thresholding in the center and the resulting image after the background has been identified, removed and inverted shown on the right hand side; [0074]

FIG. 9 illustrates on the left hand side a lung after thresholding without median and mean filtering and on the right hand side the image after median and mean filtering; [0075]

FIG. 10 illustrates two lungs, gas, and some noise, and that the retention of only the largest components would eliminate the unwanted regions; [0076]

FIG. 11 illustrates at the left hand side a segmented lung after thresholding but before morphological filtering, and at the right hand side the lung after morphological closing; [0077]

FIG. 12 illustrates the lungs being divided medially into three regions where large vessels are found in region [0078] 2 which require a large structuring element, and that only small vessels are found in regions 1 and 3;

FIG. 13 illustrates a table illustrating the timed execution of morphological filtering using both fixed (28 pixel diameter) and varying (28 pixel and 14 pixel diameter) structuring elements; [0079]

FIG. 14 illustrates a matrix containing the histograms of the segmented lung slices; [0080]

FIG. 15 illustrates an algorithm for finding the location and size of a nodule; [0081]

FIG. 16 illustrates a one dimensional model of a) isolated nodule next to blood vessels, and b) a nodule attached to the pleural wall; [0082]

FIG. 17 illustrates locator template functions; [0083]

FIG. 18 illustrates one dimensional examples of the maximizing locations of template functions for (ac) a Gaussian template on an isolated nodule, (df) LOG template on a nodule on the wall, and (gi) LOG template on an isolated nodule; [0084]

FIG. 19 illustrates two dimensional examples of the maximizing locations for two dimensional LOG templates of various radii on isolated and pleural nodules where the inner and outer circles represent the positive and negative regions, respectively, of the LOG template; [0085]

FIG. 20 illustrates two dimensional examples of a sizing template function of various radii which exhibit dramatic changes in the distribution of values inside the circle when the sizing template function becomes too large; [0086]

FIG. 21 illustrates a detailed algorithm for finding the location and size of a nodule; [0087]

FIG. 22 illustrates a response of the mean filter function for various sized spheres (solid intensity of 1000) versus the radius of the template function; [0088]

FIG. 23 illustrates a response of a Gaussian template function for various sized spheres (solid intensity of 1000) versus the radius of the template function; [0089]

FIG. 24 illustrates a graph of the Gaussian and the Laplacian of the Gaussian; [0090]

FIG. 25 illustrates a hill climbing search algorithm for the nodule finding algorithm; [0091]

FIG. 26 illustrates locator template functions; [0092]

FIG. 27 illustrates an algorithm for registering a first image and a second image using a rigidbody transformation; [0093]

FIG. 28 illustrates a hill climbing search algorithm for determining the best rigidbody transformation parameters for the registering algorithm; [0094]

FIG. 29 illustrates an algorithm for removing the pleural surface from juxtapleural nodules; [0095]

FIG. 30 illustrates an example of the pleural wall removal algorithm: The cut nodule is shown as dark gray white the rest of the nodule and the pleural surface are shown in light gray. (A) Given the initial location and direction, (B) the plane is moved in the direction. (C) The plane eventually intersects the pleural wall causing an increase in the size change of the cut nodule, and (D) the plane is reorientated to minimize the size of the cut nodule. At the next iteration, (E) the plane intersects the pleural wall, but this time (F) reorientating the plane to minimize the cut nodule still results in a large increase in size change. The algorithm terminates, returning the cut nodule from the previous iteration, (D); [0096]

FIG. 31 illustrates an algorithm for recursively finding the cut nodule region; and [0097]

FIG. 32 illustrates a hill climbing search algorithm for the algorithm for removing the pleural surface.[0098]
DETAILED DESCRIPTION OF THE INVENTION

A system in accordance with the present invention may include a scanner, processor, memory, display device, input devices, such as a mouse and keyboard, and a bus connecting the various components together. The system may be coupled to a communication medium, such as a modem connected to a phone line, wireless network, or the Internet. [0099]

The present invention is preferably implemented using a general purpose digital computer, microprocessor, microcontroller, or digital signal processor programmed in accordance with the teachings of the present specification, as will be apparent to those skilled in the computer art. Appropriate software coding may be readily be prepared by skilled programmers based on the teachings of the present disclosure, as will be apparent to those skilled in the software art. [0100]

The present invention preferably includes a computer program product, which includes a storage medium comprising instructions that can be used to direct a computer to perform processes in accordance with the invention. The storage medium preferably includes, but is not limited to, any type of disk including floppy disks, optical data carriers, compact discs (CD), digital video discs (DVD), magnetooptical disks, read only memory (ROM), random access memory (RAM), electically programmable read only memory (EPROM), electrically eraseable programmable read only memory (EEPROM), magnetic or optical cards, or any type of media suitable for storing information. [0101]

Stored on any one of the above described storage media, the present invention preferably includes programming for controlling both the hardware of the computer and enabling the computer to interact with a human user. Such programming may include, but is not limited to, software for implementation of device drivers, operating systems, and user applications. Such storage media preferably further includes programming or software instructions to direct the general purpose computer to perform tasks in accordance with the present invention. [0102]

The programming of the computer preferably includes software for digitizing and storing images obtained from the image acquisition device (helical computed tomography scanner). Alternatively, it should be understood that the present invention may also be implemented to process digital data derived from images obtained by other means, such as xrays and magnetic resonance imaging (MRI), positron emission tomography (PET), ultrasound, optical tomography, and electrical impedance tomography. [0103]

The invention may also be implemented by the preparation of application specific integrated circuits (ASIC), field programmable gate arrays (FPGA), or by interconnecting the appropriate component devices, circuits, or modules, as will be apparent to those skilled in the art. [0104]

A. Lung Segmentation [0105]

This section discusses a lung segmentation algorithm in detail. First the model of the lungs will be presented with a discussion of the difficulties with this task. Then each stage of the algorithm is presented. [0106]

Referring now to FIG. 1, the object of the algorithm is illustrated. The top 6 images in FIG. 1 are selected slices from a single CT scan, and the bottom 6 images are the lung regions extracted from those slices. The lungs are modeled as a low density region surrounded by a high density one. Image filtering is preferably first performed to minimize the effects of image noise. A simple linear discriminant function based on CT voxel values (photon density) is preferably used to partition the scan into lung parenchyma and solid structures. Further filtering can be used to compensate for imperfections in the thresholding. [0107]

The photon density of the structures within the lungs may be found by manually segmenting the lung into different regions and analyzing the results. Referring to FIG. 3, a table presents the range and mean values for the intensity of solid tissue and lung parenchyma. These values were obtained by manually selecting regions within a lung CT scan. Regions of at least 100,000 voxels were selected from four 2.5 mm full lung scans. The distribution of intensities is shown in FIG. 2. Note that there is an overlap between the intensity of the lung region and the intensity of the surrounding solid tissue. [0108]

Referring again to the table in FIG. 3, it is almost possible to partition lung parenchyma and bone using a linear discriminant function. All voxels with a gray level value less than 500 can be considered parenchyma because the minimum intensity for solid tissue is 545. Unfortunately, vessels, nodules, and partial voxels can not be partitioned so distinctly. Using the linear discriminant function as described will result in classification errors where the histograms in FIG. 2 overlap, most prominantly between gray levels of 550 to 800. All values of gray level and intensity in the application are in GE units which equates to Hounsfield units HU as follows: HU=GE units −1024, for example 1000 GE=−24 HU. [0109]

One major challenge is handling the streaking artifacts found in 2.5 mm scans with a low radiation dose and a high pitch, such as those done in screening studies. When an Xray beam passes through a region with a high attenuation coefficient, the remaining beam contains a greater proportion of high energy. This makes the pathintegral of attenuation a nonlinear function of distance (J. Hsieh, “Adaptive Trimmed Mean Filter for CT Imaging,” [0110] SPIE, Vol 2299, 1994; H. SoltanianZadeh, J. P Windham and J. Soltanianzadeh, “CT Artifact Correction: An Image Processing Approach,” SPIE, Vol 2710, 1996 which is incorporated herein by reference). In the case of lung CT scans, this artifact is prevalent through the shoulders, resulting in noise in the first 25% of the slices. The noise is characterized as both high intensity and low intensity horizontal streaks running through the image.

Finally, there are other structures which confound the segmentation scheme. Air or gas found outside of the lungs will have the same characteristics as the lung themselves. Specifically they consist of a low density region surrounded by a high density one. It is necessary to discriminate between the lungs and other stray tissue or air pockets. An example of such a region is shown in FIG. 4, which occurs well below the lungs and the diaphragm. [0111]

The segmentation algorithm consists of creating a mask representing the lung volume and applying an AND operation between the mask and the original image. The algorithm for creating the mask is set forth in FIG. 5, and FIG. 6 outlines these steps graphically while the motivation behind this routine is described in detail in the following sections. [0112]

The main object of image filtering is to remove the streaking artifacts on the first 25% of the slices due to xray beam hardening through the shoulders. The streaking artifacts are characteristically horizontal and tend to greatly distort the segmentation. Many of the later steps in this algorithm operate on binary images and are quite susceptible to noise. A combination of both median and mean filtering reduces the noise significantly. Median filtering preserves the edges around the chest cavity while eliminating much of the streaking effect. Since the streaks are horizontal, a small vertical mean filter will blur the streaking regions, further reducing their effect. This filtering stage is used only to generate a clean image for the mask as the original pixel values are retained in the final segmented lung image. [0113]

Experiments have shown that a median filter size of 4×4 produce the best results. Smaller filters did not reliably eliminate noise caused by the streaking artifacts. Further experiments have shown that a mean filter size of 1×3 produces excellent results. The results of filtering are shown in FIG. 9, but the importance of this step is seen more clearly in FIG. 7 after the thresholding operation. The filtering is preferably performed on 2 dimensional slices rather than 3D volumes. [0114]

On large data sets, such as full chest CT scans, median filtering is a time consuming operation. To speed up the algorithm, it is important to note that the streaking artifacts appears only at the beginning of the scans. Preferably the median filter for the first 25% of the slices is only computed to reduce the computation time of this stage by 75%. The mean filter is much smaller (1×3) and the computational gains of only running it on part of the image are insignificant. [0115]

Most of the segmentation is performed by a simple threshold operation. As seen in FIG. 2, the distribution of intensities of lung parenchyma and solid tissue is bimodal. A simple threshold of 500 can therefore be applied to the entire image. For the most part, this will separate the image into 2 regions: (1) solid tissue and (2) everything else. Included in “everything else” are the lungs, trachea, air surrounding the body, and black background outside of the field of view. By filling in all pixels which touch the image border and inverting the image, the lungs are clearly segmented from the chest cavity, as shown in FIG. 8. [0116]

As seen in FIG. 2 and the table in FIG. 3, there is some overlap between the intensities of structures in the lungs and the intensities of solid tissue outside the lungs. Specifically, there is significant overlap in the range between gray levels of 550 and 800. It is therefore impossible to threshold out the ribcage and keep all the vessels, as seen in FIG. 8. [0117]

FIG. 9 illustrates the effect of thresholding both with and without image filtering. The noisy image on the left shows the result of thresholding without filtering and the segmented image on the right shows the result of thresholding after filtering. [0118]

Up until this stage in the algorithm, any regions with similar characteristics to the lungs will be preserved. This includes air and gas found within the body. This also includes random noise in the background (i.e., outside the thorax) which was not removed by image filtering and thresholding. Selecting only the largest component(s) in the image, we will eliminate minor air pockets and all stray noise which is prevalent throughout the images. [0119]

FIG. 10 shows a region which is removed by retaining only the largest component(s) and discarding all other structures. To perform the selection, preferably all regions with volumes greater than 1% of the total number of pixels are chosen in the image, as explained in S. Hu, E. A. Hoffman, and J. M. Reinhardt, “Automatic Lung Segmentation for Accurate Quantitation of Volumetric XRay CT Images,” [0120] IEEE Transactions on Medical Imaging, Vol 20, No 6, June 2001, which is incorporated herein by reference.

As previously mentioned, the thresholding operation will segment out blood vessels along with the ribcage, resulting in holes and splotches in the lung region, as seen in FIG. 8. These can be filled in using a morphological filtering operation. By performing a closing, which consists of a dilation followed by an erosion, the spotty regions and holes within the lungs can be removed. Some of the vessels and other structures are quite large, necessitating the use of a large closing kernel. The results of morphological filtering are shown in FIG. 11. [0121]

Morphological filtering with large structuring elements is computationally expensive. Fortunately, large structures that require a large filter kernel only occur in the middle third of the slices of the lungs. Therefore, the lungs can be divided axially into three distinct regions [0122] 1, 2, and 3 as shown in FIG. 12.

As the slices corresponding to each region show, preferably a small structuring element is used in regions [0123] 1 and 3 where only small vessels occur, and a larger one is used in region 2, where large vessels are found. Specifically, a large 2D circular filter is preferably used in region 2 (typically 28 pixels in diameter) and filter of half the diameter is used in regions 1 and 3. Referring now to FIG. 13, a table that shows timing trials using a varying kernel size versus using a fixed large kernel for the entire image. In this experiment, a circular filter of diameter 28 was used as the fixed kernel size. This was compared to using the same kernel in region two and reducing it to a diameter of 14 in regions 1 and 3.

Once the binary mask of the lungs is generated, a simple AND operation with the original CT scan will yield the segmented lungs. Finally, the image is clipped such that the new bounding box is just large enough to contain the lungs. [0124]

B. Lung Volume Measurements [0125]

This section discusses the algorithms used for lung volume measurements. First the motivation behind measuring the lung volume will be explained. Next, a model of the lung will be presented, followed by the algorithm for calculating the volume. [0126]

Once the lung has been properly segmented, the volume of both tissue and air in the lungs can be calculated. The objectives of this research are as follows: [0127]

1. Accurately measure lung volume. [0128]

2. Determine both the interpatient and intrapatient variation in lung volume. [0129]

3. Explore the effects of inspiration on CAD algorithms. [0130]

4. Compensate for any effects discovered in (3). [0131]

5. Measure the relationship between crosssectional area of the lungs and entire lung volume. [0132]

Once statistics of the lung volumes have been compiled the effect of inspiration on nodule volume measurements will be studied. A positive correlation between lung volume and nodule size in a large set of repeat scan will determine if such a relationship exists. It is also important to note that full chest scans are not always performed during a repeat examination. Typically, a high resolution scan of the suspicious region is performed. Such scans contain only a few crosssectional slices of the region of interest. Therefore, the relationship between 2D crosssectional area and inspiration must be explored. [0133]

The lungs can be modeled as containing air with a gray level value of zero, and tissue with a gray level value of 1000. All intensity values in between that range must be a combination of air and tissue, confounded by the partial voxel effect. Based on this assumption, a gray level of 500 represents a volume comprised of ½ air and ½ tissue. Equation 1 depicts this formally, where V is volume and I is intensity.
[0134] $\begin{array}{cc}{V}_{\mathrm{air}/\mathrm{voxel}}=\left(1\frac{{I}_{\mathrm{voxel}}}{{I}_{\mathrm{tissue}}}\right)*\left({V}_{\mathrm{voxel}}\right)& \left(1\right)\end{array}$

For example, a gray level of 250 represents 25% tissue and 75% air. If the image resolution is 0.5 mm×0.5 mm×2.5 mm per voxel, the volume of a voxel is 0.625 mm[0135] ^{3 }and the volume of air in that voxel is 0.156 mm^{3}.

Referring now to FIG. 14, a matrix is generated from the segmented lung image in which each column represents a gray level value and each row represents a slice in the scan to perform this analysis. The entries in the matrix are the number of times that a particular gray level appears in that slice of the image. This data structure is simply a histogram of the image, separated into slices. With such a structure in place, it is easy to perform and repeat the volume measurements on both the full lung volume and on an individual slices. [0136]

To calculate the volume in the lungs, the number of voxels in the segmented image is counted and multiplied by the volume of each voxel. This represents the volume of the entire lung. This can be performed quickly using the histogram because the counting has already been completed. Using the model described above, that each voxel is part air and part tissue, the sum of “tissue voxels” multiplied by the volume of a voxel equals the amount of tissue in the lung. The equations for calculating the volume of the lungs and the volume of the tissue in the lungs are as follows:
[0137] $\begin{array}{cc}{V}_{\mathrm{Lung}}=\underset{s\in \mathrm{Si}\in I}{\sum \sum}\ue89eL\ue8a0\left[s\right]\ue8a0\left[i\right]*{V}_{\mathrm{voxel}}& \left(2\right)\\ {V}_{\mathrm{tissue}}=\underset{s\in \mathrm{Si}\in I}{\sum \sum}\ue89e\frac{i}{{I}_{\mathrm{tissue}}}*L\ue8a0\left[s\right]\ue8a0\left[i\right]*{V}_{\mathrm{voxel}}& \left(3\right)\end{array}$

where V represents volume, I represents voxel intensity, and L[s][i] is the number of pixels of intensity i in slice s of image L. [0138]

Often times with repeat scans, only a high resolution scan of the region of interest is acquired. As a result, full lung volumes are not always available to measure the amount of inspiration in repeat scans. As a solution, the area of single axial CT images from two scans may be used to estimate the variation in inspiration between the two. The histogram data structure described above can be used to calculate the crosssectional area of a single slice. Given the volume of the 2 entire lungs, it may be possible to relate the crosssectional area of each to the volume of the entire scan. [0139]

The lung segmentation algorithm was run on 196 individual chest scans and 24 pairs of repeat scans from a Cornell University ELCAP database. Out of the 196 scans, 115 contained 2.5 mm slices and 81 contained 5 mm slices. The 24 pairs of repeat scans consisted of 19 5 mm scans and 5 2.5 mm scans. Repeat scans of different reconstructions were not considered. Inplane resolution varied between 0.54 mm/pixel and 0.79 mm/pixel. [0140]

Images were acquired on a either a General Electric® LightSpeed™ or HiSpeed™ Helical CT scanner. Xray tube current ranged from 40200 mA and the tube potential was either 120 or 140 kVp. Testing is preferably performed on a dualprocessor 700 MHz computer. The algorithm ran in approximately 68 minutes on a full lung scan with 2.5 mm contiguous slices. Without using the varying filter sizes as described above, the algorithm ran in about 1415 minutes. [0141]

C. Finding Location and Size of Pulmonary Nodule [0142]

Given an initial seed point inside the nodule, an algorithm finds the center location of the nodule and the radius of the sphere circumscribing the nodule. The following subsections describe the algorithm and choices of functions. [0143]

The algorithm is provided a candidate location that is some seed point P, which is within the nodule in the image, and a starting radius r and delivers the optimal location P′ and radius r′ of the nodule. The algorithm for finding the location P′ and radius r′ of the nodule is shown in FIG. 15. The value of r is incrementally increased and for each value of r the best location of the nodule center P is computed. A new location is calculated by maximizing the correlation (or the response) between the image and a locater template function. The template function is chosen so that the maximum response is given when the template is centered over a nodule with radius r as discussed further below. Thus, maximizing the correlation yields the most likely location of a nodule with the current radius. [0144]

The algorithm determines the radius of the nodule by terminating itself at the appropriate iteration. Another template function, centered at P, is applied to the image at the end of each iteration. The sizing template function is designed so that its value decreases dramatically when the radius of the function has become larger than the radius of the actual nodule. Thus, when there is a large decrease in the value of the second template function, the radius of the actual nodule has been exceeded and the algorithm terminates and returns the location and radius from the previous iteration. [0145]

The nodule finding algorithm was developed assuming a two level model where the nodule, blood vessels, and pleural wall are all a single high intensity, while everything else is a single low intensity. The template functions use parameters of location and radius. The radius does not refer directly to the size of the template function. Rather, the radius is a parameter that describes the size of the nodule for which the template will detect; meaning that the template does not necessarily need to be zero past the extent of the radius [0146]

The locater template functions is designed to locate the approximate center of mass of a nodule (for nodules attached to the pleural surface a repeatable central location is obtained since the location of the actual center of mass is not knowable). The function has four parameters: the center in x, y, and z, and the radius. In the algorithm, the radius is fixed at each iteration, but the center of the template can move. The locater template function was designed, with a given radius, so that it is maximized when the function is centered over a nodule of the same radius. [0147]

Consider a 1D example where an isolated nodule is modeled as a large region of high intensity. FIG. 16A shows an example model where the nodule is the center shaded region, while the outer regions consist of noise (composed of highintensity objects like vessels). [0148]

Consider some simple 1D template functions shown in FIG. 17. The square template function, FIG. 17A, biases everything equally, causing the template to be very sensitive to noise in the periphery. The sensitivity to noise can be reduced by tapering the template function to be shaped like a triangle, FIG. 17B, or a Gaussian, FIG. 17C. The large values near the center will keep the function centered over the highintensity region of the nodule, while the lower values further from the center will diminish the effect of any other highintensity objects. FIGS. 18A through 18C illustrate where the Gaussian template function will be maximized for cases where the size of the function is smaller, the same size, and larger than the size of the nodule. [0149]

Now consider a 1D model of a nodule attached to the pleural wall, shown in FIG. 18B. The nodule is the lightly shaded central region, the pleural wall is the darkly shaded region on the right, and the lightly shaded region on the left is some noise (blood vessel). Although shaded differently, note that the nodule and the pleural wall are at the same intensity level. With this model, the Gaussian template function will fail to perform correctly. The template does not prevent itself from slipping into the wall and centering itself over the combination of the nodule and the wall. [0150]

Nodules on the pleural wall can be located by choosing a function that forces itself away from the wall. This can be achieved by using a function that has positive values within the radius of the function and negative values outside the radius, like FIGS. 17D through 17F. Two examples of this type of function are the Laplacian of the Gaussian (LOG) and the difference of Gaussians (DOG). When maximizing the response of the template function, there are two forces fighting against each other. The positive portion of the template function will try to keep the function centered over the highintensity regions. Countering this, the negative portion of the template will try to push the template away from the highintensity regions, resulting in an equilibrium along the edge of the highintensity region of the nodule. FIGS. 18D through 18F show how the LOGlike template function should behave on the 1D model of a nodule on the wall. If the total weights, the distribution, and the sizes of the positive and negative regions are balanced correctly, then the LOGlike template function should behave accordingly. [0151]

The LOGlike template function can also be used on isolated nodules. The positive region of the template function will stay near the center of the nodule, while the negative regions will force the function away from any noise in the periphery of the image. FIGS. 18G through 18I show how the LOGlike function will behave when applied to the 1D model of an isolated nodule. When the size of the template is smaller than the nodule, the template will hug the edge of the nodule and when the positive region of the template is larger than the nodule, it will be centered over the nodule. [0152]

The above illustrates the preferred behavior of the locator template function for the 1D model of an isolated nodule and a nodule on the wall. The model is now extended into two and three dimensions. For the 2D case, the 1D LOGlike function is extended into two dimensions. The template now consists of two circular regions; the smaller region contains positive values and the region outside the smaller region contains negative values. FIG. 19 shows a few examples of how the 2D template function is expected to behave for isolated and pleural nodules. For the 3D case, the locater template function will have spherical regions with an analogous distribution as the 2D and 1D cases. [0153]

One thing to note about the locater template function is that it does not need to have a constant total weight for different radii. The algorithm does not maximize the locater template function throughout all the iterations and all the radii; instead, it is maximizing the template function for a fixed radius in each iteration. Thus, the template is not required to have a constant weight for different radii. It should suffice to only maintain the proper scaling between the sizes and the distribution of the template regions. [0154]

The sizing template function is used to indicate when the radius of the function is equal to the size of the sphere circumscribing the real nodule. The sizing template function uses the radius during the current iteration and the location of the candidate nodule, determined by the locater template function. After each iteration in the algorithm, a value is calculated using the sizing template function. Two preferred methods for determining when the algorithm has found the location and size of the nodule in the image are discussed below. [0155]

The first method is to look for a large change in the response of the sizing template function. Using the LOGlike locater template function, the positive region, the inner circle, is expected to be overlayed on the highintensity values of the nodule. As the radius of the template function increases, the positive region will remain within the nodule. This is illustrated in FIG. 20. Eventually the positive region will become larger than the nodule and there will be a sharp decrease in the response of the sizing template function between iterations of the algorithm. To find this stopping criterion, a sizing template function is chosen so to be a mean filter shaped like a sphere. When the sphere becomes larger than the nodule, the distribution of values inside the sphere changes, causing the response of the template function to change dramatically. [0156]

FIG. 22 shows the response of the mean filter function to various sizes of ideal nodules (spheres of intensity [0157] 1000). For the ideal nodule, the response of the filter function is constant until the radius of the filter function exceeds the radius of the ideal nodule. When this happens, the response of the filter quickly decreases.

The second method of finding the size of a nodule is to design the sizing template function so that it has a specific response when the template function is the same size as the real nodule. For example, if a 3D Gaussian function, where the standard deviation is equal to the radius, has the response shown in FIG. 23. When the response of the Gaussian template is 200, the radius of the Gaussian is the same as the radius of the nodule, thus providing a stopping criterion for our algorithm. [0158]

One very important property of the sizing template function is that it must have a constant total weight regardless of the size of the template. This property will insure that the response of the template will be consistent between different sizes of nodules. [0159]

The implementation of the algorithm will now be discussed. This will include a more detailed description of the algorithm, a mathematical definition of some template functions, calculation of the initial seed point, introduction of two search methods for the maximization of the locator template function, quick function evaluations, and the termination criterion. [0160]

A detailed description of the algorithm is shown in FIG. 21. The algorithm is modified so that it terminates when the response of the sizing template function is within c of the target value. This feature is added to the algorithm so that the radius does not go too far past the actual radius of the nodule. [0161]

The algorithm takes in a 3d CT image of a nodule. First, the image is clipped at intensities over 1000. This is done to minimize any affect that the veryhigh intensitied bone will have on the algorithm. [0162]

The next step is to define the locator and sizing template functions. The template functions are preferably either the Gaussian, the Laplacian of the Gaussian, or the difference of Gaussians. The template function has four parameters, (sx, sy, sz, σ), which correspond to the xlocation, ylocation, zlocation, and radius. The initial location is either calculated from the image or specified by the user, and depending on the type of sizing template function, the target response value is set. [0163]

Starting with the initial conditions, a radius of 1, and a radius stepsize of 1, the algorithm finds the best locator template response by using a search method to move the center of the template function. Preferably the search method is a hillclimbing method as discussed below. Once the maximum value is found for the given radius, the radius is increased by the radius stepsize and the search is repeated using the current location as the starting point. [0164]

At each iteration the response of the sizing template function, γ is calculated. The algorithm iterates until the sizing response is less than the target value. If γ is within ε of the target, then the algorithm is finished. Otherwise, the algorithm backtracks by setting the location and radius parameters to their values in the previous iteration, dividing the radius step by two, and repeating the search procedure. Finally, after the target value is reached within ε, or the radius stepsize is smaller than some α, the search process terminates and the current parameters are the location and radius of the nodule. [0165]

The template function is a function of four parameters: the center (location) of the template, (sx,sy,sz), and the radius of the template, σ. The response of the template function is calculated by taking the correlation between the image im and the template M as in Equation (4).
[0166] $\begin{array}{cc}\Gamma \ue8a0\left(\mathrm{sx},\mathrm{sy},\mathrm{sz},\sigma \right)=\frac{\sum \sum \sum}{x,y,z}\ue89e\mathrm{im}\ue8a0\left(x,y,z\right)*{M}_{\mathrm{sx},\mathrm{sy},\sigma}\ue8a0\left(x,y,z\right)& \left(4\right)\end{array}$

The locater template function is designed to produce the largest response when the kernal is centered over the target object. Thus, by maximizing this function at each iteration of the nodule finding algorithm, the best candidate for a nodule of radius r is found. There are many types of functions to choose from, but the preferred functions are the Gaussian, the Laplacian of the Gaussian, and the Difference of Gaussians. [0167]

The 3D gaussian is a strictly positive symmetric function defined by Equation (5). The Gaussian function can be used to find nodules when the pleural surface is not present in the image. The metric function will have its highest value when it is centered over the nodule. A graph of the Gaussian is shown in FIG. 24.
[0168] $\begin{array}{cc}{G}_{\mathrm{sx},\mathrm{sy},\mathrm{sz},\sigma}\ue8a0\left(x,y,z,\right)=\frac{1}{{{\sigma}^{3\ue89e\text{\hspace{1em}}}\ue8a0\left(2\ue89e\pi \right)}^{\frac{3}{2}}}\ue89e{\uf74d}^{\frac{({\left(x\mathrm{sx}\right)}^{2}+{\left(y\mathrm{sy}\right)}^{2}+{\left(z\mathrm{sz}\right)}^{2}}{2\ue89e{\sigma}^{2}}}& \left(5\right)\end{array}$

The Laplacian of the Gaussian (LOG) is defined in Equation 7. This function has a positive weight close to the center and a negative weight further out, as seen in FIG. 24. This function is useful in locating nodules on or near the pleural surface. The positive interior will latch onto the nodule, while the negative exterior will keep the kernal from moving towards the wall. In the algorithm, the LOG has the disadvantage that the initial location must be within the nodule. Otherwise, the negative weight of the exterior will cause the LOG to grow away from the nodule.
[0169] $\begin{array}{cc}{\mathrm{LOG}}_{\mathrm{sx},\mathrm{sy},\mathrm{sz},\sigma \ue8a0\left(x,y,z\right)}=\left[\frac{{\partial}^{2}}{\partial {x}^{2}}+\frac{{\partial}^{2}}{\partial {y}^{2}}+\frac{{\partial}^{2}}{\partial {z}^{2}}\right]\ue89e{G}_{\mathrm{sx},\mathrm{sy},\mathrm{sz},\sigma}\ue8a0\left(x,y,z,\right)& \left(6\right)\\ =\frac{1}{{\sigma}^{2}}\ue89e\left(3\frac{{x}^{2}}{{\sigma}^{2}}\frac{{y}^{2}}{{\sigma}^{2}}\frac{{z}^{2}}{{\sigma}^{2}}\right)*{G}_{\mathrm{sx},\mathrm{sy},\mathrm{sz},\sigma}\ue8a0\left(x,y,z\right)& \left(7\right)\end{array}$

The Difference of Gaussians, given in Equation (8), is similar to the Laplacian of the Gaussian in that they both have positive and negative regions. However, changing the σ[0170] _{1}, σ_{2}, m_{1}, and m_{2 }values will lead to different sizes and weights of the two regions, allowing for a more customizable template than the LOG.

DOG _{sx,sy,sz,σ}(x,y,z)=m _{1} *G _{sx,sy,sz,σ1}(x,y,z)−m _{2} *G _{sx,sy,sz,σ2}(x,y,z) (8)

The initial seed point should be somewhere within the nodule in the image. This may be provided by user input, or it can be estimated from the image. A simple way to calculate the initial location would be to use the center of the image: [0171]

center[0172] _{x}=im.xlo+(im.xhi−im.xlo+1)/2

center[0173] _{y}=im.ylo+(im.yhi−im.ylo+1)/2

center[0174] _{z}=im.zlo+(im.zhi−im.zlo+1)/2

When using the Gaussian for the locator template function this may be fine, but when using the LOG or DOG functions the initial starting location must be within the nodule. For these functions, the center of mass (COM) of the image is preferred for setting the initial conditions. The COM is calculated by first thresholding the image at half of the largest pixel value in the image and then calculating the center of mass using the standard equations:
[0175] ${\mathrm{COM}}_{x}=\frac{\sum \sum {\sum}_{i,j,k}\ue89e\mathrm{im}\ue89e\left(i,j,k\right)*i}{\sum \sum {\sum}_{i,j,k}\ue89e\mathrm{im}\ue89e\left(i,j,k\right)}$ ${\mathrm{COM}}_{y}=\frac{\sum \sum {\sum}_{i,j,k}\ue89e\mathrm{im}\ue89e\left(i,j,k\right)*j}{\sum \sum {\sum}_{i,j,k}\ue89e\mathrm{im}\ue89e\left(i,j,k\right)}$ ${\mathrm{COM}}_{z}=\frac{\sum \sum {\sum}_{i,j,k}\ue89e\mathrm{im}\ue89e\left(i,j,k\right)*k}{\sum \sum {\sum}_{i,j,k}\ue89e\mathrm{im}\ue89e\left(i,j,k\right)}.$

The method used to search for the optimal nodule location has a major impact on the running time of the algorithm. Any kind of fancy search procedure could be used, but this is not necessary for this application. From iteration to iteration the new optimal location will not deviate much from the previous optimal location. Since the previous optimal location is used as the starting point for each search, the search method will not have to look very far for the maximum in the searchspace. [0176]

Fancy search methods, such as Powell's method described in W. Press, [0177] Numerical Recipes in C, 2nd Edition, Cambridge University Press, 1992, which is incorporated herein by reference, are usually less efficient when moving small distances because these algorithms are designed to search a very large space. In other words, they are optimized to tradeoff between the efficiency in moving giant steps and the efficiency of moving in small steps.

In the end, hillclimbing, a greedy search method, is preferred for the nodule finding algorithm because it is more efficient when the optimal location doesn't move very far. The HillClimbing is shown in FIG. 25. Using an the initial location and a stepsize, the hillclimbing algorithm evaluates the locator template function for each of the possible 6 moves in parameterspace and then moves in the direction of the largest decrease. The algorithm terminates when there is no move that decreases the metric. [0178]

The search procedure requires many evaluations of the correlation between locator template function and the image. These calculations can be costly because the template function usually involve exponentials. Fortunately, in any given iteration of the search procedure, the radius of the template function is held constant. It is possible to save calculations by storing the template function values in a temporary image (the classic engineering dichotomy of time versus space). [0179]

The values of the locater template function centered at the origin are stored in a temporary image at the beginning of each search procedure. For the Gaussian and the LOG, values are only calculated out to 3 or 5 times the radius σ because the functions converge to zero. Also, the function is only evaluated at positive location points because these functions are radially symmetric, [0180]

Now when the response of the template function is required, the temporary image is offset by the location of the template function, and the correlation between the image and the temporary image is calculated. [0181]

The target response determines when the algorithm should terminate. The target value is chosen such that the algorithm will terminate when the location and radius parameters best circumscribes the nodule. The target value can be found either through an ideal model of a nodule or through experimentation. FIG. 23 shows the response of a Gaussian function to several ideal nodules (spheres) of different radii. In the ideal case, the target response of the Gaussian sizing function should be 200. The best target response has been determined to be 300 by experimentation with a small subset of real nodules from the database. Using a small number (four) of nodules, the response of the sizing function was tracked and the value that causes all the nodules to be circumscribed was selected. [0182]

Based upon the experimentation, the locator template functions shown in FIG. 26 will be stable. The large negative values near the border between the positive and negative regions help the template find the edges of the nodule. In addition, the difference of Gaussians (DOG) can be used to correctly balance the weights and sizes of the positive and negative regions in the template so that the template will not slip into the pleural wall [0183]

The nodule finding algorithm is preferably implemented in the C programming language for a VisionX software package on a FreeBSD system. VisionX software provides computer tools and programs for the analysis and visualization of image data. It is suitable for a wide range of image analysis applications and is designed to address the processing needs of multidimensional image sets that arise both from temporal image sequences and from image modalities that involve threedimensional data collection. [0184]

VisionX software has been used in a wide range of research applications including multispectral image analysis, threedimensional object recognition, multiframe image analysis, target tracking, neural networks, biological cell analysis, and threedimensional biomedical image analysis. Important features of the VisionX software include the ability to handle multidimensional image sets, a wide range of available processing functions, and a flexible tagged data format that facilities the automatic recording of the history of a file. [0185]

FreeBSD is an advanced operating system for x86 compatible, DEC Alpha, and PC98 architectures. It is derived from BSD UNIX, which is a version of UNIX developed at the University of California, Berkeley. FreeBSD offers advanced networking, performance, security, and compatibility features. FreeBSD can be installed from a variety of media including CDROM, DVDROM, floppy disk, magnetic tape, an MSDOS partition, or if there is a network connection, it can be installed directly over anonymous FTP or NFS. [0186]

The nodule finding algorithm preferably inputs a floating point, byte, or short image and outputs the location and size of the nodule. Many options are available, including translation and radius search limits, a choice between search strategies (HillClimbing or Powell's method), initial starting location, type of template function, and termination criteria. The program also preferably outputs several types of images for debugging purposes. The program was expanded to allow the algorithm to run on twodimensional images. [0187]

D. Pulmonary Nodule Registration [0188]

The algorithm registers pulmonary nodules in 3d images of highresolution focused CTscans. For the most accurate characterization it is important to have images from highresolution CT scans because these images will better localize the boundaries of the nodule. A rigidbody transformation model is assumed, meaning that in general the structures in the images are confined to simple translation and rotation. In order to simplify the transformation model, an isotropic imagespace is also assumed. Using these assumptions, an algorithm was developed to register pulmonary nodules from two different time periods by defining a metric between the two images and performing a minimizing search on the metric. [0189]

The algorithm requires two input images, and produces an output that is the first image registered to the second image. The rigidbody registration algorithm is shown in FIG. 27. The two input images, im[0190] _{1 }and im_{2}, are converted to floatingpoint pixel format. Preferably the images are masked to ignore irrelevant pixel data (e.g. bones). Next, the initial conditions for the rigidbody transformation is determined. The metric between two images is defined as a number that represents how closely two images are related to each other. By selecting the appropriate rigidbody parameters, the metric between the second image and the transformation of first image can be minimized or maximized depending upon the registration metric, resulting in the best registration for the given metric.

The first step in the registration algorithm is to perform some preprocessing on the input images. If necessary, the input image is converted from byte or short pixelformats to the floating point pixelformat. [0191]

If mask images are provided, the input images are masked by setting the appropriate pixels to the background value (−1000). Masking an image tells the registration algorithm to ignore certain areas of either image when attempting to perform the registration. This can be useful if a large structure in an image is causing misregistration of the object of interest. By using a mask, the algorithm can be told to ignore the larger structure, thus allowing the object of interest to be registered to itself. [0192]

The registration metric is defined as a function of two images, im
[0193] _{1 }and im
_{2 }and six rigidbody transformation parameters, (t
_{x},t
_{y},t
_{z},r
_{x},r
_{y},r
_{z}). To calculate the metric, the first image is transformed using the rigidbody parameters, resulting in im
_{1t}. One definition of the metric value is the correlation between the transformed image im
_{1t }and the second image im
_{2}, as given in the following equation.
$\begin{array}{cc}C=\frac{1}{N}\ue89e\begin{array}{c}\sum \sum _{i,j,k}\ue89e\text{\hspace{1em}}\ue89e\sum i\ue89e\text{\hspace{1em}}\ue89e{m}_{1\ue89et}\ue8a0\left(i,j,k\right)*i\ue89e\text{\hspace{1em}}\ue89e{m}_{2}\ue8a0\left(i,j,k\right)\\ i\ue89e\text{\hspace{1em}}\ue89e{m}_{1\ue89et}\ue8a0\left(i,j,k\right)\ne \mathrm{background}\\ i\ue89e\text{\hspace{1em}}\ue89e{m}_{2\ue89et}\ue8a0\left(i,j,k\right)\ne \mathrm{background}\end{array}& \left(9\right)\end{array}$

where N is the number of pixels that are not background pixels in either im[0194] _{1t }or im_{2}.

The correlation metric is not absolute in the sense that there is no absolute best correlation that indicates that the two images are registered perfectly. The correlation is dependant on the distribution of the pixels; images with larger pixel values will produce a larger correlation. An absolute metric allows for a better sense of how well two images are registered to each other regardless of pixel distributions. [0195]

Instead of correlation, a meansquareddifference (MSD) metric, defined in the following equation, can be used:
[0196] $\begin{array}{cc}\mathrm{MSD}=\frac{1}{N}\ue89e\begin{array}{c}\sum \sum _{i,j,k}\ue89e\text{\hspace{1em}}\ue89e\sum {\left(i\ue89e\text{\hspace{1em}}\ue89e{m}_{1\ue89et}\ue8a0\left(i,j,k\right)i\ue89e\text{\hspace{1em}}\ue89e{m}_{2}\ue8a0\left(i,j,k\right)\right)}^{2}\\ i\ue89e\text{\hspace{1em}}\ue89e{m}_{1\ue89et}\ue8a0\left(i,j,k\right)\ne \mathrm{background}\\ i\ue89e\text{\hspace{1em}}\ue89e{m}_{2\ue89et}\ue8a0\left(i,j,k\right)\ne \mathrm{background}\end{array}& \left(10\right)\end{array}$

where N is the number of pixels that are not background pixels in either im[0197] _{1t }or im_{2}. With the MSD metric, perfectly registered images will produce a metric of zero.

The rigidbody transformation uses six parameters: (tx,ty,tz,rx,ry,rz); translation in x, translation in y, translation in z, rotation about the xaxis, rotation about the yaxis, and rotation about the zaxis. The transformation is a mapping of a point v in 3d space to a point v′ in transformed space defined by the following equation:
[0198] $\begin{array}{cc}{\nu}^{\prime}={R}_{x}\ue89e{R}_{y}\ue89e{R}_{z}\ue89e\nu +\left[\begin{array}{c}{t}_{x}\\ {t}_{y}\\ {t}_{z}\end{array}\right]& \left(11\right)\end{array}$

where R
[0199] _{x}, R
_{y}, and R
_{z }are the rotation matrices defined as:
$\begin{array}{cc}{R}_{x}=\left[\begin{array}{ccc}1& 0& 0\\ 0& \mathrm{cos}\ue8a0\left({r}_{x}\right)& \mathrm{sin}\ue8a0\left({r}_{x}\right)\\ 0& \mathrm{sin}\ue8a0\left({r}_{x}\right)& \mathrm{cos}\ue8a0\left({r}_{x}\right)\end{array}\right]& \left(12\right)\\ {R}_{y}=\left[\begin{array}{ccc}\mathrm{cos}\ue8a0\left({r}_{y}\right)& 0& \mathrm{sin}\ue8a0\left({r}_{y}\right)\\ 0& 1& 0\\ \mathrm{sin}\ue8a0\left({r}_{y}\right)& 0& \mathrm{cos}\ue8a0\left({r}_{y}\right)\end{array}\right]& \left(13\right)\\ {R}_{z}={\left[\begin{array}{ccc}\mathrm{cos}\ue8a0\left({r}_{z}\right)& \mathrm{sin}\ue8a0\left({r}_{z}\right)& 0\\ \mathrm{sin}\ue8a0\left({r}_{z}\right)& \mathrm{cos}\ue8a0\left({r}_{z}\right)& 0\\ 0& 0& 1\end{array}\right]}_{.}& \left(14\right)\end{array}$

The first image is transformed so that it has the same bounding box as the second image. The transformation uses either linear interpolation or nearestneighbor interpolation, and pixels that are transformed from outside the bounding box of the first image are set to the background value. [0200]

The initial rigidbody transformation parameters must be determined before a minimization search can be performed. The initial rotation parameters are all set to zero because only a small amount of rotation is expected between the two images. The initial translation parameters should be set so that the two nodules will overlap at the first iteration of the search procedure. Assuming that the nodules are in the center of the images, the initial translation parameters can be set to the difference between the centers of the two images, where the center of an image is defined as: [0201]

center[0202] _{x}=im.xlo+(im.xhi−im.xlo+1)/2

center[0203] _{y}=im.ylo+(im.yhi−im.ylo+1)/2

center[0204] _{z}=im.zlo+(im.zhi−im.zlo+1)/2

This assumption is not always true and a better method of determining the initial translation parameters is to use the centers of mass of the two nodules. Both images are thresholded at half of the largest pixel value in the image and the center of mass is calculated using the standard equations:
[0205] ${\begin{array}{c}{\mathrm{COM}}_{x}=\frac{\sum \sum {\sum}_{i,j,k}\ue89ei\ue89e\text{\hspace{1em}}\ue89e{m}_{\text{\hspace{1em}}}\ue8a0\left(i,j,k\right)*i}{\sum \sum \text{\hspace{1em}}\ue89e{\sum}_{i,j,k}\ue89ei\ue89e\text{\hspace{1em}}\ue89e{m}_{\text{\hspace{1em}}}\ue8a0\left(i,j,k\right)}\\ {\mathrm{COM}}_{y}=\frac{\sum \sum {\sum}_{i,j,k}\ue89ei\ue89e\text{\hspace{1em}}\ue89e{m}_{\text{\hspace{1em}}}\ue8a0\left(i,j,k\right)*j}{\sum \sum {\sum}_{i,j,k}\ue89ei\ue89e\text{\hspace{1em}}\ue89e{m}_{\text{\hspace{1em}}}\ue8a0\left(i,j,k\right)}\\ {\mathrm{COM}}_{z}=\frac{\sum \sum {\sum}_{i,j,k}\ue89ei\ue89e\text{\hspace{1em}}\ue89e{m}_{\text{\hspace{1em}}}\ue8a0\left(i,j,k\right)*k}{\sum \sum \text{\hspace{1em}}\ue89e{\sum}_{i,j,k}\ue89ei\ue89e\text{\hspace{1em}}\ue89e{m}_{\text{\hspace{1em}}}\ue8a0\left(i,j,k\right)}\end{array}}_{.}$

The initial translation parameter is equal to the difference between the centers of mass of the two images. [0206]

Using the registration metric, a function of six parameters, and the initial conditions, the registration problem is now converted into a minimization/maximization search problem. Specifically, given some initial condition, a minimum or maximum of the metric function is found by searching the 6dimensional parameter space. The following subsections describe three different search methods: exhaustive search, hillclimbing, and Powell's method. [0207]

The exhaustive search is a brute force method that finds the minimum (or maximum) by calculating the metric for every possible set of parameters. Of course the number of possible parameters in a 6dimensional search space is infinite. In order to reduce the search space, a limit of translation and rotation deviation from the initial condition, along with rotation and translation stepsizes, is imposed. Even with this search space reduction, the exhaustive search is still impractical. [0208]

Consider a case where translation is limited to 5 pixels in each direction and the rotation by 5 degrees in each direction. With stepsizes of 1 pixel of translation and 1 degree of rotation, the exhaustive search will perform 11[0209] ^{6 }or 1,771,561 metric evaluations. Suppose each metric evaluation takes 0.1 seconds, then the entire algorithm will take around 170,000 seconds, or 2,833 minutes, or just under two days. Even with such a seemingly small search space and appropriate stepsizes, the exhaustive search will take days to finish!

HillClimbing is a greedy search method. Starting at the initial condition and a set of translation and rotation stepsizes, the algorithm evaluates the metric for each of the possible 12 moves in parameterspace and then moves in the direction of the largest decrease (or increase). The algorithm terminates when there is no move that improves the metric. [0210]

By using a small stepsize it is possible to calculate the best parameters up to some precision. Unfortunately, as the stepsize is decreased, the runningtime of the algorithm increases because the algorithm must take smaller steps, and thus perform more metric evaluations to get to the minimum. One solution to this problem is to repeat the algorithm several times while using a decreasing stepsize. A detailed description of the complete hillclimbing algorithm is shown in FIG. 28. [0211]

Powell's method is a multidimensional directionset search algorithm. Starting with an initial set of 6 directions and an initial condition, in each iteration the algorithm minimizes the metric by moving in each of the six directions. For a given direction, any line minimization technique could be used, however Brent's Method is chosen because it is a parabolic minimization technique that does not explicitly use derivatives. At the end of each iteration (one pass through each of the six directions), the oldest direction is replaced by the total direction moved during the current iteration. By doing this, the algorithm adapts itself to move along the most minimizing path. A more in depth description of Powell's method can be found in Chapter 10.5 in [0212] Numerical Recipes in C, W. Press, 2^{nd }Ed., Cambridge University Press, 1992, which is incorporated herein by reference.

Powell's method terminates when either all the parameters in one iteration change within some epsilon, or the metric after an iteration does not change by more than a tolerance value. [0213]

The registration algorithm works well on images with isolated nodules, but has trouble with images where the pleural surface is present because the pleural surface becomes the largest structure in the image. The largest structure has the largest effect on the metric value, causing the minimization technique to try to register the pleural surface to itself. Because the pleural wall can move and change shape with inspiration or position, there is no guarantee that the nodules near or along the pleural wall be registered correctly if the pleural wall is registered. A first method for addressing this problem is to use image masking or pixel masking. A mask is created that tells the algorithm to ignore the pleural surface and its contents will force the algorithm to register only the nodules together. A second method involves applying a function on the pixels so that all the pleural features become one intensity. This causes the registration algorithm to ignore structures like the ribs. A third method involves reducing the search space. A nodulelocalization algorithm is used to find the centers of the nodules in both images. Taking the difference of the centers results in the translation parameters that overlap the nodules. Finally, the orientation of the nodules is determined by using the registration algorithm on only the rotation parameters. [0214]

The rigidbody registration algorithm is preferably implemented in the C programming language using the VisionX software library for the FreeBSD environment. The program, v3regrb, preferably inputs two input images of byte, short, or floating point pixeltypes and a variety of options. The program preferably outputs the first input image registered to the second input image and a difference image associated with the two images. Both images preferably have the same bounding box as the second input image. The rigidbody transformation parameters for the registration are preferably stored with the metric and timing information with a history of the output images. [0215]

In order to increase the throughput of the registration process, the threedimensional rigidbody transformation is preferably written into the program. The code for the transformation is preferably used from the existing standalone rigidbody transformation program (v3regrb). The rigidbody function preferably supports both linear and nearestneighbor interpolation. The program may be modified to perform threedimensional translationonly registration, twodimensional rigidbody registration, and twodimensional translationonly registration. [0216]

E. Removal of the Pleural Surface from Juxtapleural Nodules in Thresholded HighResolution CT Images [0217]

The algorithm takes a binary (thresholded) image as its input. The algorithm also requires the location of a point near the center of the nodule. If the image is some regionofinterest that has been generated by a radiologist, then it is assumed that the nodule is in the center of the image. In this case the initial starting point will be the center of the image. The pleuralsurface removal algorithm is shown in FIG. 29. [0218]

The pleural surface removal algorithm works by iteratively moving a plane towards the pleuralsurface. The algorithm starts with an initial point P′ inside the nodule and a direction towards the wall, d′. The direction is calculated by taking the difference between the center of mass of a spherical region centered on P′ and the starting location P′. [0219]

With each iteration, a new location P[0220] _{i }is calculated by stepping in direction d from the previous location P_{i1}. Plane A, normal to direction d and passing through point P, separates the nodule from the pleural surface. This cut nodule is the connected component region that contains point P and that is behind the plane A. As the plane moves towards the pleural wall, the size of the cut nodule increases. FIGS. 30A and 30B show the cut nodule for two iterations.

The algorithm keeps track of the difference Δ in the size of the cut nodule between iterations. When the plane intersects the pleural surface, as seen in FIG. 30C, the difference Δ increases dramatically. This condition is manifested by the change in the difference increasing by more than γ[0221] _{max}. When this occurs, the size of the cut nodule is minimized by reorientating the plane by changing the direction d while keeping the point P fixed, as in FIG. 30D. Additionally, the size difference and change in difference are recalculated. If the change in difference is less than γ_{max}, then the algorithm keeps iterating. Otherwise, the algorithm terminates and returns the cut nodule formed by using the plane in the previous iteration.

FIG. 30 shows a twodimensional example of the algorithm. The cut nodule is shown as dark gray while the rest of the nodule and the pleural surface are light gray. The initial starting point and the initial direction are shown in FIG. 30A. FIG. 30B shows an iteration where the plane does not intersect the pleural wall. FIG. 30C shows an iteration where the plane intersects the pleural surface, causing the change in the nodule size to increase. In FIG. 30D the plane is reorientated to minimize the cut nodule, forming a new direction. After another iteration, FIG. 30E shows the plane intersects the pleural wall again, but reorientating the plane still leads to a large increase in nodule size, as seen in FIG. 30F. Thus, the algorithm terminates and returns the cut nodule from the previous iteration, FIG. 30D. [0222]

In this section, a specific implementation of the algorithm is discussed. A seeded region growing algorithm is used to find the cutnodule region, and a hillclimbing search is used to perform the minimization when reorientating the plane. This section first discusses the equations used for the plane, followed by a description of the region growing and hillclimbing algorithms. [0223]

The representation of the plane has four parameters and is defined as: [0224]

ax+by+cz+d=0 (15)

Given a direction normal to the plane, v, and a point on the plane, P, the parameters of the plane are calculated as: [0225]

a=v_{x} (16)

b=v_{y} (17)

c=v_{z} (18)

d=−(aP _{x} +bP _{y} +cP _{z}) (19)

Finally, a point p is behind the plane if: [0226]

ap _{x} +bp _{y} +cp _{z} +d<0 (20)

A recursive region growing is used to determine the cutnodule region. The starting point of the regiongrowing algorithm is the initial starting location P′, and the plane A is calculated from P[0227] _{i }and d_{i}. A description of the region growing algorithm is shown in FIG. 31. For the given pixel p, the algorithm marks it as visited and then determines if it is behind the plane A. If it is not, then the algorithm exits. Otherwise, the pixel p is marked as part of the cutnodule region, and the algorithm is recursively called for each of the six possible 1pixel moves from p if the new point has not been visited yet and it is also a foreground pixel.

A simple greedy search algorithm is used to reorientate the plane so that it minimizes the cutnodule size. A new plane is calculated by changing the direction normal to the plane. The hillclimbing algorithm is shown in FIG. 32. The hillclimbing algorithm takes the initial direction and a small stepsize. Next, the size of the cutnodule is calculated for the planes formed by moving the direction in the six possible coordinate directions. If a smaller size is calculated, then the direction is moved in the direction of the largest decrease. The new direction is normalized to one, and the algorithm is repeated. If there is no decrease in the cutnodule size, then the algorithm terminates. [0228]

The algorithm is preferably implemented in the C programming language for the VisionX software package on a FreeBSD UNIX system. The program preferably operates on binary images that have floating point, byte, or short pixel types. The program preferably outputs the segmented nodule and two debugging images. The initial conditions, initial direction, and termination criteria are preferably specified by options. [0229]

Thus, while there have been described what are presently believed to be the preferred embodiments of the invention, those skilled in the art will realize that changes and modifications may be made thereto without departing from the spirit of the invention, and is intended to claim all such changes and modifications as fall within the true scope of the invention. [0230]