WO2012115592A1 - A method and an apparatus for generating a vascular model - Google Patents

A method and an apparatus for generating a vascular model Download PDF

Info

Publication number
WO2012115592A1
WO2012115592A1 PCT/SG2012/000050 SG2012000050W WO2012115592A1 WO 2012115592 A1 WO2012115592 A1 WO 2012115592A1 SG 2012000050 W SG2012000050 W SG 2012000050W WO 2012115592 A1 WO2012115592 A1 WO 2012115592A1
Authority
WO
WIPO (PCT)
Prior art keywords
mesh
faces
generating
trunk
intersection
Prior art date
Application number
PCT/SG2012/000050
Other languages
French (fr)
Inventor
Jimin Liu
Feiniu Yuan
Original Assignee
Agency For Science, Technology And Research
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Agency For Science, Technology And Research filed Critical Agency For Science, Technology And Research
Publication of WO2012115592A1 publication Critical patent/WO2012115592A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/41Medical

Definitions

  • the invention relates to a method and an apparatus for generating a vascular model.
  • a segmented volume of blood vessels of a patient may be obtained by performing medical imaging. It is known to convert this segmented volume into a tree representation of the blood vessels and this tree representation is then converted into a plurality of branches.
  • the branches representing individual blood vessel segments are vectorized for ease of storage, analysis and representation.
  • a downside of having a vectorized representation is that it may be difficult to create a smooth and accurate mesh for the blood vessels in a fast and accurate manner. Since vessels usually have very small sizes, existing methods tend to create jagged meshes from the segmented volume. In addition, vessels tend to branch and may multiple branches along its length. It is difficult to model these vascular structures with existing methods.
  • a first aspect of the invention aims to provide a new and useful method for generating a vascular model, and an apparatus for carrying out the method.
  • a second aspect of the invention aims to provide a new and useful method for generating a mesh representing a blood vessel, and an apparatus for carrying out the method.
  • a first aspect of the invention proposes, in general terms, generating a three- dimensional vascular model by successively attaching branch meshes to a trunk mesh. Intersection points are first generated on first faces of the branch mesh and second faces of the trunk mesh are identified for deletion using the intersection points. A gap between an intersection boundary and a hole boundary is then bridged and the branch mesh is truncated to complete the attachment.
  • a second aspect of the invention then proposes, in general terms, generating a mesh representing a blood vessel by approximating ellipses representing cross- sections of the vessel by a respective plurality of straight edges.
  • the plurality of straight edges of a first ellipse are mapped to the plurality of straight edges of a second ellipse.
  • a plurality of quads are then generated, each of the plurality of quads having as opposite edges one of the edges of the first circumference and one of the edges of the second circumference.
  • a specific expression of the first aspect of the invention is a method of generating a vascular model by attaching a trunk mesh and a branch mesh, each of said trunk mesh and said branch mesh being blood vessel models (e.g. the branch model may model a single blood vessel and the trunk model may model one or more blood vessels), each of said trunk mesh and said branch mesh comprising a plurality of polygonal faces demarcated by a plurality of vertices, the method comprising the steps of
  • intersection points on first faces of the branch mesh an intersection boundary being defined by the intersection points
  • a hole boundary being defined comprising an outer edge of a union of said one or more second faces
  • This method allows for the modeling of an n-furcated vasculature system in an accurate and computationally efficient manner.
  • the step of generating intersection points further comprises the steps of
  • the step of identifying one or more second faces on the trunk mesh further comprises the steps of
  • intersection points using the intersection points to build a test surface spanning the intersection boundary
  • identifying the one or more second faces by adding the test vertex to a collection of candidate vertices if the projected normal passes through the test surface, the faces associated with the collection of candidate vertices being identified as the one or more second faces. This allows for the efficient identification of the one or more second faces, and also allows for the creation of an attachment site on the trunk mesh for the branch mesh.
  • the projected normal is determined to pass through the test surface if the dot product between the projected normal and a normal of the test surface is positive. This allows for an easy way of checking if the projected normal passes through the test surface.
  • the step of bridging the gap between the intersection boundary and the hole boundary comprises the steps of associating each of the intersection points of the intersection boundary with at least one of a plurality of edge vertices delimiting the outer edge; and using the association of each of the intersection points with the at least one of the plurality of edge vertices to create the one or more third faces.
  • each of the intersection points is associated with at least one of the plurality of edge vertices using one of the one or more second faces.
  • the step of associating each of the intersection points with at least one of the plurality of edge vertices further comprises the step of minimizing respective distances between each of the intersection points and the at least one of the plurality of edge vertices.
  • the one or more third faces that are created thus are less likely to be geometrically distorted.
  • the step of truncating the first faces further comprises the steps of using the intersection boundary to divide the first faces into a first portion and a second portion;
  • the step of identifying the unwanted portion further comprises the steps of numbering each of the first faces according to an order of the first faces in the branch mesh, and identifying the unwanted portion using the respective numbers of the first faces. This has the advantage of being computationally simple.
  • the method further comprises the steps of replacing each face of the plurality of polygonal faces of said trunk mesh and said branch mesh with a plurality of replacement faces, the plurality of replacement faces being a more granular representation of the face.
  • a high quality representation that is capable of showing more detail is created. This representation also has a smaller feature resolution.
  • each face of the plurality of polygonal faces of said trunk mesh and said branch mesh are replaced with a plurality of replacement faces using a NURBS algorithm.
  • a second specific expression of the second aspect of the invention is a method for generating a mesh representing a blood vessel using a data set comprising at least a first ellipse and a second ellipse representing cross-sections of the blood vessel, the ellipses being defined by respective vascular coordinates indicative of the centroid of the respective ellipses, the method comprising the steps of approximating a first circumference of the first ellipse as a first plurality of straight edges, each of the first plurality of straight edges being sequentially ordered around the first circumference;
  • the method further comprises the step of replacing each quad of the plurality of quads with a plurality of replacement faces, the plurality of
  • a high quality representation that is capable of showing more detail is created. This representation also has a smaller feature resolution.
  • each quad of the plurality of quads is replaced with a plurality of replacement faces using a NURBS algorithm.
  • a third specific expression of the first and second aspects of the invention is a method for generating a bifurcated vascular model, the bifurcated vascular model having a blood vessel and another blood vessel, the method comprising the steps of
  • a trunk mesh that is representative of the other blood vessel
  • generating the bifurcated vascular model by using the method of generating a vascular model by attaching a trunk mesh and a branch mesh, to attach the trunk mesh and the branch mesh.
  • a fourth specific expression of the first aspect of the invention is an apparatus for generating a vascular model by attaching a trunk mesh and a branch mesh, each of said trunk mesh and said branch mesh being a model of a blood vessel, the apparatus comprising
  • an input device configured to provide said trunk mesh and said branch mesh, each of said trunk mesh and said branch mesh comprising a plurality of polygonal faces;
  • a processor containing software configured to:
  • intersection points on first faces of the branch mesh an intersection boundary being defined by the intersection points
  • a hole boundary being defined comprising an outer edge of an union of said one or more second faces; delete the one or more second faces of the trunk mesh;
  • a fifth specific expression of the second aspect of the invention is an apparatus for generating a mesh of a blood vessel using a data set comprising at least a first ellipse and a second ellipse representing cross-sections of the blood vessel, the ellipses being defined by respective vascular coordinates indicative of the centroid of the respective ellipses, the apparatus comprising
  • an input device configured to provide the data set
  • a processor containing software configured to:
  • each of the plurality of quads having as opposite edges one of the edges of the first plurality of straight edges and the correspondingly mapped edge of the second plurality of straight edges.
  • Figure 1 is a schematic drawing of a system for generating a model of a vascular system according to an example embodiment
  • Figure 2 is a flow-chart of a method of modeling a vascular system using the system of Figure 1 ;
  • Figure 3 is a schematic drawing of a tree representation that is used in the method of Figure 2;
  • Figure 4 is a flow-chart of a method for generating a mesh representing a blood vessel that is used in the method of Figure 2;
  • Figure 5a is a schematic drawing of a branch representation that is used in the method of Figure 2 with ellipses fitted;
  • Figure 5b is a schematic drawing of a coarse mesh of the branch representation of Figure 5a when produced using the method of Figure 4;
  • Figure 5c is a schematic drawing of a fine representation of the coarse mesh of Figure 5b;
  • Figure 6a is a schematic drawing of two quads
  • Figure 6b is a schematic drawing of a fine representation of the two quads of Figure 6a;
  • Figure 7a is a flow-chart of a method for generating a vascular model that is used in the method of Figure 2;
  • Figure 7b is a flow-chart showing sub-steps of the generating step of the method of Figure 7a;
  • Figure 7c is a flow-chart showing sub-steps of the identifying step of the method of Figure 7a;
  • Figure 7d is a flow-chart showing sub-steps of the bridging step of the method of Figure 7a;
  • Figure 7e is a flow-chart showing sub-steps of the truncating step of the method of Figure 7a;
  • Figure 8a to 8c are schematic drawings showing the identification of one or more intersection points in the sub-steps of Figure 7b;
  • Figure 9 is schematic drawing showing the building of a test surface in the sub-steps of Figure 7c;
  • Figure 10a is a schematic drawing of one or more second faces of another trunk mesh with another test surface;
  • Figure 10b is a schematic drawing of an intersection boundary defining the other test surface of Figure 10a and a hole boundary defining the one or more second faces of Figure 10a;
  • Figure 11 a to 11 d are schematic drawings showing the bridging of a gap between the intersection boundary and the hole boundary of Figure 10b using the sub-steps of Figure 7d;
  • Figure 12a to 12d are three-dimensional drawings showing the bridging of another gap between another intersection boundary and another hole boundary using the sub-steps of Figure 7d;
  • Figure 13 is a schematic drawing of the division of a first face using the sub-steps of Figure 7e;
  • Figure 14a to 14d are schematic drawings showing the operation of the truncating step of the method of Figure 7a.
  • Figure 15a to 15h are three-dimensional drawings showing models of a vascular system as blood vessel branches are attached using the method of Figure 7a. Detailed Description of the Preferred Embodiment
  • Figure 1 shows a system 100 for generating a model of a vascular system according to an example embodiment.
  • the system 100 comprises an input device 110, a computer 120 and an output device 130.
  • the input device 1 0 provides data 15 to the computer 120, and the computer 120 comprises software 122 that is configured to process the data 115.
  • the computer 120 then outputs the processed data 135 to the output device 130.
  • the input device 10 for example may be a storage device e.g. a hard disk or a CD reader, or may be a communication device e.g. a wired or wireless network port, or may be a data acquisition device e.g. an array of sensors or a tomographic scanner.
  • the data 115 is read off the storage device before being sent to the computer 120.
  • the input device 110 is a network device
  • the data 115 is received at the communication device and then sent to the computer 120.
  • the input device 110 is a data acquisition device
  • the data acquisition device acquires data as a reading from a physical object e.g. a CT scan of a human and processes the acquired data to produce the data 115.
  • the input device 110 may perform processing on the data 115 before sending it to the computer 120.
  • the computer 120 comprises one or more processors (not shown) that are capable of executing the software 122.
  • the software 122 is configured to process the data 115 that is received from the input device 110.
  • the data processing that is carried out by the software 122 may be one or more of the method 200 of modeling a vascular system that is shown in Figure 2, the method 400 of generating a mesh representing a blood vessel that is shown in Figure 4, and/or the method 700 of generating a vascular model that is shown in Figure 7.
  • the computer 120 may be one or more workstations or servers, or may be one or more embedded devices, or may be a distributed processing system e.g. a rendering farm.
  • the computer 120 When data processing is complete, the computer 120 outputs the processed data 135 to the output device 130.
  • the output device 130 may for example be a storage device in which case the processed data 135 is stored in the storage device. Also, the output device 130 may be a communication device capable of sending the processed data 135 to another computer (not shown) where further processing may be performed upon the processed data 135. Further, the output device 130 may be a display device e.g. a monitor where the processed data 135 is displayed.
  • FIG. 2 shows the method 200 for modeling a vascular system.
  • the method 200 uses as its input the data 115 that is provided by the input device 110.
  • Figure 3 shows a tree representation 222 with a plurality of branches.
  • the data 115 (that is sent to the computer 120) is a segmented volume 202; this segmented volume 202 serves as the input to the method 200.
  • the segmented volume 202 may be obtained by performing object segmentation on tomographic data obtained by a tomographic scanner. Alternatively, the segmented volume 202 may be read off a storage device.
  • thinning is performed on the segmented volume 202 in order to generate centerlines.
  • a reference point on the segmented volume indicating the root point of the vascular system is obtained from a user.
  • Thinning may then be performed using the method that is disclosed in Feiniu Yuan, Guangxuan Liao, Weicheng Fan, Wenhui Lang and Zhengmin Liu, "An interactive 3d visualization system based on PC using Intel SIMD, 3D texturing and thinning techniques," International Journal of Pattern Recognition and Artificial Intelligence, vol. 20, no. 3, 2006, pp. 393-416, the contents of which are incorporated herein by reference.
  • thinning may be performed using the method disclosed in K. Palagyi and A.
  • a centerline network 212 is produced at the end of step 210.
  • a tree representation 222 is constructed from the centerline network 212.
  • Each point on the centerline network 212) is mapped into a respective node of the tree representation 222 using a greedy searching algorithm.
  • the terms "point” and "nodes” are used interchangeably in this step.
  • all possible paths from the node to the root node i.e; the root point
  • the path with the shortest path length from the node to the root node is retained and the other paths determined for the node are then discarded.
  • a greedy algorithm is used to determine paths from each node to the root node. This is performed for all nodes in the centeriine network 212.
  • a tree is constructed using the centeriine network 212 and loop paths (i.e. where the retained path of a node has a loop) in the centeriine network 212 are avoided.
  • a tree representation 222 is produced at the end of step 220.
  • the tree representation 222 comprises a set of branches denoted ⁇ B-i , B 2 , BJ, where L is the number of branches in the tree representation 222. In this case L is 4.
  • step 230 the tree representation 222 is broken up into separate branch representations and then sorted in descending order of lengths.
  • a sorted plurality of branch representations 232 is produced at the end of step 230 and these branch representations 232 correspond to the branches ⁇ B-i , B 2 , B L ⁇ of the tree representation 222.
  • step 240 for each of the branch representations 232, ellipses (representing the cross-sections of the respective blood vessel) are fitted at points of the branch representation. A coarse mesh 242 representing the blood vessel is then generated and this is done using the method 400 that is shown in Figure 4. At the end of step 240 coarse meshes (denoted S / ⁇ where
  • B 4 is modeled using the ellipses b k ) , E 2k (P 2k , T 2 / a 2k , b 2k ) and E 3k ⁇ P3 k , T 3/ a 3 , bz k ).
  • E ik is a function representing an h ellipse of the branch B k .
  • E ik The parameters of E ik are P, 3 ⁇ 4 , J ik , a ik and b ik which respectively denote the centroid of the ellipse, the normal of the cross-section plane represented by the ellipse, the major radius of the ellipse, and the minor radius of the ellipse. These parameters and the vascular coordinates are contained in a data set that is associated with the branch representation 232. The data set may be created in step 210 when the segmented volume 202 is thinned.
  • the centroid for the first ellipse of each branch B ⁇ is also the centroid P of an ellipse Ey of one or more the branches Bj e ⁇ B-i , B 2l k .i ⁇ that are ordered ahead of B k .
  • the centroid P is also a centroid Py in n number of branches, that centroid is an n-furcated point.
  • centroid is a 3-furcated point.
  • step 250 a "sub-division" based "hole drilling” method is used to create a surface model of the vascular system. This is done using the method 700 that is shown in Figure 7. In the case where L meshes corresponding to L blood vessels are produced in step 240, the method 700 is repeated LA times.
  • a trunk mesh is selected as the mesh Si (corresponding to the first branch B-i).
  • a branch mesh is then selected as the mesh S 2
  • a coarse model of the vascular system is produced. Since the vascular system has a plurality of branches, the coarse model is described as an n-furcated coarse model. After the last iteration i.e. after all the branch meshes are attached, "subdivision" is performed to render the n-furcated coarse model into a fine model.
  • the trunk mesh that is used in iterations of the method 700 is branched while the branch mesh models a blood vessel with no branches of its own.
  • a method 400 of generating a mesh representing a blood vessel is described next with the aid of Figures 4, 5a, 5b and 5c.
  • This method 400 takes as its input a branch representation 232 and produces a coarse mesh 242 that represents a blood vessel.
  • Figure 4 is a flow-chart of the method 400
  • Figure 5a shows ellipses fitted onto the branch representation 232
  • Figure 5b shows a coarse mesh 242 that is produced by the method 400
  • Figure 5c shows a fine mesh 590 that is produced by the optional replacement step 450 of the method 400.
  • step 410 a plurality of ellipses are fitted at points (or "vascular coordinates") on a centerline defining the branch representation 232.
  • a plurality of ellipses are used in the creation of the coarse mesh Sk.
  • E 1/c P ⁇ , T ⁇ , a ⁇ k, b k
  • E 2k P2/0 T 2 /c, a 2k , b 2k
  • E 3 c P 3 /c, T 3/( , a 3k , b 3k ) are fitted onto the centerline of a representation of the branch B k .
  • the ellipses E ⁇ , E 2 fc,and E 3k are sequentially ordered on the centerline.
  • a circumference is approximated as a plurality of straight edges. This is done by uniformly sampling q number of vertices (respectively denoted ⁇ ,- ⁇ , v /2 , v, Q ) consecutively on the circumference of each ellipse E ik .
  • q number of vertices (respectively denoted ⁇ ,- ⁇ , v /2 , v, Q ) consecutively on the circumference of each ellipse E ik .
  • step 430 the edges of each consecutive pair of ellipses are mapped together sequentially. Step 430 is repeated for all consecutive pairs of ellipses.
  • the edges of the respective ellipses are mapped together in their index sequence. This is done by mapping together from the respective ellipses, the vertices defining the edges; in other words, the vertices are mapped together as in the following sequence: (v,-i , v, + i ,-i ), (v /2 , v, +1 , 2 ) ... (v /q , v + , q ).
  • step 440 a plurality of quads are generated to model the blood vessel.
  • the coarse mesh S / ⁇ is initialized to be empty i.e. S k ⁇ -0.
  • quads are formed between the edges of the pair of ellipses using the mapping created in step 430; where there are q number of vertices (or q number of edges) approximating the
  • each of the plurality of quads has as opposite edges one of the edges of a first of the pair of ellipses and the correspondingly mapped edge of the second of the pair of ellipses.
  • a tubular surface spanning from the ellipses to ⁇ ,+ ⁇ accordingly is formed by the plurality of quads.
  • FIG. 5b a coarse mesh resulting from the ellipses E ⁇ , E 2 k and E 3f c of Figure 5a is shown.
  • a sequence of vertices (v-u, v 2t , ⁇ > v mf ) forming a consecutive edge parallel to the centerline is the f-th axial contour of the branch; the vertices vi 8 , v 28 and v 38 form the 8th axial contour, and the vertices v-i 2 , v 2 2 and V3 2 form the second axial contour.
  • 2 to v-is define a first radial contour of the branch mesh
  • the vertices v 2 i to v 28 define a second radial contour of the branch mesh.
  • each quad of the plurality of quads of the coarse mesh S k is replaced with a plurality of replacement faces using a "sub-division" method 460 of rendering a fine mesh from a coarse mesh.
  • Figure 5c shows a fine mesh rendered from the coarse mesh of Figure 5b.
  • the "sub-division" method 460 "divides" each original face (i.e. each quad) into a plurality of smaller replacement faces which are then used to replace the original face. Note that in this method 460, new vertices are created along the edges of the original face, and thus "dividing" the edges of the original face. These new vertices are then used in the creation of the plurality of smaller replacement faces. A more granular representation of the original face is thus produced. A more granular representation is characterized by using a larger number of polygons to approximate a given surface, thus allowing for the representation of a greater amount of detail about the surface. In other words, it may be said that the detail density is increased, or that the feature resolution is made smaller.
  • the reference surface be a rough surface, because more polygons are used in the more granular representation, small details or features which are not visible in the coarse mesh become visible in the more granular representation. Also, should the reference surface be a smooth surface, because more polygons are used in the more granular representation, a given contour of a surface is approximated with more polygons, thus allowing for a more gradual transition between adjacent polygons.
  • the "sub-division" method 460 may be a NURBS based replacement algorithm as disclosed in Les Piegl, Wayne Tiller. "The NURBS Book”. Springer-Verlag, New York, Second Edition, 1997, ISBN 3-540-61545-8, the content of which is incorporated herein by reference.
  • Each original face of the coarse mesh is "subdivided” into a plurality of smaller polygonal faces, and the plurality of smaller polygonal faces is used to replace the original face, thus resulting in a fine mesh. As this takes place, each replacement face becomes associated with the original face in which the replacement face replaces.
  • Each replacement face has a face ID and the face ID value assigned to the replacement face is derived from the original face.
  • the face ID of a replacement face shows the "parentage" of the replacement face.
  • Figure 6a shows two quads (i.e. coarse faces Ci and C 2 ) while Figure 6b shows each of the two quads after replacement with a respective plurality of replacement faces (i.e. fine faces Fi to F 8 ).
  • Ci is demarcated by the vertices V-i, V 2 , V 5 and V 4 while C 2 is demarcated by the vertices V 2 , V 3 , V 6 and V 5 .
  • new vertices V 7 , V 15 are created, as are the fine faces Fi F 8 .
  • the fine faces F-i , F 2 , F3 and F 4 replace the coarse face Ci while the fine faces F 5 , F6, F 7 and F 8 replace the coarse face C 2 .
  • the face IDs of F-i, F 2 , F 3 and F 4 are C-i
  • the face IDs of F 5 , F 6 , F 7 and F 8 are C 2 .
  • FIG. 7a shows a flow-chart of the method 700. Note that the steps 710 to 760 are repeated L-1 times in order to attach together L meshes corresponding to L blood vessels.
  • a branch mesh (denoted M s ) and a trunk mesh (denoted M c ) are provided. Note that in the second and subsequent iterations of the method 700, the trunk mesh M c comprises branch meshes which were attached in earlier iterations.
  • Step 720 intersection points are generated on first faces of the branch mesh M e .
  • Step 720 comprises the sub-steps that are shown in Figure 7b, i.e. the sub- steps 722 and 724 which respectively generate a fine representation of the trunk mesh, and then detect as the intersection points locations where the first faces intersect the fine representation.
  • a fine representation M f of the trunk mesh M c is generated using the "sub-division" method 460.
  • each axial contour comprises one or more edges.
  • the detection of intersections with the fine representation Mf is thus carried out sequentially, one edge after another, for each axial contour of the branch mesh M s .
  • a plurality of intersection points is then obtained and these intersection points collectively define an intersection boundary.
  • Figure 8b shows an example where an axial contour of the branch mesh M s has an intersection with the fine representation Mf.
  • the axial contour labeled conO is deemed as having an intersection 820 with the fine representation M because the second edge 822 of the axial contour conO intersects Mf.
  • intersection points with the fine mesh Mf (i.e. the axial contour intersects the fine mesh Mf in more than one locations)
  • the intersection point that is nearest to the branching point of the centerlines of the trunk mesh and the branch mesh is used.
  • the intersection point that is nearest to the bi-furcated node is taken to be the only intersection point between the axial contour and the fine mesh Mf. The other intersection points may be ignored.
  • Figure 8c shows another example where an axial contour of the branch mesh M s does not intersect the fine representation Mf. It can be seen that all edges of the axial contour con2 have no intersection with the fine representation Mf. In this case, a vertex on the fine representation Mf that is nearest to the axial contour con2 is taken as the intersection point between the axial contour and the fine representation Mf. Thus, the vertex V 3 which is deemed to be the nearest to con2 is taken as the intersection point 830. It is noted that each axial contour is regarded as having one intersection point with the fine mesh M f . Additionally, a branch mesh Ms comprises more than one axial contours (as is seen in the branch mesh M e of Figure 8a).
  • each face of the fine representation M f is, in the method 460 (that is carried out in sub-step 722), assigned a face ID that refers to the original face from which the face of the fine representation M f is derived, a "coarse face ID" is associated with each intersection point.
  • a hole boundary is then defined comprising an outer edge of a union of the identified one or more second faces.
  • Step 730 comprises the sub-steps 731 , 732, 734, 736 and 738. These sub-steps are shown in Figure 7c.
  • a test surface is built using the intersection points generated in step 720, the test surface spanning the intersection boundary. This is done as shown in Figure 9 by generating a plurality of triangle polygons; all of the triangle polygons will share a common vertex (denoted in Figure 9), the common vertex being an intersection point. The triangle polygons are generated such that there is no overlap between any two of the triangle polygons.
  • Figures 10a and 10b together show an example of how the steps the sub-steps 731 , 732, 734, 736 and 738 are carried out.
  • the test surface is shown to be delimited by the intersection points to l and comprise the triangle polygons 1010 and 1012.
  • sub-step 732 a plurality of test vertices on the trunk mesh M c are identified.
  • test vertices are tested in the sub-steps 734 to 738 to determine if the faces which are associated with these test vertices should be a part of the second faces; if the faces associated with these test vertices are found to be "beneath" the test surface, they then should be a part of the second faces.
  • test vertices are identified, for example by selecting all vertices that are on the trunk mesh M c .
  • the trunk mesh M c is delimited by the vertices Vi to V 8 .
  • the vertices Vi to V 8 are identified to be test vertices.
  • the sub-steps 734, 736 and 738 are then performed for each test vertex that is identified in sub-step 732. In sub-step 734, a normal is projected form the test vertex.
  • sub-step 736 it is determined as to whether the projected normal passes through the test surface.
  • the projected normal is determined to pass through the test surface if the dot product between the projected normal and a normal of the test surface is positive.
  • sub-step 738 if it is determined in the sub-step 736 that the projected normal passes through the test surface, the faces which are associated with the test vertex are identified as at least part of the one or more second faces. Put differently, a face of the trunk mesh M c which contains a test vertex that is determined positively in sub-step 736 is identified to be at least part of the one or more second faces.
  • a face of the trunk mesh M c is considered to be "beneath" the test surface if a vertex of the face meets the following conditions:
  • condition ii. the point of intersection from condition i. is inside a polygon of the test surface; and iii.) the dot product of the normal of the vertex and the normal of the polygon fulfilling condition ii. is greater than zero.
  • vertices V 8 and V 7 fulfill the conditions i. to iii.
  • all the faces delimited using at least V 8 and V 7 form the one or more second faces. They are the faces F-i , F 2 , F 3 , F 5 and F 6 .
  • step 740 the one or more second faces of the trunk mesh M c are deleted.
  • the faces F-i , F 2 , F 3 , F 5 and F 6 are deleted.
  • the vertices ⁇ , V 2 , V 3 , V 4 , V 5 , and V 9 now define a hole boundary.
  • the intersection boundary is defined by the intersection points l-i , l 2 , l 3 and l 4 .
  • step 750 a gap between the intersection boundary and the hole boundary is bridged (or "repaired") by creating one or more third faces.
  • the one or more third faces are created by connecting, using edges, points on the intersection boundary with points on the hold boundary.
  • a "direct point based" method 750 for bridging the gap is disclosed next with the aid of Figure 7d and Figures 11 a to 11d.
  • this method 750 of bridging the gap between the intersection boundary and the hole boundary has the advantage that a smooth, non-twisted, and topological ⁇ correct set of one or more third faces is obtained between the hole boundary and intersection boundary. Additionally, triangles are used as the one or more third faces.
  • a direct point list is created for each intersection point. This is done by iterating through all the vertices of the hole boundary, and for each vertex of the hole boundary, the vertex is associated with an intersection point (i.e. "added" to the direct point list an intersection point) using the deleted faces Fi, F 2 , F 3 , F 5 and F 6 .
  • each intersection point is associated with a "coarse face ID" (i.e. one of the deleted faces Fi, F 2 , F 3 , F 5 and F6). Also, each of the vertices of the hole boundary (i.e.
  • each of the vertices V-i, V 2 , V 3 , V 4 , V 5 , and V g defines one or more of the deleted faces F-i, F 2 , F 3 , F 5 and F6; in other words, each of the vertices Vi, V 2 , V 3 , V 4 , V 5 , and Vg has one or more "coarse face IDs", the one or more "coarse face IDs" identifying one or more of the deleted faces F-i, F 2 , F 3) F 5 and F 6 .
  • the axial contour is said to be intersecting one of the fine faces generated by sub-dividing (as is done in step 460) the coarse face identified by the "coarse face ID”.
  • the intersection points li, l 2 , and l 4 have respective direct point lists of (V 9l V 5 ), (V g , V 5 ), (V-i, V 2 ), and (V 2 , V 3 ).
  • Figures 1 a shows that the hole boundary vertices V 5 and V 9 share the same "coarse face ID" (i.e. F 3 ) with the intersection point li.
  • the direct point list of ⁇ - ⁇ comprises the vertices V 5 and Vg..
  • intersection points having the same "coarse face ID” have respective direct points lists containing the same vertices.
  • the intersection points and l 2 have the same face ID i.e. F 3 and so they also have the same direct points list comprising V 9 and V 5 .
  • edges be created between the intersection points and l 2 and the vertices contained in their respective direct point lists i.e. (Vg, V 5 ) and (Vg, V 5 ), the edge defined by and Vg intersects the edge defined by l 2 and V 5 .
  • a modification of the direct point lists of and l 2 is thus performed in step 754.
  • step 754 the direct point list for selected intersection points are modified by assigning vertices to the direct point lists of the selected intersection points with the view toward obtaining the minimum distance between the selected intersection points and the assigned vertices.
  • the vertex V 5 is nearer to !i than
  • the vertex V g is nearer to l 2 than .
  • the assignment of V 5 to ⁇ ⁇ , and the assignment of V 9 to l 2 fulfills the minimum distance criterion.
  • Figure 1 1 b thus shows the modified direct points of intersection points l-i, l 2 , I3 and l 4 to respectively be (V 5 ),
  • edges are created between the intersection points and the vertices contained within their respective modified direct point lists. This is shown in Figure 1 1 c where is connected with V 5 , l 2 is connected with V 9 , I3 is connected with V-i and V 2l and l 4 is connected with V 2 and V 3 . It can be seen that after the creation of edges in step 756, the vertex V 4 on the hole boundary still remains unconnected.
  • step 756 since there may be hole boundary vertices whose associated "coarse face IDs" are not found to be equal to any "coarse face IDs" of all intersection points. These are unassigned boundary points and these vertices are not connected by edges in step 756. V 4 is an example of such a hole boundary vertex.
  • step 758 un-bridged gaps between the hole boundary and the intersection boundary are patched. These gaps result from vertices of the hole boundary which are still unconnected to an intersection point. The patching is done with the view toward obtaining an overall "smooth" bridging of the gap in step 750 i.e. abrupt changes are avoided in the overall contour of the one or more third faces bridging of the gap.
  • An overall "smooth" bridging may be obtained by maximizing the angles between the surfaces of polygonal faces at the bridge. In other words, when introducing a polygonal face, a view is taken towards minimizing the angles between a normal of the introduced polygonal face and the normals of existing polygonal.
  • the vertex V 4 on the hole boundary is unconnected.
  • An un-bridged gap thus exist and is defined by the vertices (l 4 , li ,V 5 ,V 4 ,V 3 ).
  • the first option is to introduce a triangle defined by (l 4 , V 3 , V 4 ) that has the normal N-i.
  • the second option is to introduce a triangle defined by (l 4 , , V 3 ) that has the normal N 2 . Let the existing triangle (l , V 2 , V 3 ) have a normal N 3 .
  • the angle between N 3 and Ni is smaller than the angle between N 3 and N 2 . Since a view is taken towards minimizing angles between normals, the first option is chosen i.e. the triangle (U, V 3 , V 4 ) is introduced and an edge is introduced connecting h with V 3 . Subsequently, using the same "smoothness" criterion as just described, triangles are introduced to create the edges li with V , l 2 with V 5 , and l 3 with V 9 .
  • Figures 2a to 12d drawings of an example of a trunk mesh before and after step 750 are shown.
  • Figure 12a shows the trunk mesh (in its coarse form) before the bridging step 750.
  • the hole boundary is 1210.
  • Figure 12b shows the trunk mesh (in its coarse form) after the bridging step 750.
  • the gap between hole boundary 1210 and the intersection boundary 1220 is bridged (or “repaired”).
  • Figures 12c and 12d then show respective fine representations of the trunk meshes of Figures 12a and 12b.
  • the hole boundary 1230 and intersection boundary 1240 are "smoother" when respectively compared to the hole boundary 1210 and intersection boundary 1220.
  • step 760 the first faces of the branch mesh M s are truncated at the intersection boundary to form the vascular model.
  • This step comprises sub-steps 762 to 766 and Figure 7e is a flow-chart of showing these sub-steps of step 760.
  • the first faces are divided into a first portion and a second portion using the intersection boundary. This is done by classifying all the vertices that define the first faces into a "low” index set and a "high” index set relative to the intersection boundary.
  • the "low” index set comprises vertices that are “below” the intersection boundary i.e. the faces defined by these vertices are substantially occluded by or located within the trunk mesh M c .
  • the "high” index set then comprises vertices that are "above” the intersection boundary i.e. the faces defined by these vertices are substantially external to or outside the trunk mesh M c .
  • each edge of the f-th axial contour is numbered sequentially increasing from an occluded end (that is occluded by the trunk mesh M c ) to an exposed end (that is out of the trunk mesh M c ). This is done in the order in which the vertices are indexed.
  • the vertex at the end nearest to the branching point of the branch mesh ⁇ ⁇ from the trunk mesh M c is assigned a low index and that end is the occluded end.
  • the vertex at the end furthest from the branching point of the branch mesh M s from the trunk mesh M c is assigned a high index and that end is the exposed end.
  • intersection point l f of an axial contour of the f-th axial contour is obtained by iteratively checking each edge of the axial contour for an intersection with the fine version of the trunk mesh M c starting from one end of the axial contour.
  • the edge is divided into the edges (v pi , I / ) and (I;, ( ⁇ + ⁇ ) ⁇ ).
  • the "low" index set for the f-th axial contour is defined to be the set of vertices (v-u, v 2i , . . .
  • Figure 13 shows a trunk mesh M c (labeled 1310) and a cutaway view of a branch mesh Me (labeled 1320). Only the third and fourth axial contours of the branch mesh Me are shown. This third and fourth axial contours respectively are defined by the vertices (v-
  • the intersection boundary is thus the edge defined by the intersection points l 3 and l 4 .
  • the "low” index set comprises vertices that are “below” the intersection boundary and thus is ⁇ vi 3 , v 2 3, v 2 , v 24 ⁇ .
  • the "high” index set comprises vertices that are "above” the intersection boundary and thus is ⁇ v 33 , v 43 , v 3 , v 44 ⁇ .
  • 4 , V 24 , V 23 and V13 are in the "low” index set and thus the flag of the face 1326 is set to 1 .
  • V 34 , V 44 , V43 and V 33 are in the "high” index set and so the flag of the face 1322 is set to 2.
  • the face 1324 is defined by V 24 , V 3 , V 33 and V 23 and thus has vertices from the "low” index set, and also vertices from the "high” index set.
  • the flag of this face 1324 is set to 3 and the face 1324 is divided into a "low" portion 1324b defined by V 24 , l 4 , I3 and V23, and a "high” portion 1324a defined by U, V 34l V 33 and l 3l .
  • the faces 1322, 1324 and 1326 of this example are shown as quads, it is envisaged that the faces may be of any type of a polygon; the faces may be triangles, or pentagons. In the case where a face is a pentagon, the pentagon may be divided into a triangle and a quad.
  • an unwanted portion is identified as either the first portion or the second portion.
  • the unwanted portions are the faces 1326 and 1324b.
  • sub-step 766 the unwanted portion is deleted.
  • the faces of the branch mesh Me that remain optionally are connected to the trunk mesh M c at the
  • intersection boundary A union is then made of the branch mesh MB and trunk mesh M c .
  • FIG. 14a shows a trunk mesh 1410 with an intersection boundary defined by to l 4 .
  • Figure 14b shows a branch mesh 1420 created from a sequence of elliptical contours (i.e. circumference of ellipses to E ⁇ ).
  • Figure 14c shows the trunk mesh 1410 and the branch mesh 1420 before the unwanted portion is truncated off the branch mesh 1420.
  • Figure 14d then shows the union of the trunk mesh 1410 and the branch mesh 1420 after the unwanted portion is truncated off the branch mesh 1420.
  • the "subdivision" method 460 of rendering a fine mesh from the coarse mesh may be applied.
  • Figures 15a to 15h show models of a vascular system as it is grown i.e. branches vessels are gradually attached. In all cases, these figures show a fine representation of the meshes produced.
  • Figure 15a shows a model of a vascular system with a blood vessel, the model of the blood vessel being produced with the method 400.
  • Figure 15b shows a model of the vascular system after the deletion step 740 when a second blood vessel is to be attached using the method 700.
  • Figure 15c shows a model of the vascular system of Figure 15b after the second blood vessel is attached.
  • Figure 15d shows a model of the vascular system of Figure 15c after the deletion step 740 when a third blood vessel is to be attached using the method 700.
  • Figure 15e shows a model of the vascular system of Figure 15d after the third blood vessel is attached.
  • Figure 15f shows a model of the vascular system of 15e after a fourth blood vessel is attached.
  • Figure 15g shows a model of the vascular system of 15f after further growing to have 5 branches.
  • Figure 15h shows a model of the vascular system of 15g after further growing to show an entire vascular tree.
  • quadrilateral mesh primitive as is understood by the skilled person, it is envisaged that a "quad” may however comprise other primitives or polygons, e.g. triangles.

Abstract

A method of generating a vascular model by attaching a trunk mesh and a branch mesh, each of said trunk mesh and said branch mesh being a model of a respective blood vessel, each of said trunk mesh and said branch mesh comprising a plurality of polygonal faces demarcated by a plurality of vertices, the method comprising the steps of generating intersection points on first faces of the branch mesh, an intersection boundary being defined by the intersection points, identifying one or more second faces on the trunk mesh using said intersection points, a hole boundary being defined comprising an outer edge of a union of said one or more second faces, deleting the one or more second faces of the trunk mesh, bridging a gap between the intersection boundary and the hole boundary by creating one or more third faces, and truncating the first faces at the intersection boundary to form the vascular model. Also an apparatus.

Description

A Method and an Apparatus for Generating a Vascular Model
Field of the Invention
The invention relates to a method and an apparatus for generating a vascular model.
Background of the Invention
A segmented volume of blood vessels of a patient may be obtained by performing medical imaging. It is known to convert this segmented volume into a tree representation of the blood vessels and this tree representation is then converted into a plurality of branches. The branches representing individual blood vessel segments are vectorized for ease of storage, analysis and representation. A downside of having a vectorized representation is that it may be difficult to create a smooth and accurate mesh for the blood vessels in a fast and accurate manner. Since vessels usually have very small sizes, existing methods tend to create jagged meshes from the segmented volume. In addition, vessels tend to branch and may multiple branches along its length. It is difficult to model these vascular structures with existing methods.
Summary of the Invention
A first aspect of the invention aims to provide a new and useful method for generating a vascular model, and an apparatus for carrying out the method. A second aspect of the invention aims to provide a new and useful method for generating a mesh representing a blood vessel, and an apparatus for carrying out the method.
A first aspect of the invention proposes, in general terms, generating a three- dimensional vascular model by successively attaching branch meshes to a trunk mesh. Intersection points are first generated on first faces of the branch mesh and second faces of the trunk mesh are identified for deletion using the intersection points. A gap between an intersection boundary and a hole boundary is then bridged and the branch mesh is truncated to complete the attachment.
A second aspect of the invention then proposes, in general terms, generating a mesh representing a blood vessel by approximating ellipses representing cross- sections of the vessel by a respective plurality of straight edges. The plurality of straight edges of a first ellipse are mapped to the plurality of straight edges of a second ellipse. A plurality of quads are then generated, each of the plurality of quads having as opposite edges one of the edges of the first circumference and one of the edges of the second circumference.
A specific expression of the first aspect of the invention is a method of generating a vascular model by attaching a trunk mesh and a branch mesh, each of said trunk mesh and said branch mesh being blood vessel models (e.g. the branch model may model a single blood vessel and the trunk model may model one or more blood vessels), each of said trunk mesh and said branch mesh comprising a plurality of polygonal faces demarcated by a plurality of vertices, the method comprising the steps of
generating intersection points on first faces of the branch mesh, an intersection boundary being defined by the intersection points;
identifying one or more second faces on the trunk mesh using said intersection points, a hole boundary being defined comprising an outer edge of a union of said one or more second faces;
deleting the one or more second faces of the trunk mesh;
bridging a gap between the intersection boundary and the hole boundary by creating one or more third faces; and
truncating the first faces at the intersection boundary to form the vascular model. This method allows for the modeling of an n-furcated vasculature system in an accurate and computationally efficient manner.
Preferably, the step of generating intersection points further comprises the steps of
generating a fine representation of the trunk mesh, the fine
representation being a more granular representation of the trunk mesh; and detecting as the intersection points locations where the first faces intersect the fine representation. This makes the intersection points more accurate and less susceptible to poor positioning due to coarseness of the trunk mesh. Preferably, the step of identifying one or more second faces on the trunk mesh further comprises the steps of
using the intersection points to build a test surface spanning the intersection boundary;
identifying a plurality of test vertices on the trunk mesh; and
for each test vertex of the plurality of test vertices:
projecting a normal from the test vertex;
determining whether the projected normal passes through the test surface, and
identifying the one or more second faces by adding the test vertex to a collection of candidate vertices if the projected normal passes through the test surface, the faces associated with the collection of candidate vertices being identified as the one or more second faces. This allows for the efficient identification of the one or more second faces, and also allows for the creation of an attachment site on the trunk mesh for the branch mesh.
Preferably, the projected normal is determined to pass through the test surface if the dot product between the projected normal and a normal of the test surface is positive. This allows for an easy way of checking if the projected normal passes through the test surface.
Preferably, the step of bridging the gap between the intersection boundary and the hole boundary comprises the steps of associating each of the intersection points of the intersection boundary with at least one of a plurality of edge vertices delimiting the outer edge; and using the association of each of the intersection points with the at least one of the plurality of edge vertices to create the one or more third faces.
Preferably, each of the intersection points is associated with at least one of the plurality of edge vertices using one of the one or more second faces.
Preferably, the step of associating each of the intersection points with at least one of the plurality of edge vertices further comprises the step of minimizing respective distances between each of the intersection points and the at least one of the plurality of edge vertices. The one or more third faces that are created thus are less likely to be geometrically distorted. Preferably, the step of truncating the first faces further comprises the steps of using the intersection boundary to divide the first faces into a first portion and a second portion;
identifying an unwanted portion as either the first portion or the second portion; and
deleting the unwanted portion. Polygons of the branch mesh that are occluded by the attachment thus are deleted, consequently reducing the polygon count of the resultant mesh. Preferably, the step of identifying the unwanted portion further comprises the steps of numbering each of the first faces according to an order of the first faces in the branch mesh, and identifying the unwanted portion using the respective numbers of the first faces. This has the advantage of being computationally simple.
Preferably, the method further comprises the steps of replacing each face of the plurality of polygonal faces of said trunk mesh and said branch mesh with a plurality of replacement faces, the plurality of replacement faces being a more granular representation of the face. A high quality representation that is capable of showing more detail is created. This representation also has a smaller feature resolution.
Preferably, each face of the plurality of polygonal faces of said trunk mesh and said branch mesh are replaced with a plurality of replacement faces using a NURBS algorithm.
A second specific expression of the second aspect of the invention is a method for generating a mesh representing a blood vessel using a data set comprising at least a first ellipse and a second ellipse representing cross-sections of the blood vessel, the ellipses being defined by respective vascular coordinates indicative of the centroid of the respective ellipses, the method comprising the steps of approximating a first circumference of the first ellipse as a first plurality of straight edges, each of the first plurality of straight edges being sequentially ordered around the first circumference;
approximating a second circumference of the second ellipse as a second plurality of straight edges, each of the second plurality of straight edges being sequentially ordered around the second circumference;
sequentially mapping each of the edges of the second plurality of straight edges to a corresponding edge of the first plurality of straight edges; and
generating a plurality of quads to model the blood vessel, each of the plurality of quads having as opposite edges one of the edges of the first plurality of straight edges and the correspondingly mapped edge of the second plurality of straight edges. This method provides a computationally efficient way of modeling a blood vessel. Preferably, the method further comprises the step of replacing each quad of the plurality of quads with a plurality of replacement faces, the plurality of
replacement faces being a more granular representation of the quad. A high quality representation that is capable of showing more detail is created. This representation also has a smaller feature resolution.
Preferably, each quad of the plurality of quads is replaced with a plurality of replacement faces using a NURBS algorithm. A third specific expression of the first and second aspects of the invention is a method for generating a bifurcated vascular model, the bifurcated vascular model having a blood vessel and another blood vessel, the method comprising the steps of
using the method for generating a mesh representing a blood vessel to obtain as the branch mesh the model of the blood vessel
providing a trunk mesh that is representative of the other blood vessel; generating the bifurcated vascular model by using the method of generating a vascular model by attaching a trunk mesh and a branch mesh, to attach the trunk mesh and the branch mesh.
A fourth specific expression of the first aspect of the invention is an apparatus for generating a vascular model by attaching a trunk mesh and a branch mesh, each of said trunk mesh and said branch mesh being a model of a blood vessel, the apparatus comprising
an input device configured to provide said trunk mesh and said branch mesh, each of said trunk mesh and said branch mesh comprising a plurality of polygonal faces; and
a processor containing software configured to:
generate intersection points on first faces of the branch mesh, an intersection boundary being defined by the intersection points;
identify one or more second faces on the trunk mesh using said intersection points, a hole boundary being defined comprising an outer edge of an union of said one or more second faces; delete the one or more second faces of the trunk mesh;
bridge a gap between the intersection boundary and the hole boundary by creating one or more third faces; and
truncate the first faces at the intersection boundary to form the vascular model.
A fifth specific expression of the second aspect of the invention is an apparatus for generating a mesh of a blood vessel using a data set comprising at least a first ellipse and a second ellipse representing cross-sections of the blood vessel, the ellipses being defined by respective vascular coordinates indicative of the centroid of the respective ellipses, the apparatus comprising
an input device configured to provide the data set; and
a processor containing software configured to:
approximate a first circumference of the first ellipse as a first plurality of straight edges, each of the first plurality of straight edges being sequentially ordered around the first circumference;
approximate a second circumference of the second ellipse as a second plurality of straight edges, each of the second plurality of straight edges being sequentially ordered around the second circumference;
sequentially map each of the edges of the second plurality of straight edges to a corresponding edge of the first plurality of straight edges; and
generate a plurality of quads to model the blood vessel, each of the plurality of quads having as opposite edges one of the edges of the first plurality of straight edges and the correspondingly mapped edge of the second plurality of straight edges.
Certain embodiments of the present invention may have the advantages of:
- being capable of generating a model of an n-furcated vasculature
system;
- being capable of generating topological^ accurate model of a blood
vessel;
- being capable of generating meshes that are accurate and smooth;
- being capable of rejecting spurious polygons of the meshes which are artifacts of the process of generating the branches; and
- being computationally efficient.
Brief Description of the Figures
By way of example only, an embodiment will be described with reference to the accompanying drawings, in which:
Figure 1 is a schematic drawing of a system for generating a model of a vascular system according to an example embodiment;
Figure 2 is a flow-chart of a method of modeling a vascular system using the system of Figure 1 ;
Figure 3 is a schematic drawing of a tree representation that is used in the method of Figure 2;
Figure 4 is a flow-chart of a method for generating a mesh representing a blood vessel that is used in the method of Figure 2; Figure 5a is a schematic drawing of a branch representation that is used in the method of Figure 2 with ellipses fitted;
Figure 5b is a schematic drawing of a coarse mesh of the branch representation of Figure 5a when produced using the method of Figure 4;
Figure 5c is a schematic drawing of a fine representation of the coarse mesh of Figure 5b;
Figure 6a is a schematic drawing of two quads;
Figure 6b is a schematic drawing of a fine representation of the two quads of Figure 6a;
Figure 7a is a flow-chart of a method for generating a vascular model that is used in the method of Figure 2;
Figure 7b is a flow-chart showing sub-steps of the generating step of the method of Figure 7a;
Figure 7c is a flow-chart showing sub-steps of the identifying step of the method of Figure 7a;
Figure 7d is a flow-chart showing sub-steps of the bridging step of the method of Figure 7a;
Figure 7e is a flow-chart showing sub-steps of the truncating step of the method of Figure 7a;
Figure 8a to 8c are schematic drawings showing the identification of one or more intersection points in the sub-steps of Figure 7b;
Figure 9 is schematic drawing showing the building of a test surface in the sub-steps of Figure 7c; Figure 10a is a schematic drawing of one or more second faces of another trunk mesh with another test surface;
Figure 10b is a schematic drawing of an intersection boundary defining the other test surface of Figure 10a and a hole boundary defining the one or more second faces of Figure 10a;
Figure 11 a to 11 d are schematic drawings showing the bridging of a gap between the intersection boundary and the hole boundary of Figure 10b using the sub-steps of Figure 7d;
Figure 12a to 12d are three-dimensional drawings showing the bridging of another gap between another intersection boundary and another hole boundary using the sub-steps of Figure 7d;
Figure 13 is a schematic drawing of the division of a first face using the sub-steps of Figure 7e;
Figure 14a to 14d are schematic drawings showing the operation of the truncating step of the method of Figure 7a; and
Figure 15a to 15h are three-dimensional drawings showing models of a vascular system as blood vessel branches are attached using the method of Figure 7a. Detailed Description of the Preferred Embodiment
Figure 1 shows a system 100 for generating a model of a vascular system according to an example embodiment. The system 100 comprises an input device 110, a computer 120 and an output device 130. The input device 1 0 provides data 15 to the computer 120, and the computer 120 comprises software 122 that is configured to process the data 115. The computer 120 then outputs the processed data 135 to the output device 130.
It is envisaged that the input device 10 for example may be a storage device e.g. a hard disk or a CD reader, or may be a communication device e.g. a wired or wireless network port, or may be a data acquisition device e.g. an array of sensors or a tomographic scanner. In the case where the input device 0 is a storage device, the data 115 is read off the storage device before being sent to the computer 120. In the case where the input device 110 is a network device, the data 115 is received at the communication device and then sent to the computer 120. In the case where the input device 110 is a data acquisition device, the data acquisition device acquires data as a reading from a physical object e.g. a CT scan of a human and processes the acquired data to produce the data 115. It is also envisaged that the input device 110 may perform processing on the data 115 before sending it to the computer 120.
The computer 120 comprises one or more processors (not shown) that are capable of executing the software 122. The software 122 is configured to process the data 115 that is received from the input device 110. The data processing that is carried out by the software 122 may be one or more of the method 200 of modeling a vascular system that is shown in Figure 2, the method 400 of generating a mesh representing a blood vessel that is shown in Figure 4, and/or the method 700 of generating a vascular model that is shown in Figure 7. Additionally, it is envisaged that the computer 120 may be one or more workstations or servers, or may be one or more embedded devices, or may be a distributed processing system e.g. a rendering farm.
When data processing is complete, the computer 120 outputs the processed data 135 to the output device 130. The output device 130 may for example be a storage device in which case the processed data 135 is stored in the storage device. Also, the output device 130 may be a communication device capable of sending the processed data 135 to another computer (not shown) where further processing may be performed upon the processed data 135. Further, the output device 130 may be a display device e.g. a monitor where the processed data 135 is displayed.
Method of modeling a vascular system
A method 200 for modeling a vascular system is described next with the aid of Figures 2 and 3. Figure 2 shows the method 200 for modeling a vascular system. The method 200 uses as its input the data 115 that is provided by the input device 110. Figure 3 shows a tree representation 222 with a plurality of branches. Specifically in relation to the method 200, the data 115 (that is sent to the computer 120) is a segmented volume 202; this segmented volume 202 serves as the input to the method 200. The segmented volume 202 may be obtained by performing object segmentation on tomographic data obtained by a tomographic scanner. Alternatively, the segmented volume 202 may be read off a storage device.
In step 2 0, thinning is performed on the segmented volume 202 in order to generate centerlines. A reference point on the segmented volume indicating the root point of the vascular system is obtained from a user. Thinning may then be performed using the method that is disclosed in Feiniu Yuan, Guangxuan Liao, Weicheng Fan, Wenhui Lang and Zhengmin Liu, "An interactive 3d visualization system based on PC using Intel SIMD, 3D texturing and thinning techniques," International Journal of Pattern Recognition and Artificial Intelligence, vol. 20, no. 3, 2006, pp. 393-416, the contents of which are incorporated herein by reference. Alternatively, thinning may be performed using the method disclosed in K. Palagyi and A. Kuba, "A 3D 6-subiteration thinning algorithm for extracting medical lines," Pattern Recognition Letters, vol. 19, no. 7, 1998, pp. 613-627, the contents of which are also incorporated herein by reference. A centerline network 212 is produced at the end of step 210.
In step 220, a tree representation 222 is constructed from the centerline network 212. Each point on the centerline network 212) is mapped into a respective node of the tree representation 222 using a greedy searching algorithm. Accordingly, the terms "point" and "nodes" are used interchangeably in this step. Specifically, for each node of the centeriine network 212, all possible paths from the node to the root node (i.e; the root point) are determined. The path with the shortest path length from the node to the root node is retained and the other paths determined for the node are then discarded. In other words, a greedy algorithm is used to determine paths from each node to the root node. This is performed for all nodes in the centeriine network 212. Since the retained path for each node shares a common end point in the form of the root node, a tree is constructed using the centeriine network 212 and loop paths (i.e. where the retained path of a node has a loop) in the centeriine network 212 are avoided. A tree representation 222 is produced at the end of step 220.
An example of the tree representation 222 is shown in Figure 3. The tree representation 222 comprises a set of branches denoted {B-i , B2, BJ, where L is the number of branches in the tree representation 222. In this case L is 4.
Returning to Figure 2, in step 230, the tree representation 222 is broken up into separate branch representations and then sorted in descending order of lengths. A sorted plurality of branch representations 232 is produced at the end of step 230 and these branch representations 232 correspond to the branches {B-i , B2, BL} of the tree representation 222.
Returning to Figure 2, in step 240, for each of the branch representations 232, ellipses (representing the cross-sections of the respective blood vessel) are fitted at points of the branch representation. A coarse mesh 242 representing the blood vessel is then generated and this is done using the method 400 that is shown in Figure 4. At the end of step 240 coarse meshes (denoted S/< where
/<=1 , L) corresponding to the branches Bk where / =1 L are produced i.e.
L coarse meshes corresponding to L blood vessels are produced.
Referring back to the example of Figure 3, the cross-sectional planes of the vasculature of the branch B4 is modeled using a series of ellipses denoted Ei4 for /'= , 2, m, where m = 3. m thus denotes the number of ellipses used. In other words, B4 is modeled using the ellipses
Figure imgf000019_0001
b k) , E2k (P2k, T2/ a2k, b2k) and E3k{P3k, T3/ a3 , bzk). Eik is a function representing an h ellipse of the branch Bk. The parameters of Eik are P,¾, Jik, aik and bik which respectively denote the centroid of the ellipse, the normal of the cross-section plane represented by the ellipse, the major radius of the ellipse, and the minor radius of the ellipse. These parameters and the vascular coordinates are contained in a data set that is associated with the branch representation 232. The data set may be created in step 210 when the segmented volume 202 is thinned.
It is noted that with the exception of the first branch Bi i.e. for all /c>1 , the centroid for the first ellipse of each branch B^ is also the centroid P of an ellipse Ey of one or more the branches Bj e {B-i , B2l k.i} that are ordered ahead of Bk. In the case where the centroid P is also a centroid Py in n number of branches, that centroid is an n-furcated point. In the example of Figure 3, the ellipses E2i, E-^ and E-i3 on branches Bi , B2 and B3 share the same centroid i.e. P2i = P12 = P13. Thus that centroid is a 3-furcated point.
In step 250, a "sub-division" based "hole drilling" method is used to create a surface model of the vascular system. This is done using the method 700 that is shown in Figure 7. In the case where L meshes corresponding to L blood vessels are produced in step 240, the method 700 is repeated LA times.
In the first iteration, a trunk mesh is selected as the mesh Si (corresponding to the first branch B-i). A branch mesh is then selected as the mesh S2
(corresponding to the branch B2). The mesh resulting from the attachment of the meshes of Si and S2 then serves as the trunk mesh for the next iteration. For the second and subsequent iterations, the branch meshes are selected in the S3 to Si.. The trunk mesh and the branch mesh are attached and the resulting mesh of an iteration then serves as the trunk mesh for the next iteration. At the end of the last iteration, a coarse model of the vascular system is produced. Since the vascular system has a plurality of branches, the coarse model is described as an n-furcated coarse model. After the last iteration i.e. after all the branch meshes are attached, "subdivision" is performed to render the n-furcated coarse model into a fine model. This is done by replacing each polygon of the coarse model with a plurality of replacement faces, the replacement faces obtained by "sub-dividing" the polygon of the coarse model into smaller polygons. Thus, the trunk mesh that is used in iterations of the method 700 is branched while the branch mesh models a blood vessel with no branches of its own. Method of generating a mesh representing a blood vessel
A method 400 of generating a mesh representing a blood vessel is described next with the aid of Figures 4, 5a, 5b and 5c. This method 400 takes as its input a branch representation 232 and produces a coarse mesh 242 that represents a blood vessel. Figure 4 is a flow-chart of the method 400, Figure 5a shows ellipses fitted onto the branch representation 232, Figure 5b shows a coarse mesh 242 that is produced by the method 400, and Figure 5c shows a fine mesh 590 that is produced by the optional replacement step 450 of the method 400. In step 410, a plurality of ellipses are fitted at points (or "vascular coordinates") on a centerline defining the branch representation 232. For each branch Bk, a plurality of ellipses are used in the creation of the coarse mesh Sk. Referring to Figure 5a, an example is shown where three ellipses defined by E1/c (P^, T^, a^k, b k) , E2k (P2/0 T2/c, a2k, b2k) and E3 c(P3/c, T3/(, a3k, b3k) are fitted onto the centerline of a representation of the branch Bk. Note that the ellipses E^, E2fc,and E3k are sequentially ordered on the centerline.
In step 420, for each ellipse of the plurality of ellipses i.e. for Eik where /'=1 , 2, m, a circumference is approximated as a plurality of straight edges. This is done by uniformly sampling q number of vertices (respectively denoted ν,-ι, v/2, v,Q) consecutively on the circumference of each ellipse Eik. By connecting each consecutively located pair of vertices i.e. (v,i , v^), (v,2, v/3) ... (v,q-i , v/q) and (v/q, v/i ) together with a straight edge, the circumference is approximated.
In step 430, the edges of each consecutive pair of ellipses are mapped together sequentially. Step 430 is repeated for all consecutive pairs of ellipses. Thus, for an ellipse Eik and the next sequentially ordered ellipse Ε,+ι , the edges of the respective ellipses are mapped together in their index sequence. This is done by mapping together from the respective ellipses, the vertices defining the edges; in other words, the vertices are mapped together as in the following sequence: (v,-i , v,+i ,-i ), (v/2, v,+1,2) ... (v/q, v+ ,q).
In step 440, a plurality of quads are generated to model the blood vessel. At the beginning of this step, the coarse mesh S/< is initialized to be empty i.e. Sk^-0. Then, for each consecutive pair of ellipses, quads are formed between the edges of the pair of ellipses using the mapping created in step 430; where there are q number of vertices (or q number of edges) approximating the
circumference of each ellipse, q number of quads are formed between the pair of ellipses.
Taking a pair of ellipses Eik and Ei+1ik as an example, quads denoted by the vertices (v,+f , t ,+ J,f+i v,,f+i v,-,f) are added to Sk for f=1 to q- . Then, a quad denoted by the vertices (ν,+^ ν/+ί,ι ,,i v,,Q) is added to S . Thus, each of the plurality of quads has as opposite edges one of the edges of a first of the pair of ellipses and the correspondingly mapped edge of the second of the pair of ellipses. A tubular surface spanning from the ellipses to Ε,+^ accordingly is formed by the plurality of quads.
Referring to Figure 5b, a coarse mesh resulting from the ellipses E^, E2k and E3fc of Figure 5a is shown. Each of the ellipses E , E2k and E^k has q = 8 vertices (and q = 8 edges). A sequence of vertices (v-u, v2t, ·■■> vmf) forming a consecutive edge parallel to the centerline (that is shown in Figure 5a) is the f-th axial contour of the branch; the vertices vi8, v28 and v38 form the 8th axial contour, and the vertices v-i2, v22 and V32 form the second axial contour. It can be seen that the number of axial contours is the same as the number of vertices i.e. q = 8. Since 3 ellipses are used, each of the 8 axial contours has two edges. Additionally, since there are q = 8 edges for each ellipse, the ellipses are approximated by octagons. The edges approximating the circular parameter of each ellipse are termed a "radial contour". In other words, a "radial contour" delimits the circumference of an ellipse representing the cross section of a vessel and comprises a plurality of straight edges. As shown in Figure 5b, for examples, the vertices v-|2 to v-is define a first radial contour of the branch mesh, and the vertices v2i to v28 define a second radial contour of the branch mesh.
In optional step 450, each quad of the plurality of quads of the coarse mesh Sk is replaced with a plurality of replacement faces using a "sub-division" method 460 of rendering a fine mesh from a coarse mesh. Figure 5c shows a fine mesh rendered from the coarse mesh of Figure 5b.
The "sub-division" method of rendering a fine mesh from a coarse mesh
The "sub-division" method 460 "divides" each original face (i.e. each quad) into a plurality of smaller replacement faces which are then used to replace the original face. Note that in this method 460, new vertices are created along the edges of the original face, and thus "dividing" the edges of the original face. These new vertices are then used in the creation of the plurality of smaller replacement faces. A more granular representation of the original face is thus produced. A more granular representation is characterized by using a larger number of polygons to approximate a given surface, thus allowing for the representation of a greater amount of detail about the surface. In other words, it may be said that the detail density is increased, or that the feature resolution is made smaller. Should the reference surface be a rough surface, because more polygons are used in the more granular representation, small details or features which are not visible in the coarse mesh become visible in the more granular representation. Also, should the reference surface be a smooth surface, because more polygons are used in the more granular representation, a given contour of a surface is approximated with more polygons, thus allowing for a more gradual transition between adjacent polygons.
The "sub-division" method 460 may be a NURBS based replacement algorithm as disclosed in Les Piegl, Wayne Tiller. "The NURBS Book". Springer-Verlag, New York, Second Edition, 1997, ISBN 3-540-61545-8, the content of which is incorporated herein by reference. Each original face of the coarse mesh is "subdivided" into a plurality of smaller polygonal faces, and the plurality of smaller polygonal faces is used to replace the original face, thus resulting in a fine mesh. As this takes place, each replacement face becomes associated with the original face in which the replacement face replaces. Each replacement face has a face ID and the face ID value assigned to the replacement face is derived from the original face. In other words, the face ID of a replacement face shows the "parentage" of the replacement face. This is explained with the aid of Figures 6a and 6b. Figure 6a shows two quads (i.e. coarse faces Ci and C2) while Figure 6b shows each of the two quads after replacement with a respective plurality of replacement faces (i.e. fine faces Fi to F8). Ci is demarcated by the vertices V-i, V2, V5 and V4 while C2 is demarcated by the vertices V2, V3, V6 and V5. After replacement, new vertices V7, V15 are created, as are the fine faces Fi F8. The fine faces F-i , F2, F3 and F4 replace the coarse face Ci while the fine faces F5, F6, F7 and F8 replace the coarse face C2. Thus, the face IDs of F-i, F2, F3 and F4 are C-i, and the face IDs of F5, F6, F7 and F8 are C2. Method of generating a vascular model
A method 700 of generating a vascular model is described next with the aid of Figures 7a to 7e. Referring first to Figure 7a, Figure 7a shows a flow-chart of the method 700. Note that the steps 710 to 760 are repeated L-1 times in order to attach together L meshes corresponding to L blood vessels. In step 710, a branch mesh (denoted Ms) and a trunk mesh (denoted Mc) are provided. Note that in the second and subsequent iterations of the method 700, the trunk mesh Mc comprises branch meshes which were attached in earlier iterations.
In step 720, intersection points are generated on first faces of the branch mesh Me. Step 720 comprises the sub-steps that are shown in Figure 7b, i.e. the sub- steps 722 and 724 which respectively generate a fine representation of the trunk mesh, and then detect as the intersection points locations where the first faces intersect the fine representation.
In sub-step 722, a fine representation Mf of the trunk mesh Mc is generated using the "sub-division" method 460.
In sub-step 724, the locations where the first faces intersect the fine
representation IvV are detected. This is done by locating points on the axial contours of the branch mesh Ms as is shown in Figure 8a. As noted previously, each axial contour comprises one or more edges. The detection of intersections with the fine representation Mf is thus carried out sequentially, one edge after another, for each axial contour of the branch mesh Ms. A plurality of intersection points is then obtained and these intersection points collectively define an intersection boundary. Figure 8b shows an example where an axial contour of the branch mesh Ms has an intersection with the fine representation Mf. In this case, the axial contour labeled conO is deemed as having an intersection 820 with the fine representation M because the second edge 822 of the axial contour conO intersects Mf.
Should more than one segment of the axial contour form intersection points with the fine mesh Mf (i.e. the axial contour intersects the fine mesh Mf in more than one locations), the intersection point that is nearest to the branching point of the centerlines of the trunk mesh and the branch mesh is used. In other words, the intersection point that is nearest to the bi-furcated node (where the vessels respectively represented by the meshes M and Μβ meet) is taken to be the only intersection point between the axial contour and the fine mesh Mf. The other intersection points may be ignored.
Figure 8c shows another example where an axial contour of the branch mesh Ms does not intersect the fine representation Mf. It can be seen that all edges of the axial contour con2 have no intersection with the fine representation Mf. In this case, a vertex on the fine representation Mf that is nearest to the axial contour con2 is taken as the intersection point between the axial contour and the fine representation Mf. Thus, the vertex V3 which is deemed to be the nearest to con2 is taken as the intersection point 830. It is noted that each axial contour is regarded as having one intersection point with the fine mesh Mf. Additionally, a branch mesh Ms comprises more than one axial contours (as is seen in the branch mesh Me of Figure 8a). Thus, in the case where at least one of the axial contours of the branch mesh Ms do not intersect the fine mesh Mf, for each axial contour, a vertex on the fine mesh M nearest to that axial contour is identified, and that vertex is then taken as the intersection point with the fine mesh Mf. As an example, if a branch mesh Me has N=4 axial contours (like that of the branch mesh Ms of Figure 8a), N=4 intersection points are identified i.e. one intersection point for each axial contour.
When testing for intersections between the axial contours of the branch mesh Me and the fine representation Mf, the identity of the face of the fine representation Mf that is intersected is noted. Since each face of the fine representation Mf is, in the method 460 (that is carried out in sub-step 722), assigned a face ID that refers to the original face from which the face of the fine representation Mf is derived, a "coarse face ID" is associated with each intersection point. Returning to Figure 7a, in step 730, one or more second faces on the trunk mesh Mc are identified using the intersection points generated in step 720. A hole boundary is then defined comprising an outer edge of a union of the identified one or more second faces. Step 730 comprises the sub-steps 731 , 732, 734, 736 and 738. These sub-steps are shown in Figure 7c. In sub-step 731 , a test surface is built using the intersection points generated in step 720, the test surface spanning the intersection boundary. This is done as shown in Figure 9 by generating a plurality of triangle polygons; all of the triangle polygons will share a common vertex (denoted in Figure 9), the common vertex being an intersection point. The triangle polygons are generated such that there is no overlap between any two of the triangle polygons.
As example, reference is made to Figures 10a and 10b. Figures 10a and 10b together show an example of how the steps the sub-steps 731 , 732, 734, 736 and 738 are carried out. In these figures, the test surface is shown to be delimited by the intersection points to l and comprise the triangle polygons 1010 and 1012. In sub-step 732, a plurality of test vertices on the trunk mesh Mc are identified. These test vertices are tested in the sub-steps 734 to 738 to determine if the faces which are associated with these test vertices should be a part of the second faces; if the faces associated with these test vertices are found to be "beneath" the test surface, they then should be a part of the second faces.
These plurality of test vertices are identified, for example by selecting all vertices that are on the trunk mesh Mc. Using the example of Figures 10a and 10b, the trunk mesh Mc is delimited by the vertices Vi to V8. Thus, the vertices Vi to V8 are identified to be test vertices. The sub-steps 734, 736 and 738 are then performed for each test vertex that is identified in sub-step 732. In sub-step 734, a normal is projected form the test vertex.
In sub-step 736, it is determined as to whether the projected normal passes through the test surface. The projected normal is determined to pass through the test surface if the dot product between the projected normal and a normal of the test surface is positive.
In sub-step 738, if it is determined in the sub-step 736 that the projected normal passes through the test surface, the faces which are associated with the test vertex are identified as at least part of the one or more second faces. Put differently, a face of the trunk mesh Mc which contains a test vertex that is determined positively in sub-step 736 is identified to be at least part of the one or more second faces.
In summary, a face of the trunk mesh Mc is considered to be "beneath" the test surface if a vertex of the face meets the following conditions:
i.) a line projected through the vertex and extending with the normal of the intersects a polygon of the test surface;
ii.) the point of intersection from condition i. is inside a polygon of the test surface; and iii.) the dot product of the normal of the vertex and the normal of the polygon fulfilling condition ii. is greater than zero.
Referring once again to the example of Figures 10a and 10b, it can be seen that vertices V8 and V7 fulfill the conditions i. to iii. Thus, all the faces delimited using at least V8 and V7 form the one or more second faces. They are the faces F-i , F2, F3, F5 and F6.
In step 740, the one or more second faces of the trunk mesh Mc are deleted. Continuing with the example of Figures 10a and 10b, the faces F-i , F2, F3, F5 and F6 are deleted. This results in a hole defined by the vertices V-i , V2> V3, V4, V5, and Vg is formed. In other words, the vertices \ , V2, V3, V4, V5, and V9 now define a hole boundary. The intersection boundary is defined by the intersection points l-i , l2, l3 and l4.
In step 750, a gap between the intersection boundary and the hole boundary is bridged (or "repaired") by creating one or more third faces. The one or more third faces are created by connecting, using edges, points on the intersection boundary with points on the hold boundary. A "direct point based" method 750 for bridging the gap is disclosed next with the aid of Figure 7d and Figures 11 a to 11d.
It is noted that this method 750 of bridging the gap between the intersection boundary and the hole boundary has the advantage that a smooth, non-twisted, and topological^ correct set of one or more third faces is obtained between the hole boundary and intersection boundary. Additionally, triangles are used as the one or more third faces. In step 752, a direct point list is created for each intersection point. This is done by iterating through all the vertices of the hole boundary, and for each vertex of the hole boundary, the vertex is associated with an intersection point (i.e. "added" to the direct point list an intersection point) using the deleted faces Fi, F2, F3, F5 and F6.
As was disclosed earlier in connection with step 720, each intersection point is associated with a "coarse face ID" (i.e. one of the deleted faces Fi, F2, F3, F5 and F6). Also, each of the vertices of the hole boundary (i.e. each of the vertices V-i, V2, V3, V4, V5, and Vg ) defines one or more of the deleted faces F-i, F2, F3, F5 and F6; in other words, each of the vertices Vi, V2, V3, V4, V5, and Vg has one or more "coarse face IDs", the one or more "coarse face IDs" identifying one or more of the deleted faces F-i, F2, F3) F5 and F6. Thus, if a hole boundary vertex \Λ, V2, V3, V , V5, or Vg shares the same "coarse face ID" with an intersection point , l2, l3 or l4, these two points may be said to be influenced by the same coarse face, and thus the identity of the boundary vertex is "added" into the direct point list of the intersection point.
Note that using the "coarse face ID" of the intersection point of an axial contour, the axial contour is said to be intersecting one of the fine faces generated by sub-dividing (as is done in step 460) the coarse face identified by the "coarse face ID".
Referring to the Figures 11a to 11 d (which show the further processing of the example of Figures 10a and 10b with the "direct point based" method 750) the intersection points li, l2, and l4 have respective direct point lists of (V9l V5), (Vg, V5), (V-i, V2), and (V2, V3). Taking the intersection point as a specific example, Figures 1 a shows that the hole boundary vertices V5 and V9 share the same "coarse face ID" (i.e. F3) with the intersection point li. Thus the direct point list of \-\ comprises the vertices V5 and Vg..
Further, it can be seen from Figure 1a that two intersection points having the same "coarse face ID" have respective direct points lists containing the same vertices. The intersection points and l2 have the same face ID i.e. F3 and so they also have the same direct points list comprising V9 and V5. It can be seen that should edges be created between the intersection points and l2 and the vertices contained in their respective direct point lists i.e. (Vg, V5) and (Vg, V5), the edge defined by and Vg intersects the edge defined by l2 and V5. A modification of the direct point lists of and l2 is thus performed in step 754.
In step 754, the direct point list for selected intersection points are modified by assigning vertices to the direct point lists of the selected intersection points with the view toward obtaining the minimum distance between the selected intersection points and the assigned vertices. Turning now to Figure 11 b, the vertex V5 is nearer to !i than , and the vertex Vg is nearer to l2 than . Thus the assignment of V5 to \<\ , and the assignment of V9 to l2 fulfills the minimum distance criterion. This is done in step 754 and Figure 1 1 b thus shows the modified direct points of intersection points l-i, l2, I3 and l4 to respectively be (V5),
Figure imgf000034_0001
In step 756, edges are created between the intersection points and the vertices contained within their respective modified direct point lists. This is shown in Figure 1 1 c where is connected with V5, l2 is connected with V9, I3 is connected with V-i and V2l and l4 is connected with V2 and V3. It can be seen that after the creation of edges in step 756, the vertex V4 on the hole boundary still remains unconnected.
Note that since there may be hole boundary vertices whose associated "coarse face IDs" are not found to be equal to any "coarse face IDs" of all intersection points. These are unassigned boundary points and these vertices are not connected by edges in step 756. V4 is an example of such a hole boundary vertex. In step 758, un-bridged gaps between the hole boundary and the intersection boundary are patched. These gaps result from vertices of the hole boundary which are still unconnected to an intersection point. The patching is done with the view toward obtaining an overall "smooth" bridging of the gap in step 750 i.e. abrupt changes are avoided in the overall contour of the one or more third faces bridging of the gap. An overall "smooth" bridging may be obtained by maximizing the angles between the surfaces of polygonal faces at the bridge. In other words, when introducing a polygonal face, a view is taken towards minimizing the angles between a normal of the introduced polygonal face and the normals of existing polygonal.
Referring to Figure 11 d, as mentioned earlier in connection with Figure 11c, the vertex V4 on the hole boundary is unconnected. An un-bridged gap thus exist and is defined by the vertices (l4, li ,V5 ,V4 ,V3). Starting with an existing triangle (l4, V2, V3) and working across the un-bridged gap, two options exist for the introduction of a triangle. The first option is to introduce a triangle defined by (l4, V3, V4) that has the normal N-i. The second option is to introduce a triangle defined by (l4, , V3) that has the normal N2. Let the existing triangle (l , V2, V3) have a normal N3.
The angle between N3 and Ni is smaller than the angle between N3 and N2. Since a view is taken towards minimizing angles between normals, the first option is chosen i.e. the triangle (U, V3, V4) is introduced and an edge is introduced connecting h with V3. Subsequently, using the same "smoothness" criterion as just described, triangles are introduced to create the edges li with V , l2 with V5, and l3 with V9. Referring to Figures 2a to 12d, drawings of an example of a trunk mesh before and after step 750 are shown. Figure 12a shows the trunk mesh (in its coarse form) before the bridging step 750. The hole boundary is 1210. Figure 12b shows the trunk mesh (in its coarse form) after the bridging step 750. The gap between hole boundary 1210 and the intersection boundary 1220 is bridged (or "repaired"). Figures 12c and 12d then show respective fine representations of the trunk meshes of Figures 12a and 12b. The hole boundary 1230 and intersection boundary 1240 are "smoother" when respectively compared to the hole boundary 1210 and intersection boundary 1220.
Returning to Figure 7a, in step 760, the first faces of the branch mesh Ms are truncated at the intersection boundary to form the vascular model. This step comprises sub-steps 762 to 766 and Figure 7e is a flow-chart of showing these sub-steps of step 760.
In sub-step 762, the first faces are divided into a first portion and a second portion using the intersection boundary. This is done by classifying all the vertices that define the first faces into a "low" index set and a "high" index set relative to the intersection boundary. The "low" index set comprises vertices that are "below" the intersection boundary i.e. the faces defined by these vertices are substantially occluded by or located within the trunk mesh Mc. The "high" index set then comprises vertices that are "above" the intersection boundary i.e. the faces defined by these vertices are substantially external to or outside the trunk mesh Mc. Thus given a branch mesh Me that is defined by the vertices (v- , v2t,■■·> vmf) for t - 1 ... T, i.e. where there are T number of axial contours, each of the axial contours having m number of vertices, an intersection boundary is defined by a series of intersection points \t for t = 1 ... T. Assuming that for a specific f-th axial contour, the intersection point \t is lies on the p-th edge of the axial contour i.e. the edge defined by the vertices vpf and V(P+i )f.
For a given f-th axial contour, each edge of the f-th axial contour is numbered sequentially increasing from an occluded end (that is occluded by the trunk mesh Mc) to an exposed end (that is out of the trunk mesh Mc). This is done in the order in which the vertices are indexed. The vertex at the end nearest to the branching point of the branch mesh Μβ from the trunk mesh Mc is assigned a low index and that end is the occluded end. The vertex at the end furthest from the branching point of the branch mesh Ms from the trunk mesh Mc is assigned a high index and that end is the exposed end.
The intersection point lf of an axial contour of the f-th axial contour is obtained by iteratively checking each edge of the axial contour for an intersection with the fine version of the trunk mesh Mc starting from one end of the axial contour. When an intersection point is detected on an edge, the edge is divided into the edges (vpi, I/) and (I;, (ρ+ΐ )ί). The "low" index set for the f-th axial contour is defined to be the set of vertices (v-u, v2i, . . . ,V(P--\ )t,Vpt) while the "high" index set is defined to be the set of vertices (V(p+1 )i, v(p+2)/, . . . , vmi). As an example, Figure 13 shows a trunk mesh Mc (labeled 1310) and a cutaway view of a branch mesh Me (labeled 1320). Only the third and fourth axial contours of the branch mesh Me are shown. This third and fourth axial contours respectively are defined by the vertices (v-|3, v23, V33, v43) and ( i4, v24, v34, v44). The intersection boundary is thus the edge defined by the intersection points l3 and l4. The "low" index set comprises vertices that are "below" the intersection boundary and thus is {vi3, v23, v2 , v24}. The "high" index set comprises vertices that are "above" the intersection boundary and thus is {v33, v43, v3 , v44}. Once the vertices are classified, the faces of the branch mesh Me are flagged according to the classification of the respective vertices defining the faces. Three types of flags are possible:
a.) a face has flag = 1 if all the vertices of the face are found in the "low" index set;
b.) a face has flag = 2 if all the vertices of the face are found in the "high" index set; or
c.) a face has flag = 3 if the face is defined by a both vertices found in the "high" index set, and vertices found in the "low" index set. V-|4, V24, V23 and V13 are in the "low" index set and thus the flag of the face 1326 is set to 1 . V34, V44, V43 and V33 are in the "high" index set and so the flag of the face 1322 is set to 2. The face 1324 is defined by V24, V3 , V33 and V23 and thus has vertices from the "low" index set, and also vertices from the "high" index set. The flag of this face 1324 is set to 3 and the face 1324 is divided into a "low" portion 1324b defined by V24, l4, I3 and V23, and a "high" portion 1324a defined by U, V34l V33 and l3l. Note that whilst the faces 1322, 1324 and 1326 of this example are shown as quads, it is envisaged that the faces may be of any type of a polygon; the faces may be triangles, or pentagons. In the case where a face is a pentagon, the pentagon may be divided into a triangle and a quad.
Returning to Figure 7e, in sub-step 764, an unwanted portion is identified as either the first portion or the second portion. The unwanted portions are selected as the faces with /7ag=1 , or the "low" portion of a face with flag=2. In Figure 13, the unwanted portions are the faces 1326 and 1324b.
In sub-step 766, the unwanted portion is deleted. The faces of the branch mesh Me that remain optionally are connected to the trunk mesh Mc at the
intersection boundary. A union is then made of the branch mesh MB and trunk mesh Mc.
Another example of the operation of step 760 is shown in Figures 14a to 14d. Figure 14a shows a trunk mesh 1410 with an intersection boundary defined by to l4. Figure 14b shows a branch mesh 1420 created from a sequence of elliptical contours (i.e. circumference of ellipses to E^). Figure 14c shows the trunk mesh 1410 and the branch mesh 1420 before the unwanted portion is truncated off the branch mesh 1420. Figure 14d then shows the union of the trunk mesh 1410 and the branch mesh 1420 after the unwanted portion is truncated off the branch mesh 1420. Returning to Figure 7, after all the L meshes are attached together to produce a coarse mesh modeling all L blood vessels, in optional step 770, the "subdivision" method 460 of rendering a fine mesh from the coarse mesh may be applied.
Turning to Figures 15a to 15h, these figures show models of a vascular system as it is grown i.e. branches vessels are gradually attached. In all cases, these figures show a fine representation of the meshes produced. Figure 15a shows a model of a vascular system with a blood vessel, the model of the blood vessel being produced with the method 400. Figure 15b shows a model of the vascular system after the deletion step 740 when a second blood vessel is to be attached using the method 700. Figure 15c shows a model of the vascular system of Figure 15b after the second blood vessel is attached. Figure 15d shows a model of the vascular system of Figure 15c after the deletion step 740 when a third blood vessel is to be attached using the method 700. Figure 15e shows a model of the vascular system of Figure 15d after the third blood vessel is attached. Figure 15f shows a model of the vascular system of 15e after a fourth blood vessel is attached. Figure 15g shows a model of the vascular system of 15f after further growing to have 5 branches. Figure 15h shows a model of the vascular system of 15g after further growing to show an entire vascular tree. Whilst example embodiments of the invention have been described in detail, many variations are possible within the scope of the invention as will be clear to a skilled reader. For example, while the term "quad" is used in this specification to refer to a quadrilateral mesh primitive as is understood by the skilled person, it is envisaged that a "quad" may however comprise other primitives or polygons, e.g. triangles.

