Abstract:
A depth map generating apparatus comprises a three-dimensional (3D) region setting section and first through third processors. The 3D region setting section defines and sets a 3D region of a given shape to enclose an object, the 3D region being defined in 3D coordinates. The first processor performs a coordinate computation for each pixel of the projection plane to attain a first distance in a desired view direction between a projection plane set in accordance with the view direction and the surface of the 3D region. The second processor executes a ray tracing process to attain a second distance in the view direction between the surface of the 3D region and the surface of the object. The third processor adds the first and second distances for each pixel of the projection plane.

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates to a pseudo three dimensional (3D) display, i.e., perspective display of a 3D object, and, more particularly, to a depth map generating method and apparatus for generating a depth map of the 3D object, which is used in preparing the perspective display image, from 3D image data that represents the 3D object and is a collection of voxels, elements of 3D structure. 
     2. Description of the Related Art 
     There are methods and means for data processing which prepare pseudo 3D images or perspective images from 3D image data of which, like a series of adjoining computed tomography (CT) images, consists of a number of voxels representing a 3D object. The perspective image can be displayed for such analysis and discrimination of the image data as is involved in medical diagnosis. 
     The perspective image is prepared as follows. 
     First, for each pixel of a view plane forming a two dimensional (2D) field of view corresponding to the desired view direction, i.e., a projection plane, the distance from the projection plane to the surface of an object is acquired from image data of 3D structure constituted by voxels, then a depth map indicating the distribution of the distance to the object surface in the desired view direction is attained. Then, a predetermined gradation process is executed for assigning gradation like a density value to each pixel of the depth map, thereby preparing the perspective image. 
     In order to permit an operator to selectively change view directions on a perspective display through his operation, the above process for preparing a depth map must be repeated in an ordinary system every time the view direction is changed. 
     The generation of a depth map, which can be done using a general-purpose computer, normally takes a significant time, e.g., several tens of minutes since it is necessary to discriminate whether or not an object exists in the view direction for each pixel of a 2D view field for each and every voxel. In order to reduce this processing time, conventional systems often utilize a special-purpose processor that is specifically designed to execute a single type of data processing mentioned above. 
     Even the conventional systems using such a special-purpose processor require, for example, several seconds. This is still too long to realize true real time processing. 
     SUMMARY OF THE INVENTION 
     Accordingly, it is an object of this invention to provide depth map generating method and apparatus which overcome the above shortcomings and ensure high-speed generation of a depth map. 
     A depth map generating apparatus according to this invention comprises: image data memory means for storing voxel data representing a three-dimensional object; 
     processing means for obtaining total distances between points on a surface of said three-dimensional object and a projection plane orthogonal to a desired view direction, said processing means including: 
     three-dimensional region determining means for determining a three-dimensional region enclosing said three-dimensional object, whereby each of said total distances is divided into a first distance measured between said projection plane and the surface of said three-dimensional region and a second distance measured between the surface of said three-dimensional region and the surface of said three-dimensional object, 
     coordinate computation means for determining lengths of the first distances, with respect to each pixel on said projection plane, by coordinate computation, 
     ray tracing means for determining lengths of the second distances with respect to each pixel on said projection plane by ray tracing, and 
     adding means for adding the lengths of the first and second distances together to obtain each of said total distances, and 
     displaying means for displaying an image on a two-dimensional screen in a gradation corresponding to said total distances obtained by said adding means 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIGS. 1 and 2 are exemplary diagrams for explaining the principle of one embodiment of this invention; and 
     FIG. 3 is a schematic block diagram illustrating the arrangement of depth map generating apparatus according to the embodiment of this invention based on the above principle. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     The principle of one embodiment of this invention will be described below with reference to FIGS. 1 and 2. 
     FIG. 1 illustrates an object 13, a 3D region 11 so set as to enclose the object, for example, a regular hexahedron or a cube, and a projection plane 12 in a desired view direction. Cube 11 has six faces Cl through C6 as shown in FIG. 2. 
     In the illustrated 3D coordinates (x, y, z), Ld is a normal drawn from a point Ps (x, y, z) on projection plane 12 toward cube 11 and Cl (x, y, z) is the cross point between Ld and one surface Cl of cube 11. Let Zd be the distance between the point Ps (x, y, z) and point C1 (x, y, z). Let Qs (x, y, z) be the cross point between object 13 and a line Ldl which is an extension line from C1 (x, y, z), and let Zc be the distance between C1 (x, y, z) and this point Qs (x, y, z). In this case, object 13 exists on line Ld1, not Ld. In generating a depth map in 2D coordinates (x&#39;, y&#39;) on projection plane 12, therefore, once the view direction (ρ, θ) is determined, the distance Z (x&#39;, y&#39;) between Ps (x&#39;, y&#39;) on projection plane 12 or Ps (x, y, z) and Qs (x, y, z) is expressed as: ##EQU1## 
     The above can also apply to a case in which the cross point between normal Ld from Ps (x, y, z) and cube 1 exists on other face than C1 (i.e., any of C2-C6). Here, there simultaneously exist more than one cross point C (x, y, z) on projection plane 12 with respect to three or less of faces C1-C6, depending on the view direction (ρ, θ). There are eight types of cross points involving three faces. 
     C1 (x, y, z), C5 (x, y, z), C6 (x, y, z) , 
     C1 (x, y, z), C2 (x, y, z), C3 (x, y, z) , 
     C2 (x, y, z), C3 (x, y, z), C4 (x, y, z) , 
     C4 (x, y, z), C5 (x, y, z), C6 (x, y, z) , 
     C1 (x, y, z), C2 (x, y, z), C5 (x, y, z) , 
     C1 (x, y, z), C3 (x, y, z), C6 (x, y, z) , 
     C3 (x, y, z), C4 (x, y, z), C6 (x, y, z) , and 
     C2 (x, y, z), C4 (x, y, z), C5 (x, y, z) . 
     With respect to two faces, there are 12 types of cross points. 
     C1 (x, y, z), C2 (x, y, z) , 
     C1 (x, y, z), C3 (x, y, z) , 
     C1 (x, y, z), C5 (x, y, z) , 
     C1 (x, y, z), C6 (x, y, z) , 
     C2 (x, y, z), C3 (x, y, z) , 
     C2 (x, y, z), C4 (x, y, z) , 
     C2 (x, y, z), C5 (x, y, z) , 
     C3 (x, y, z), C4 (x, y, z) , 
     C3 (x, y, z), C6 (x, y, z) , 
     C4 (x, y, z), C5 (x, y, z) , 
     C4 (x, y, z), C6 (x, y, z) , and 
     C5 (x, y, z), C6 (x, y, z) . 
     With respect to one face, there are six types of cross points. 
     Cl (x, y, z) , 
     C2 (x, y, z) , 
     C3 (x, y, z) , 
     C4 (x, y, z) , 
     C5 (x, y, z) , and 
     C6 (x, y, z) . 
     Once the view direction (ρ, θ) is determined, the distance Zd is specifically determined, so is the cross point C (x, y, z) between Zd and cube 11. In any of the above cases, the ray tracing process needs to be executed with respect only to the distance Zc, and with Zc attained, the distance Z (x&#39;, y&#39;) can be attained from equation (1). 
     The reason why generation of a depth map in the conventional systems takes a significant time is that all the distances from projection plane 12 to object 13 are attained based only on a ray tracing algorithm which fails to distinguish a region where object 13 exists and a region where it does not exist. By contrast, according to the embodiment of this invention, the ray tracing algorithm is executed with respect only to the distance Zc from one surface of cube 11 to the surface of object 13, and the distance Zd between projection plane 12 and cube 11 can be attained through a simple coordinate computation. Therefore, a depth map can be generated at a high speed. 
     A specific description is now given of a depth map generating apparatus according to one embodiment of this invention based on the above principle. 
     As shown in FIG. 3, the depth map generation apparatus according to this embodiment comprises a 3D address generator 1, an image data memory 2, a detector 3, a counter 4, a depth map memory 5, a 2D address generator 6, an adder 7, a Zd memory 8 and an arithmetical and logical unit (ALU) 9. The address generator 1, detector 3 and counter 4 constitute a ray tracing processor 10. 
     Image data memory 2 stores 3D image data consisting a number of adjoining sliced images or voxels of a target body, which are collected by an image generating apparatus such as an X-ray CT apparatus or a magnetic resonance imaging (MRI) apparatus, in the form of binary data, either &#34;0&#34; or &#34;1&#34; depending on whether or not an object exists. The 3D image data, which normally consists of gradation data for each voxel, is converted into the binary data with a given gradation value as a threshold. 3D address generator 1 generates a 3D address for reading out the contents of image data memory 2. Counter 4 measures a clock pulse CPO, and detector 3 outputs a signal to stop the counting operation of counter 4 when data read out from image data memory 2 is &#34;1.&#34; Ray tracing processor 10, constituted by address generator 1, detector 3 and counter 4, ascertains the distance Zc between one surface of 3D region (e.g., cube) 11 set to enclose object 13 and the surface of object 13 (see FIG. 2). 
     ALU 9 performs a coordinate computation to compute the distance Zd between the surface of cube 11 and projection plane 12, which is determined by the view direction (ρ,θ). The computed distance Zd is then written into Zd memory 8; the distance Zd stored in memory 8 can be accessed by address data D (x&#39;, y&#39;) corresponding to the 2D coordinates (x&#39;, y&#39;) on projection plane 12. 
     Adder 7 adds the counting output Zc of counter 4 and the output Zd of Zd memory 8. That is, adder 7 executes the computation of equation (1). The output Z (x&#39;, y&#39;) of adder 7 is then written in depth map memory 5; a write address of this memory 5 is generated by 2D address generator 6 in terms of 2D coordinates (x&#39;, y&#39;). Counter 4, which is preset with a maximum value sufficiently larger than Z (x&#39;, y&#39;) for object 13, stops counting if detector 3 does not detect &#34;1&#34; when the count reaches the maximum value, and the maximum value is written directly (without going through adder 7) into depth map memory 5. 
     With the above arrangement, once the view direction (ρ, θ) is determined, the distance Zd is attained by ALU 9 and is written in Zd memory 8 in association with 2D coordinates (x&#39;, y&#39;), thereby preparing a Zd table in memory 8. Since there is no object existing in the space between the surface of cube 11 and projection plane 12, the Zd table can be prepared at a high speed by a simple coordinate computation, not a comparatively slow ray tracing algorithm. 
     3D address generator 1 operates in synchronism with the clock pulse CPO. With Cs (x, y, z) being the start address of the initial value and v (Δx, Δy, Δz) being a 3D vector component (unit vector) in the view direction, the output R (x, y, z) of 3D address generator 1 can be expressed as: 
     
         R (x, y, z)=(x, y, z)+n.v(Δx, Δy, Δz)    (2) 
    
     where Cs (x, y, z), v (Δx, Δy, Δz) and R (x. y, z) are binary data and n is a positive integer representing the number of clock pulses CPO repeated. 
     The coordinates (X, Y, Z) of image data memory 2 corresponding to R (x, y, z) can be expressed as: 
     
         X=Cs(x)+nΔx, 
    
     
         Y=Cs(y)+nΔy, and 
    
     
         Z=Cs(z)+nΔz where Cs (x), Cs (y) and Cs (z) are the x-, y- and z-coordinates of the start address. 
    
     Data is read out from image data memory 2 by 3D address generator 1. When the read data is &#34;1&#34; (which means that the object is reached), detector 3 outputs a count disable signal which causes counter 4 to stop counting the clock pulse CPO. The distance between C (x, y, z) and Qs (x, y, z) is expressed as: ##EQU2## Based on the 2D address D (x&#39;, y&#39;) corresponding to 2D coordinates (x&#39;, y&#39;) of projection plane 12, the associated Zd is read out from Zd memory 8 and is added to the output Zc of counter 4 in adder 7, and the resultant value is written in depth map memory 5. When &#34;1&#34; is not detected by detector 3, the aforementioned, given maximum value is written in depth map memory 5. The above operation is performed for every point Ps (x&#39;, y&#39;)=Ps (x, y, z) on projection plane 12 to thereby preparing a depth map on projection plane 12 in depth map memory 5. 
     Needless to say, this invention is in no way limited to the particular embodiment described above and illustrated in the accompanying drawings, but it can be modified in various manners within the scope and spirit of the invention. 
     For instance, the 3D region 11 set to enclose object 13 may be a parallelepiped, a combination of a plurality of adjoining cubes, other polyhedron or a sphere as well as a cube. Since it is effective to set the 3D region enclosing object 13 as small as possible, it is desirable that the 3D region circumscribes object 13. The setting of the 3D region and the computation of ALU 9 may be facilitated by selecting a proper 3D region from among a variety of 3D regions of different preset sizes, such that it encloses object 13. The maximum value set in counter 4 for the case where the detection signal of detector 3 cannot be attained or the line of the ray tracing does not cross the object may be determined by the coordinates of the back face of a set 3D region, and when the count value exceeds the maximum value, a value corresponding to a preset background may be written in depth map memory 5.