Method and system for distinguishing surfaces in 3D data sets (''dividing voxels'')
First Claim
1. A method of creating a surface for an arbitrary segmentation of an object from a three-dimensional data set, comprising:
- identifying a set of surface voxels of the segment;
for each voxel in the set;
calculating which of its neighbors are inside voxels to generate a case vector; and
using the case vector to determine the location and direction of a polygonal surface within the voxel with which to divide the voxel; and
generating all of the polygonal surfaces to create a segment surface.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method for creating a surface for an arbitrary segment of a three-dimensional data set are presented. In exemplary embodiments according to the present invention the method includes initially identifying a set of surface voxels of the segment. For each voxel in the set information as to which of its neighbors are inside voxels can be obtained, and the results can be utilized to determine the location and direction of a polygonal surface dividing the voxel. The surface can then be obtained by connecting all of the polygonal surfaces. In exemplary embodiments according to the present invention the polygonal surfaces can comprise triangles. In exemplary embodiments according to the present invention the surface can be displayed in either a wireframe mode or a solid mode. In exemplary embodiments according to the present invention mesh reduction can be implemented to reduce the number of polygons in the final surface. In exemplary embodiments of the present invention the volume bounded by the mesh surface can be calculated. Additionally, if the mesh surface generated is not a closed surface, as when, for example, the segmented object has been cropped prior to generation of the mesh surface, any “holes” within it can be closed by a mesh and then the volume can be calculated.
36 Citations
21 Claims
-
1. A method of creating a surface for an arbitrary segmentation of an object from a three-dimensional data set, comprising:
-
identifying a set of surface voxels of the segment;
for each voxel in the set;
calculating which of its neighbors are inside voxels to generate a case vector; and
using the case vector to determine the location and direction of a polygonal surface within the voxel with which to divide the voxel; and
generating all of the polygonal surfaces to create a segment surface. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17)
-
-
16. A method of creating a surface for an arbitrary segmentation of an object from a three-dimensional data set, comprising:
-
identifying a set of outermost inside voxels of the segment;
for each voxel in the set;
calculating which of its neighbors are outside voxels to generate a case vector; and
using the case vector to determine the location and direction of a polygonal surface within the voxel with which to divide the voxel; and
generating all of the polygonal surfaces to create a segment surface.
-
-
18. A computer program product comprising a computer usable medium having computer readable program code means embodied therein, the computer readable program code means in said computer program product comprising means for causing a computer to create a surface for an arbitrary segmentation of an object from a three-dimensional data set, comprising:
-
identifying a set of surface voxels of the segment;
for each voxel in the set;
calculating which of its neighbors are inside voxels to generate a case vector; and
using the case vector to determine the location and direction of a polygonal surface within the voxel with which to divide the voxel; and
generating all of the polygonal surfaces to create a segment surface. - View Dependent Claims (20)
-
-
19. A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform a method of creating a surface for an arbitrary segmentation of an object from a three-dimensional data set, comprising:
-
identifying a set of surface voxels of the segment;
for each voxel in the set;
calculating which of its neighbors are inside voxels to generate a case vector; and
using the case vector to determine the location and direction of a polygonal surface within the voxel with which to divide the voxel; and
generating all of the polygonal surfaces to create a segment surface. - View Dependent Claims (21)
-
Specification