Claims

Claims
1. A method of generating a vascular model by attaching a trunk mesh and a branch mesh, said trunk mesh and said branch mesh being blood vessel models, each of said trunk mesh and said branch mesh comprising a plurality of polygonal faces demarcated by a plurality of vertices, the method comprising the steps of
generating intersection points on first faces of the branch mesh, an intersection boundary being defined by the intersection points;
identifying one or more second faces on the trunk mesh using said intersection points, a hole boundary being defined comprising an outer edge of a union of said one or more second faces;
deleting the one or more second faces of the trunk mesh;
bridging a gap between the intersection boundary and the hole boundary by creating one or more third faces; and
truncating the first faces at the intersection boundary to form the vascular model.
2. The method of generating a vascular model according to claim 1 , wherein the step of generating intersection points further comprises the steps of generating a fine representation of the trunk mesh, the fine
representation being a more granular representation of the trunk mesh; and detecting as the intersection points locations where the first faces intersect the fine representation.
3. The method of generating a vascular model according to any preceding claim wherein the step of identifying one or more second faces on the trunk mesh further comprises the steps of
using the intersection points to build a test surface spanning the intersection boundary;
identifying a plurality of test vertices on the trunk mesh; and
for each test vertex of the plurality of test vertices:
projecting a normal from the test vertex;
determining whether the projected normal passes through the test surface, and
identifying the one or more second faces by adding the test vertex to a collection of candidate vertices if the projected normal passes through the test surface, the faces associated with the collection of candidate vertices being identified as the one or more second faces.
4. The method of generating a vascular model according to claim 3, wherein the projected normal is determined to pass through the test surface if the dot product between the projected normal and a normal of the test surface is positive.
5. The method of generating a vascular model according to any preceding claim, wherein the step of bridging the gap between the intersection boundary and the hole boundary comprises the steps of associating each of the intersection points of the intersection boundary with at least one of a plurality of edge vertices delimiting the outer edge; and using the association of each of the intersection points with the at least one of the plurality of edge vertices to create the one or more third faces.
6. The method of generating a vascular model according to claim 5, wherein each of the intersection points is associated with at least one of the plurality of edge vertices using one of the one or more second faces.
7. The method of generating a vascular model according to claim 6, wherein the step of associating each of the intersection points with at least one of the plurality of edge vertices further comprises the step of
minimizing respective distances between each of the intersection points and the at least one of the plurality of edge vertices.
8. The method of generating a vascular model according to any preceding claim, wherein the step of truncating the first faces further comprises the steps of
using the intersection boundary to divide the first faces into a first portion and a second portion;
identifying an unwanted portion as either the first portion or the second portion; and
deleting the unwanted portion.
9. The method of generating a vascular model according to claim 8, wherein the steps of identifying the unwanted portion further comprises the step of
numbering each of the first faces according to an order of the first faces in the branch mesh; and
identifying the unwanted portion using the respective numbers of the first faces.
10. The method of generating a vascular model according to any preceding claim further comprising the steps of
replacing each face of the plurality of polygonal faces of said trunk mesh and said branch mesh with a plurality of replacement faces, the plurality of replacement faces being a more granular representation of the face.
11. The method of generating a vascular model according to claim 10 wherein each face of the plurality of polygonal faces of said trunk mesh and said branch mesh are replaced with a plurality of replacement faces using a NURBS algorithm.
12. A method for generating a mesh representing a blood vessel using a data set comprising at least a first ellipse and a second ellipse representing cross-sections of the blood vessel, the ellipses being defined by respective vascular coordinates indicative of the centroid of the respective ellipses, the method comprising the steps of approximating a first circumference of the first ellipse as a first plurality of straight edges, each of the first plurality of straight edges being sequentially ordered around the first circumference;
approximating a second circumference of the second ellipse as a second plurality of straight edges, each of the second plurality of straight edges being sequentially ordered around the second circumference;
sequentially mapping each of the edges of the second plurality of straight edges to a corresponding edge of the first plurality of straight edges; and
generating a plurality of quads to model the blood vessel, each of the plurality of quads having as opposite edges one of the edges of the first plurality of straight edges and the correspondingly mapped edge of the second plurality of straight edges.
13. The method of generating a mesh of a blood vessel according to claim 12 further comprising the step of
replacing each quad of the plurality of quads with a plurality of
replacement faces, the plurality of replacement faces being a more granular representation of the quad.
14. The method of generating a mesh of a blood vessel according to any of claims 12 and 13 wherein each quad of the plurality of quads is replaced with a plurality of replacement faces using a NURBS algorithm.
15. A method for generating a bifurcated vascular model, the bifurcated vascular model having a blood vessel and another blood vessel, the method comprising the steps of
using the method of any of claims 12 to 13 to obtain as the branch mesh the model of the blood vessel
providing a trunk mesh that is representative of the other blood vessel; generating the bifurcated vascular model by using the method of any of claims 1 to 11 to attach the trunk mesh and the branch mesh.
16. An apparatus for generating a vascular model by attaching a trunk mesh and a branch mesh, each of said trunk mesh and said branch mesh being blood vessel models, the apparatus comprising
an input device configured to provide said trunk mesh and said branch mesh, each of said trunk mesh and said branch mesh comprising a plurality of polygonal faces; and
a processor containing software configured to:
generate intersection points on first faces of the branch mesh, an intersection boundary being defined by the intersection points;
identify one or more second faces on the trunk mesh using said intersection points, a hole boundary being defined comprising an outer edge of an union of said one or more second faces;
delete the one or more second faces of the trunk mesh;
bridge a gap between the intersection boundary and the hole boundary by creating one or more third faces; and truncate the first faces at the intersection boundary to form the vascular model.
17. An apparatus for generating a mesh of a blood vessel using a data set comprising at least a first ellipse and a second ellipse representing cross- sections of the blood vessel, the ellipses being defined by respective vascular coordinates indicative of the centroid of the respective ellipses, the apparatus comprising
an input device configured to provide the data set; and
a processor containing software configured to:
approximate a first circumference of the first ellipse as a first plurality of straight edges, each of the first plurality of straight edges being sequentially ordered around the first circumference;
approximate a second circumference of the second ellipse as a second plurality of straight edges, each of the second plurality of straight edges being sequentially ordered around the second circumference;
sequentially map each of the edges of the second plurality of straight edges to a corresponding edge of the first plurality of straight edges; and
generate a plurality of quads to model the blood vessel, each of the plurality of quads having as opposite edges one of the edges of the first plurality of straight edges and the correspondingly mapped edge of the second plurality of straight edges.
PCT/SG2012/000050 2011-02-24 2012-02-20 A method and an apparatus for generating a vascular model WO2012115592A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
SG201101392-7 2011-02-24
SG201101392 2011-02-24

