Abstract:
A method for providing a volumetrically-rendered projection image using reverse ray casting, uses the steps of: acquiring, from an object volume of interest, a set of data sampled from each volume element (voxel) therein responsive to a selected characteristic of that object volume; storing the data for each object voxel in a corresponding data volume element; scanning sequentially through each data voxel within the data volume corresponding to the object volume of interest; projecting each scanned data voxel to an image plane, at a solid angle determined from the solid angle at which the object volume is viewed; storing a value for each image plane pixel, responsive to a selected criteria, from the values of all projected data voxel values impingent upon that image plane pixel; and then scaling the dimensions of each image plane pixel responsive to the dimensions of the corresponding object volume shape, and the involved projection solid angle, to correct for anisotropy.

Description:
This application is a continuation of application Ser. No. 07/429,111, filed Oct. 30, 1989, now abandoned. 
    
    
     BACKGROUND OF THE INVENTION 
     The present invention relates to the information display arts and, more particularly, to a novel method and apparatus for volumetric projection rendering from any angle of viewable three-dimensional (3D) data. 
     In the medical imaging arts, it is well known to construct synthetic X-ray-like images of the interior of a sample volume (e.g. a portion of a patient) by projecting 3D data into a series of views at different angles. A cine loop of rotating projections can be viewed to enhance the perception of depth. In some cases, improved visualization can be accomplished by segmentation of the viewable volume using a model of opaqueness. However, surface rendering, utilizing methods such as those described and claimed in U.S. Pat. Nos. 4,710,876 and 4,719,585, merely creates a shaded image resembling a photograph of the object. A volumetrically-rendered image is often preferable to a surface model, for providing images of a volume-of-interest in which vessel morphology can be viewed with detail from a magnetic resonance (MR) examination, comparable to X-ray techniques. It is desirable to provide a maximum pixel projective display, wherein the maximum intensity of each pixel along the line-of-sight is presented, as such projective display is in a form more natural than the surface display, to the angiographer. Unfortunately, the volumetric display requires more processing and has hitherto been too slow for clinical use in a MR scanner apparatus. It is therefore highly desirable to provide a method, and companion apparatus, for providing a rapidly-processible volumetric medical imaging display. 
     BRIEF SUMMARY OF THE INVENTION 
     In accordance with the invention, a method for providing a volumetrically-rendered projection image using reverse ray casting, comprises the steps of: acquiring, from an object volume of interest, a set of data sampled from each volume element (voxel) therein responsive to a selected characteristic of that object volume; storing the data for each object voxel in a corresponding data volume element; scanning sequentially through each data voxel within the data volume corresponding to the object volume of interest; projecting each scanned data voxel to an image plane, at a spherical angle with parameters α,β determined from a spherical angle (θ,φ)at which the object volume is to be viewed; storing a value for each image plane pixel, responsive to a selected criteria, from the values of all projected data voxel values impingent upon that image plane pixel; and then scaling the dimensions of each image plane pixel responsive to the dimensions of the corresponding object volume shape, and the involved spherical projection angle, to correct for anisotropy. The resulting stored image values can then be displayed if desired. 
     Apparatus utilizing this method includes: memory means for storing the object volume (3D) data; means for sequentially addressing all object volume elements within the selected volume of interest, to obtain the data stored for the voxel then addressed; means for modifying the spherical angle parameters (θ,φ) at which the object is to be viewed to obtain new spherical angle parameters (α,β) of a ray which projects the data value in each data voxel onto the projection plane; memory means for storing the data of each projected ray impinging in each picture element (pixel) of the image plane; and means for determining if the projected data value is to be placed in the image memory for that pixel. 
     Thus, no recalculation or interpolation of the object volume into the intermediate data space, prior to projection to the image plane, is required, so that greater speed and efficiency results. 
     In a presently preferred embodiment; the method may use either maximum pixel intensity storage, or data intensity averaging. 
     Accordingly, it is an object of the present invention to provide a novel method and apparatus for reverse ray casting volumetrically-rendered projection images from a three-dimensional data set. 
     This and other objects of the present invention will become apparent upon reading of the following description of the invention, when considered in conjunction with the associated drawings. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a schematic of the sampled object volume-of-interest, an associated data volume and a image projection plane involved in volumetrically-rendering a reversed ray-cast projection in accordance with the principles of the present invention; 
     FIG. 2 is a pair of geometric 2D configurations corresponding to like views of object and data spaces, and useful in defining necessary scaling constants; 
     FIG. 3 is a schematic block diagram of means for carrying out the method of the present invention, with respect to providing a maximum intensity projection; and 
     FIG. 4 is a schematic block diagram of a portion of the apparatus of FIG. 3, reconfigured for providing a sum, or average, intensity projection. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     In an image display system, such as for displaying volumetrically-rendered projection images of a sample 10 from any arbitrary viewing angle, e.g. a spherical projection angle denoted by angle parameters (θ,φ), where θ is the angle that an extension 15&#39; of a viewing ray 15 makes upon the X-Y plane, and φ is the angle of ray 15 with respect to extension 15&#39;, an object volume 11 is analyzed by at least one desired modality, such as a nuclear magnetic resonance (NMR) scanner and the like. Sample volume 11 is scanned in such a manner as to create a series of stacked, contiguous slices or sheets OS1, OS2, . . . , OSk, . . . each of which contains the same number of object volume elements (voxels) OV. Each voxel has a rectangular profile in the sheet plane (say, the X-Y plane); while the complementary sides S may be of equal length, so that this profile may be square, the sheet thickness T is generally greater than the length of either side. Thus, the first object slice OSl contains a first multiplicity of object voxels OVi,j,l, where i and j are the respective x-axis and y-axis positions of the voxel. Similarly, the second object slice OS2 contains object voxels OVi,j,2. An arbitrary object slice OS k  contains voxels OV i ,j,k, where k is the z-axis position of that voxel. 
     Each object voxel OV i ,j,k is analyzed and the data value thereof is placed in a corresponding data voxel DV i ,j,k of a data volume 12. Data volume 12 is a simple cubic i,j,k lattice, even though the thickness of each object slice OSk and each object voxel face size (the size of the voxel in the x-y plane) will not generally be the same. That is, not only may the object volume have different x,y and z dimensions for each voxel, but also the total number of voxels in any dimension need not be the same. For example, a typical MR 3D scan may provide each slice with a 256×256 matrix of voxels, and may involve 128 slices; each slice thickness T may be on the order of 3 mm., while the sides S of each of the voxels in that slice may be 1 mm. and the like. It should be noted that resampling of the 3D data is not necessary, in converting the value of each voxel of the multi-sliced object volume 11 into the data value stored therefore in the corresponding voxel of data volume 12, even though the object voxels will not have correct dimensions when placed in the data space 12. 
     In accordance with one aspect of the invention, an image of object 10 is projected upon a projection plane 14 by ray casting toward the image plane 14 from a lattice point in data voxel DV i ,j,k For convenience, the lattice point may, for example, be the data voxel vertex closest to the data volume origin. The cast ray 17 leaves the data space 12 at a projection angle with spherical angular parameters (α,β) transformed from the parameters of the spherical angular parameters (θ,φ) at which the object space 11 is viewed. These two angles are not the same, due to the geometric distortion caused by use of a cubic data volume 12 with a non-cubic object volume 11. However, the projected ray 17 does have a X-Y plane extension 17&#39; which makes an angle α with respect to the X axis of the data space, and ray 17 makes an angle β with the Z axis. Thus, angles α and β are determined by a rotation process (to be discussed hereinbelow) to correspond to viewing the object space 11 at the desired viewing angle θ ,φ (assuming operation in spherical coordinates). Hitherto, a pixel 16 in the image plane 14 has been cast towards the data volume, causing much computational time to be required to determine which of the data volume lattice point/voxel values are to be processed for a ray 17 cast from that pixel 16; complex algorithms were required to determine how close to the cast ray a lattice point/data volume voxel had to be for inclusion for each pixel 16. In the present method, each of the rays 17 is cast in the opposite direction, from the data volume voxel lattice point toward the image plane. 
     While all rays 17 impinge upon some portion of the image plane, only those rays falling within the image plane pixel 16a under consideration are allowed to contribute to the data for that image plane pixel. Thus, having chosen a portion of the object volume 11 to view and a viewing angle θ,φ at which to view this selected object volume, the data value in each voxel of the corresponding portion of the data volume is cast at some angle α,β (corresponding to viewing the distorted data space with respect to the object space) toward the image plane. The data value in a first voxel (say, voxel DVi,l,k) is thus back-projected along ray 17a, in accordance with the θ and φ values chosen. This ray 17a impinges upon image plane 14 at a position 18a within pixel 16a, and, as this is the first ray to impinge upon this pixel, the intensity value of the incident data is attributed to (stored in) the desired pixel 16a. The next voxel in the data volume (say voxel DVi,2,k) has its associated ray 17 b projected at the same angular (α,β)configuration from the voxel lattice point, and its position 18b upon image plane 14 is noted. Assuming that impingement position 18bis within desired pixel 16a, the second projected value is (for a maximum pixel projection) compared with the now-stored first value and the larger (more intense) value is placed in storage for pixel 16a. It will be understood that, for an averaged-intensity projection, the value of a current projected data voxel is added to the sum already stored for the image panel pixel upon which that projection ray impinges, and the sum eventually divided by a counted number of such impinging rays, for that pixel. As each voxel in the selected data volume is sequentially entered and projected toward image plane 14, a data volume voxel (say, voxel DVi,3,k) is eventually projected along its associated ray 17p and does not impinge within the desired pixel 16a, so that its intensity data is not compared to the intensity data presently stored for pixel 16a; the maximum intensity data for pixel 16a is now established, for that projection of the data at the particular θ,φ three-dimensional angle of view. However, the ray 17p does, in fact, have an impingement point 18p which falls within another image plane pixel (say, pixel 16b) and is compared to the intensity data stored therein and the larger value is, after the comparison, returned to storage for that pixel. It will be understood that all intensity values are reset to zero when a new projection is to be taken. Thus, each of the image plane pixels is reset at the start of an image projection procedure, and all of the data volume voxels (in the entire space or in the selected portion, as set by the portion of the object volume 11 selected) are individually and sequentially scanned; the intensity data value in each data voxel DV is projected through an associated ray 17 to impinge upon image plane 14 in one pixel 16 thereof, with the maximum value in each pixel being compared between the present value of the ray-casted data volume voxel, to determine the larger thereof, which larger value is then stored as part of the maximum intensity image. In practice, for a maximum pixel projection, the stored maximum intensity value will be changed only if the newly-cast data voxel value is greater than the data value already stored for the image plane pixel upon which the newly-cast ray impinges. 
     In accordance with another aspect of the present invention, the data projection is scaled and any anisotropy between the object space and the image plane is removed by only a single set of calculations, after back-projection is complete. Referring now to FIG. 2, it will be seen that, because object space 11 is a real volume while data space 12 is an abstract concept, it is necessary to determine the amount of distortion of the data projection due to the presentation of the cubic data volume lattice 12 at a different angle γ, in a first plane, then the angle ψ at which an arbitrary viewing direction 19 will be positioned with respect to both the object space 11 and data space 12. It will be seen that the apparent dimensions of each voxel are going to change as the effective elevation angles ψ and γ change. It will be seen that, if the aspect ratio A (defined as the ratio of the actual slice thickness T in object volume 11 to the actual pixel size S in the same object volume 11) is not unity (i.e. is greater than unity, as the object voxel is not a cubic voxel, as will be encountered in data space 12), then the angles ψ and γ of elevation will not only not be the same, the effective elevation angle ψ in the data space will not be the same as the actual elevation angle γ in the object space. Rotation of the data is in accordance with an object elevation angle obtained by 
     
         ψ=tan.sup.-1 ((1/A)(tan[γ])). 
    
     Thereafter, the projected data can be scaled to have the correct height in the object space, by multiplication of all projected data heights by the elevation scale factor. The old projected image height H can be corrected with an effective scale factor Ea, where 
     
         E.sub.s =sqrt((A cos γ).sup.2 +sin.sup.2 γ) 
    
     and the new height H&#39;=H·E s . 
     Utilizing the above relationship, the rotation of data space angles (α,β) becomes angles (θ,φ), because the distortion is only along 1 axis, so that angle θ equals angle α. The elements of the three-by-three rotational matrix [M] can be determined, and given the two involved rotational angles, these relationships can be used to determine the data space-to-image plane transformations: 
     
         X&#39;=M1X+M2Y+M3Z+XO and 
    
     
         Y&#39;=M4X+M5Y+M6Z+YO, 
    
     where M1-M6 are the first two rows of the rotational matrix (i.e. M1=-sinθ, M2=cosθ sinψ,M3=O,M4=-cosθ sinψ, M5=-sinθ sinψ and M6=cosψ), X&#39; and Y&#39; are the locations on the image plane of the projected point, and XO and YO are image plane X and Y offsets (respectively referenced to the X and Y lowest value points) at which the selected portion of the image plane begins. After the data is projection onto image plane 14, the image is scaled to correct for the effect of the anisotropic object voxels. It will be seen that factors M1-M6 can be precalculated, at the beginning of a projection (given θ and φ), and these precalculated numbers used for all rotation calculations. 
     Referring now to FIG. 3, apparatus for use of this method may comprise a subassembly 20 for inclusion in an imaging system. The subassembly includes a 3D data memory means 22 for storing slice data as received at a data input 22a from the modality apparatus sampling the object-to-be-investigated. The data associated with each object voxel is stored at the address of that voxel, responsive to voxel address input information received at a voxel address input 22b from the modality apparatus (e.g. from the modality control data processing unit (CPU) 27, and the like). Once the data memory means is filled (corresponding to the transfer of all required data from object data 11 to data volume 12), the object volume portion of interest is selected and data establishing its starting corner and extent in the X, Y and Z directions is sent from CPU 27 to an input 25a of an address generator means 25. Means 25 sequentially provides, at an address output 25b, the X,Y,Z address of each voxel within the object volume selected. This sequential succession of voxel X,Y,Z addresses at output 25b is provided to an output-data-address input 22c of the data memory means 22, causing the stored intensity data for that one voxel then addressed to be output from data memory means output 22d. The sequence of voxel X,Y,Z addresses is also provided to a first input 30a of a rotational parameter calculation means 30, which receives angle α,β information via the system computer (CPU 27 or the like) as the calculated matrix element M1-M6 values, to provide at an output 30c the address X&#39;,Y&#39; of the image plane pixel corresponding to that object X,Y,Z pixel when viewed at a selected viewing angle θ,φ. The viewing angle θ,φ information is entered into the system, is processed by CPU 27 and the results entered into inputs 35b and 35c of a viewing matrix means 35, to provide matrix elements M1-M6 at its output 35a and thence to rotate means 30. The image plane pixel address X&#39;,Y&#39; appears at an address input 40a of a frame buffer acting as an image plane memory means 40. Simultaneously, the intensity data, projected from the data space to the projection plane, appears at the image plane memory means new data input 40b, from 3D data memory means output 22d. This data also appears at the new data input 45a of a data comparator means 45. Intensity data previously saved in the image plane memory means 40 for that address, at input 40a, appears at an old data output 40c, and thence at an old data input 45b of the comparator means. The old and new data at inputs 45b/45a, respectively, are compared in means 45 and an output 45c thereof is enabled to a selected logic condition (e.g. a high logic level) if the new data at input 45a is of greater amplitude than the old data at input 45b. Output 45c is connected to a substitute-control input 40d of the image plane memory means, to cause the data stored at the address controlled by input 40a to be changed to accept the new data at input 40b, if the substitute-data control input 40d is at the selected logic level. Thus, the stored data is initially reset, as by a signal through a data/control port 40e (from CPU 27), and the data of greatest intensity is stored for each image plane pixel location X&#39;,Y&#39; responsive to a comparison indicating that the new data exceeds the value of the previously-stored old data. After all of the selected addresses are sequentially scanned by address generator 25, the data stored in image plane memory means 40 is scaled in CPU 27, and the scaled image plane data can be withdrawn from memory means 40 for display, permanent storage or the like purposes. 
     In accordance with another aspect of the present invention, maximum pixel projections need not be utilized; FIG. 4 illustrates a modified apparatus 20&#39; portion in which the data comparator means 45 is replaced by a data adder means 50. The average intensity of each image plane pixel is found by the following methodology: for each object volume voxel address X,Y,Z, new data is applied to a first input 50a of adder means 50; simultaneously therewith, the rotated address appears as to corresponding image plane address X&#39;,Y&#39; at image plane memory means address 40a. The appearance of new address data is sensed by a trigger means 52, to provide a substitute-data signal at input 40d. This signal occurs with a sufficient delay so that the previously stored data from memory means 40, and available at a data output 40c thereof, has been applied to adder means second input 50b, and the sum of the new and stored data is now available at the data input 40b of the image plane memory means. The summed data is stored in means 40, for that pixel of the image plane, until all of the object volume voxels in the volume of interest have been scanned, and have made their contribution to the associated pixels of the image plane. The image plane pixel sum values are now operated upon by the CPU, via data port 40e of the memory means, in accordance with the number of additions for each image plane pixel (which is a number obtained by adding activations of the input 40d for each pixel and is also stored in image plane memory means 40) to derive the average intensity for each image plane pixel, for display, storage and the like. 
     While the present invention has been described with one presently preferred embodiment thereof, many modifications and variations will now become apparent to those skilled in the art. It is our intent, therefore, to be limited only by the scope of the appending claims and not by the specific details and instrumentalities presented by way of description of the presently preferred embodiment of the present application.