Publications (1)

Publication Number Publication Date
WO2012115592A1 true WO2012115592A1 (en) 2012-08-30

Family

ID=46721129

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/SG2012/000050 WO2012115592A1 (en) 2011-02-24 2012-02-20 A method and an apparatus for generating a vascular model

Country Status (1)

Country Link
WO (1) WO2012115592A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014045539A1 (en) * 2012-09-20 2014-03-27 富士フイルム株式会社 Image processing apparatus, method and program
KR101674462B1 (en) * 2015-06-29 2016-11-10 연세대학교 산학협력단 Method for merging blood vessel using three dimension tubular meshes

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050018885A1 (en) * 2001-05-31 2005-01-27 Xuesong Chen System and method of anatomical modeling
US20100166283A1 (en) * 2008-12-30 2010-07-01 Stefan Grosskopf Method for determining a 2d contour of a vessel structure imaged in 3d image data
US20100290679A1 (en) * 2007-10-19 2010-11-18 Gasser Christian T Automatic geometrical and mechanical analyzing method and system for tubular structures

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050018885A1 (en) * 2001-05-31 2005-01-27 Xuesong Chen System and method of anatomical modeling
US20100290679A1 (en) * 2007-10-19 2010-11-18 Gasser Christian T Automatic geometrical and mechanical analyzing method and system for tubular structures
US20100166283A1 (en) * 2008-12-30 2010-07-01 Stefan Grosskopf Method for determining a 2d contour of a vessel structure imaged in 3d image data

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
S. LEE ET AL.: "Automated Mesh Generation of an Arterial Bifurcation Based upon In Vivo MR Images", PROCEEDINGS OF THE 22ND ANNUAL EMBS INTERNATIONAL CONFERENCE, 23 July 2000 (2000-07-23) - 28 July 2000 (2000-07-28), CHICAGO IL, pages 719 - 722 *
Y. HIJAZI ET AL.: "Fully-automatic branching reconstruction algorithm: application to vascular trees", 2010 SHAPE MODELING INTERNATIONAL CONFERENCE, 2010, pages 221 - 225 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014045539A1 (en) * 2012-09-20 2014-03-27 富士フイルム株式会社 Image processing apparatus, method and program
JP2014061072A (en) * 2012-09-20 2014-04-10 Fujifilm Corp Image processor and method and program
US9355458B2 (en) 2012-09-20 2016-05-31 Fujifilm Corporation Image processing apparatus, method and program
KR101674462B1 (en) * 2015-06-29 2016-11-10 연세대학교 산학협력단 Method for merging blood vessel using three dimension tubular meshes

Similar Documents

Publication Publication Date Title
Hu et al. Efficient tree modeling from airborne LiDAR point clouds
CN101944239B (en) Three-dimensional model dividing method, device and comprise the image processing system of this device
Zhou et al. Topology repair of solid models using skeletons
WO2013082648A1 (en) Method and system for characterising plant phenotype
CN104156935A (en) Image segmentation device, image segmentation method and medical image device
JP4248399B2 (en) Automatic branch labeling method
US20200178919A1 (en) Systems and Methods for Characterizing A Central Axis of a Bone from a 3D Anatomical Image
WO2023124676A1 (en) 3d model construction method, apparatus, and electronic device
Hu et al. Curve skeleton extraction from 3D point clouds through hybrid feature point shifting and clustering
CN111009033A (en) OpenGL-based focal region visualization method and system
JP2005508680A (en) Branch selection method for probe alignment
Kustra et al. Probabilistic view-based 3D curve skeleton computation on the GPU
WO2012115592A1 (en) A method and an apparatus for generating a vascular model
CN108198213B (en) Method and device for marking tubular structure and processing terminal of tubular structure
CN107492148B (en) It is extensive without demarcation surface points cloud reconstruction face of cylinder method based on SVM and K Means
Tian et al. Graph-Based Leaf–Wood Separation Method for Individual Trees Using Terrestrial Lidar Point Clouds
CN107194994A (en) A kind of method and device without the demarcation surface points cloud data reconstruction face of cylinder
Lee et al. Growing-cube isosurface extraction algorithm for medical volume data
Cárdenas et al. Reconstruction of tree branching structures from UAV-LiDAR data
EP3063737B1 (en) Method and device for constructing graph representation for a 3d object
Sohler Fast reconstruction of delaunay triangulations
JP2022064630A (en) Forest resource information generation structure and forest resource information generation method
Ovreiu Accurate 3D mesh simplification
US20210019931A1 (en) Uv transfer
Preuksakarn Reconstructing plant architecture from 3D laser scanner data

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12749487

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12749487

Country of ref document: EP

Kind code of ref document: A1