Anatomical Modeling Using the Ball Pivot Algorithm
The modified BPA algorithm addresses issues of incorrect structure joining and boundary marking by labeling points and identifying boundary edges, enhancing anatomical model accuracy and automation.
Patent Information
- Application Number
- JP2024570330
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-08-16
- Filing Date
- 2023-07-30
- Publication Date
- 2025-08-15
AI Technical Summary
Existing anatomical modeling techniques, particularly using the ball-pivoting algorithm (BPA), struggle with incorrectly joining separate anatomical structures and inaccurately marking boundaries between structures like the left atrium and pulmonary veins, requiring manual user intervention.
A modified BPA algorithm that labels each point with an anatomical structure identifier, constraining triangles to include points from the same structure, and identifies boundary edges to automatically delineate structure boundaries.
Accurately constructs anatomical models by preventing false joins and automating boundary definition, reducing manual effort and improving model precision.
Smart Images

Figure 2025526534000001_ABST
Abstract
Description
[Technical Field]
[0001] The present disclosure relates to the field of anatomical modeling. [Background technology]
[0002] Three-dimensional anatomical models often include meshes that interpolate point clouds. Such meshes can be constructed using the ball-pivoting algorithm (BPA), described, for example, in Bernardini, Fausto, et al., "The ball-pivoting algorithm for surface reconstruction," IEEE Transactions on Visualization and Computer Graphics 5.4 (1999): 349-359, the disclosure of which is incorporated herein by reference. According to BPA, three points form a triangle if a ball of a user-specified radius touches them without including any other points. Starting from a seed triangle, the ball pivots around the edge (i.e., rotates around the edge while touching its endpoints) until it touches another point to form another triangle (or other polygon from which a mesh is formed). This process continues until all reachable edges have been tried, and then another seed triangle is started until all points have been considered. The process can then be repeated with a ball of a larger radius to accommodate non-uniform sampling densities.
[0003] Anatomical models, particularly electroanatomical models, are commonly used by electrophysiologists to visualize anatomical structures and electrical signals within cardiac tissue. These models can be algorithmically constructed using data collected by diagnostic catheters and / or ultrasound data, and such models often include 3D triangulated meshes corresponding to individual anatomical structures of the heart. A triangular mesh is typical, but not required, as the mesh may also include quadrilaterals in some systems, within some examples. 3D models including two or more structures of the heart can be formed by stitching together the individual generated 3D meshes. Exemplary anatomical structures that can be modeled include, for example, the left atrial (LA) body and left atrial appendage (LAA), the left inferior pulmonary vein (LIPV), the left superior pulmonary (LSPV), the right inferior pulmonary vein (RIPV), and the right superior pulmonary vein (RSPV). As an example, a 3D mesh representing the left atrium may be connected to other 3D meshes representing pulmonary veins, arteries, and / or other cavities. Image processing is typically required to connect the individual 3D meshes so that a complete model can be displayed to the user. Color coding may be overlaid on the model to indicate the propagation of electrical signals across the cavities or to indicate other EP characteristics of the heart. Users expect to see signal propagation in the atria and ventricles, but not in the pulmonary veins and arteries. The borders (or anatomical boundaries) between the atria / ventricles and veins / arteries currently generally must be manually defined by the user to ensure that the signal propagation mapping does not cross the veins and arteries. [Brief explanation of the drawings]
[0004] A more complete understanding of the present disclosure will be obtained from the following detailed description of the embodiments of the present disclosure when read in conjunction with the drawings. [Figure 1]1 is a schematic, illustrative illustration of an anatomical mapping system, according to some embodiments of the present invention; [Figure 2] 1 is a schematic, illustrative diagram of an exemplary calculation of a triangle mesh, according to some embodiments of the present disclosure; [Figure 3] 1 is a schematic, illustrative diagram of a triangle mesh, according to some embodiments of the present disclosure; [Figure 4] FIG. 1 is a flow diagram for an example BPA algorithm, according to some embodiments of the present disclosure. DETAILED DESCRIPTION OF THE INVENTION
[0005] overview It can often be difficult to use BPA to construct anatomical models. First, the model may incorrectly join two anatomical structures together that are not actually joined together but are separated by a distance smaller than the diameter of the BPA ball, such as two pulmonary veins. Second, the model may not accurately mark the boundary between two joined anatomical structures, such as the left atrium and pulmonary veins.
[0006] Therefore, embodiments of the present disclosure modify BPA to address these challenges. The modified algorithm is applied to point clouds where each point is labeled with an identifier for the anatomical structure to which it belongs.
[0007] In particular, when a triangular mesh is constructed from the labeled points, preferably, pairs of points from different, unjoined structures are not allowed to belong to the same triangle. This constraint may reduce the likelihood of false joining of anatomical structures. Additionally, the edges of any triangle joining a pair of points from different, unjoined structures may be marked. Following construction of the mesh, the marked edges may be smoothed to define one or more closed polylines. The resulting closed curves are then overlaid on the model to indicate the boundaries between joined anatomical structures.
[0008] System Description Reference is first made to FIG. 1, which is a schematic, illustrative illustration of an anatomical mapping system 20, according to some embodiments of the present disclosure.
[0009] The system 20 includes an intracorporeal probe 26 connected proximally to a console 32. The system 20 further includes a processor (PROC) 34 and memory 38, which are typically included in the console 32, and a display 36, which may be disposed on the console 32. The memory 38 may comprise any suitable volatile memory, such as random access memory (RAM), and / or non-volatile memory, such as flash memory.
[0010] The processor 34 is configured to calculate a triangular mesh 46 including a plurality of triangles 48 representing a plurality of anatomical structures. As shown in FIG. 3, the mesh 46 appears in the form of an anatomical model that is displayed to a user. The anatomical structures include a first structure and a plurality of second structures. In some cases, the plurality of section structures are in fluid communication with the first structure but not with each other.
[0011] For example, the first structure may include at least a portion of a body of a chamber of the heart 24 of the subject 22, and the second structure may include a blood vessel connected to the chamber appendage and / or the heart chamber body. As a specific example, the first structure may include at least a portion of a body of the left atrial chamber of the heart 24, and the second structure may include one or more pulmonary veins that deliver blood to the left atrial appendage and / or the left atrial body. As another example, the first structure may include at least a portion of a sinus cavity, and the second structure may include an airway connected to the chamber.
[0012] To compute mesh 46, processor first obtains point cloud 40 including a plurality of points 42 representing different respective locations within the body of subject 22. Points 42 are labeled as corresponding to the respective anatomical structure to which the locations belong and which the mesh is to represent. For example, points 42 representing locations belonging to the left atrial body of heart 24 may be labeled as corresponding to the left atrial body.
[0013] In some examples, the processor obtains the point cloud 40 without computing the point cloud. For example, the processor may receive the point cloud over a computer network or load the point cloud from an external storage drive.
[0014] In another embodiment, the processor calculates the point cloud by sampling multiple preliminary meshes representing each anatomical structure. After calculating the point cloud, the processor may store the point cloud in memory 38 and then read the point cloud from memory when calculating mesh 46.
[0015] In such an example, a preliminary mesh is generated from the preliminary point cloud using any suitable surface reconstruction algorithm, such as the algorithm described in Lorensen, William E. and Harvey E. Cline, "Marching cubes: A high resolution 3D surface construction algorithm," ACM Siggraph Computer Graphics 21.4 (1987):163-169, the disclosure of which is incorporated herein by reference. To generate the preliminary point cloud, physician 30 moves the distal tip of probe 26 along the surface of the anatomical structure while processor 34 (or a different processor) tracks the position of the distal tip. Such a point cloud may be obtained by ultrasound imaging of the cardiac cavity. Alternatively, the position of the data is reported by a position sensor on the catheter as known in the art. For example, data can be acquired using the fast anatomic mapping (FAM) feature of the CARTO® 3 system in conjunction with a mapping catheter, such as the Navistar® Thermocool® catheter, available from Biosense Webster, Inc., 3333 Diamond Canyon Road, Diamond Bar, Calif. 9176531A Technology Drive, Irvine, CA 92618, both available from Biosense Webster, Inc. A processor such as that found in the CARTO® system can be programmed by one skilled in the art to perform the functions described below.
[0016] In some such embodiments, one or more electromagnetic sensors 28 are coupled to the distal end of the probe to generate a magnetic field in the vicinity of the subject 22 to facilitate tracking of the probe. The magnetic field induces a position-dependent signal in the sensor 28. Based on this signal, a processor determines the position of the distal end of the probe. Such magnetic-based tracking is disclosed, for example, in U.S. Patent Nos. 5,391,199, 5,443,489, and 6,788,967 to Ben-Haim, U.S. Patent No. 6,690,963 to Ben-Haim et al., U.S. Patent No. 5,558,091 to Acker et al., and U.S. Patent No. 6,177,792 to Govari, the disclosures of each of which are incorporated herein by reference.
[0017] Alternatively or additionally, one or more electrodes coupled to the distal end of the probe may pass current through multiple electrode patches coupled to the subject's body at different respective locations. Based on the current and body impedance measurements derived therefrom, a processor may ascertain the position of the distal end of the probe, as taught, for example, in U.S. Pat. Nos. 7,756,576 and 7,536,218, which are incorporated herein by reference. Such a hybrid technique combining impedance-based tracking with magnetic-based tracking is described in U.S. Pat. No. 8,456,182 to Bar-Tal et al., the disclosure of which is incorporated herein by reference.
[0018] After obtaining point cloud 40, processor 34 applies any suitable version of the ball pivot algorithm (BPA) to point cloud 40, as further described below with reference to Figure 2, thereby computing mesh 46. Following computation of mesh 46, processor 34 displays the mesh on display 36.
[0019] In general, the processor 34 may be embodied as a single processor or as a set of cooperatively networked or clustered processors. In some embodiments, the functionality of the processor 34 described herein is implemented solely in hardware, e.g., using one or more application-specific integrated circuits (ASICs) or field-programmable gate arrays (FPGAs). In other embodiments, the functionality of the processor 34 is implemented at least partially in software. For example, in some embodiments, the processor 34 is embodied as a programmed digital computing device comprising at least a central processing unit (CPU) and random access memory (RAM). Program code and / or data, including a software program, are loaded into the RAM for execution and processing by the CPU. The program code and / or data may be downloaded to the processor in electronic form, e.g., over a network. Alternatively or additionally, the program code and / or data may be provided and / or stored on a non-transitory, tangible medium, such as magnetic, optical, or electronic memory. Such program code and / or data, when provided to a processor, produces a machine or special purpose computer configured to perform the tasks described herein.
[0020] Mesh calculation Reference is now made to FIG. 2, which is a schematic illustration of an exemplary calculation of mesh 46, according to some embodiments of the present disclosure.
[0021] The processor 34 (FIG. 1) may use a mapping module to define a point cloud, e.g., a mesh of line segments, by first connecting the locations of the data. The mesh 46 is typically, but not necessarily, a triangular mesh. In one embodiment, the processor generates the mesh 46 using a ball pivoting algorithm (BPA). Typically, when BPA is used, the size of the balls is set to correspond to the size of the voxels in the anatomical model of the subject. Alternatively, the mesh may be generated as a Delaunay triangulation including multiple triangles. Each triangle in the triangulation may be based on a Voronoi diagram formed around the location of the mesh. However, the processor may use any convenient method known in the art to form the mesh. In this example, the processor 34 (FIG. 1) is configured to apply BPA to the point cloud 40 with the constraint that no polygon (here, triangle 48) contains two points 42 labeled as corresponding to different ones of the second structure.
[0022] As an example, Figure 2 shows a scenario in which a triangle 48a is formed during the application of BPA to a point cloud. The triangle 48a is formed by three points 42: the first point
[0023]
number
[0024]
number
[0025]
number
[0026]
number
[0027]
number
[0028]
number
[0029] Following the formation of the triangle 48a, the BPA ball 51 moves at different times along two sides of the triangle 48a, i.e., the second point
[0030]
number
[0031]
number
[0032]
number
[0033]
number
[0034]
number
[0035]
number
[0036]
number
[0037]
number
[0038] Fourth point
[0039]
number
[0040]
number
[0041]
number
[0042]
number
[0043]
number
[0044]
number
[0045]
number
[0046] Segmentation In some embodiments, for each of the second structures, the processor identifies a plurality of edges of the triangle 48, each of which passes between any first point of the points labeled as corresponding to the first structure and any second point of the points labeled as corresponding to the second structure. For example, as shown by the bold line in FIG. 2, for the second structure s1, the processor identifies a first edge 50a, a second edge 50b, and a second point 50c.
[0047]
number
[0048]
number
[0049] Typically, these "boundary edges" are identified during the application of BPA to the point cloud 42. For example, in response to the addition of each new point to the mesh, the processor may check whether the newly added point is joined to a point corresponding to a different structure. If yes, the edge(s) joining the newly added point may be identified as a boundary edge. For example, the fourth point
[0050]
number
[0051] Reference is now made to Figure 3, which is a schematic, illustrative illustration of a mesh 46, according to some embodiments of the present disclosure. The mesh 46 includes a first mesh portion 46a representing the surface of the left atrial body and a second mesh portion 46b representing the surface of the pulmonary veins.
[0052] Based on the identified boundary edges, the processor displays on the mesh a boundary 54 between each of the first and second structures. For example, in the case shown in Figure 3, the processor displays the boundary 54 between the left atrial body and the pulmonary veins.
[0053] Typically, the identified boundary edges form a closed polyline 52. Thus, the processor may display the polyline 52 as the boundary. However, typically, the processor smooths the polyline and then displays the smoothed polyline 56 as the boundary. To smooth the polyline, the processor may use spline interpolation or any other suitable technique.
[0054] In some cases, one or more identified boundary edges diverge from polyline 52. The processor is configured to remove these divergent edges from the polyline before displaying or smoothing the polyline. It should also be understood that countless other suitable means may be used to indicate the boundary between structures, including, but not limited to, as raised features, depressions, assigning different colors to the surfaces of each of the structures, adding one or more icons at or near the boundary, and / or superimposing an arrow pointing to the boundary, etc.
[0055] Example BPA Algorithm Reference is now made to Figure 4, which is a flow diagram of an exemplary BPA algorithm 58, which represents a novel improvement over conventional BPA algorithms that enables accurate and automated identification of boundaries between different anatomical structures. The algorithm may be executed by processor 34 (Figure 1) according to examples of the present disclosure.
[0056] Algorithm 58 begins with initialization step 60, in which mesh 46 (FIG. 1) is initialized with at least one triangle. As noted above, other examples within the scope of the claims may operate on meshes formed with polygons other than triangles or polygons in addition to triangles. Following initialization step 60, the processor selects a seed triangle in seed selection step 62. The processor then orbits ball 51 (FIG. 1) around the edge of the seed triangle in orbit step 64. The processor then checks whether the ball is touching another point in check step 66. If not, the processor proceeds to another check step 78, as described below. Otherwise, the processor identifies the label of the touched point in label identification step 68.
[0057] Following label identification, the processor checks, in another check step 70, whether the aforementioned constraints allow the touching point to be added to the mesh based on the label. In particular, the processor checks whether any one of the edge endpoints corresponds to one of the second structures, and if so, checks whether the touching point corresponds to the same second structure. If the touching point does not correspond to any of the second structures, or if the touching point corresponds to the same second structure as one or both of the endpoints, the processor concludes that the touching point may be added.
[0058] If adding the touched point to the mesh is constrained, the processor proceeds to check step 78. Otherwise, the processor adds the touched point to the mesh in point addition step 72. The processor then checks in another check step 74 whether one or both of the edges joining the new point to the mesh are boundary edges. If yes, the processor marks the boundary edges in marking step 76. Subsequently, or if the boundary edges are not marked, the processor performs check step 78.
[0059] In a check step 78, the processor checks whether any edges remain for a pivot. If yes, the processor returns to the pivot step 64, where the processor pivots the BPA ball around the next edge. Otherwise, in another check step 80, the processor checks whether any more seed triangles remain. If yes, the processor returns to the seed selection step 62, where the processor selects the next seed triangle. Otherwise, the algorithm 58 ends.
[0060] Following execution of algorithm 58, the processor displays the mesh. As described above with reference to Figure 3, the processor may overlay one or more boundaries 54 on the mesh, which may be defined based on the marked boundary edges. For example, each boundary may be a closed curve that smoothly interpolates the closed polyline defined by the marked boundary edges. [Example]
[0061] The following examples relate to various non-exhaustive ways in which the teachings herein may be combined or applied. It should be understood that the following examples are not intended to limit the scope of any claims that may be presented at any time in this application or any subsequent application related to this application. No disclaimer is intended. The following examples are provided merely for illustrative purposes. It is contemplated that the various teachings herein may be configured and applied in many other ways. It is also contemplated that certain features referred to in the following examples may be omitted in some variations. Accordingly, none of the aspects or features referred to below should be deemed critical unless later expressly indicated as such by the inventors or their successors. If presented in this application or any subsequent application related to this application that includes additional features other than those referred to below, no claim should be deemed to have those additional features added thereto for any reasons related to patentability.
[0062] 1. The system (20) includes a display (36) and a processor (34). The processor is configured to acquire a point cloud (40) including a plurality of points (42) representing different respective locations within a body of a subject (22), the points being labeled as corresponding to respective anatomical structures to which the locations belong. The anatomical structures include a first structure and a plurality of second structures. The processor is further configured to calculate a mesh (46) including a plurality of triangles (48) representing the anatomical structures by applying a ball pivoting algorithm to the point cloud, with the constraint that none of the triangles includes two of the points labeled as corresponding to different respective ones of the second structures. The processor is further configured to display the mesh on the display.
[0063] 2. The system (20) of example 1, wherein the first structure comprises at least a portion of a cavity of the heart (24).
[0064] 3. The system (20) of example 1, wherein the first structure comprises at least a portion of a sinus.
[0065] 4. The processor (34) For each second structure, Identifying a plurality of sides of a triangle (48), each of the plurality of sides passing between any first point of the points (42) labeled as corresponding to the first structure and any second point of the points labeled as corresponding to the second structure; The system (20) of any one of Examples 1 to 3, further configured to display a boundary (54) between the first structure and the second structure on the mesh (46) based on the identified edges.
[0066] 5. The identified edges form a closed polyline (52), and the processor: smoothing the polyline; 5. The system (20) of claim 4, configured to display the boundary by: displaying a smoothed polyline (56).
[0067] 6. The system (20) of any one of Examples 4 to 5, wherein the processor (34) is configured to identify edges for each of the second structures while applying a ball pivot algorithm to the point cloud (40).
[0068] 7. The system (20) of any one of Examples 1 to 6, wherein the processor (34) is configured to calculate the point cloud (40) by sampling a plurality of preliminary meshes each representing an anatomical structure.
[0069] 8. The method includes obtaining a point cloud (40) including a plurality of points (42) representing different respective locations within a body of a subject (22), the points being labeled as corresponding to respective anatomical structures to which the locations belong. The anatomical structures include a first structure and a plurality of second structures, and the method further includes calculating a mesh (46) including a plurality of triangles (48) representing the anatomical structures by applying a ball pivoting algorithm to the point cloud, with the constraint that none of the triangles includes two of the points labeled as corresponding to different respective ones of the second structures. The method further includes displaying the mesh.
[0070] 9. The method of example 8, wherein the first structure comprises at least a portion of a cavity of the heart (24).
[0071] 10. The method of example 8, wherein the first structure comprises at least a portion of a sinus.
[0072] 11. For each second structure, Identifying a plurality of sides of a triangle (48), each of the plurality of sides passing between any first point of the points (42) labeled as corresponding to the first structure and any second point of the points labeled as corresponding to the second structure; 11. The method of any one of Examples 8 to 10, further comprising displaying a boundary (54) between the first structure and the second structure on the mesh (46) based on the identified edges.
[0073] 12. The identified edges form a closed polyline (52) and display the boundary (54). smoothing the polyline; and displaying the smoothed polyline (56).
[0074] 13. The method of any one of embodiments 11 to 12, wherein identifying edges for each of the second structures comprises identifying edges while applying a ball pivoting algorithm to the point cloud (40).
[0075] 14. The method of any one of Examples 8 to 13, wherein obtaining the point cloud (40) includes calculating the point cloud by sampling a plurality of preliminary meshes each representing an anatomical structure.
[0076] 15. A computer software product comprises a tangible, non-transitory computer-readable medium having stored thereon program instructions. When read by a processor (34), the instructions cause the processor to obtain a point cloud (40) including a plurality of points (42) representing different respective locations within a body of a subject (22), the points being labeled as corresponding to respective anatomical structures to which the locations belong. The anatomical structures include a first structure and a plurality of second structures. The instructions further cause the processor to calculate a mesh (46) including a plurality of triangles (48) representing the anatomical structures by applying a ball-pivoting algorithm to the point cloud, with the constraint that none of the triangles includes two of the points labeled as corresponding to different respective ones of the second structures. The instructions further cause the processor to display the mesh or a smoothed model created therefrom.
[0077] Those skilled in the art will understand that the present disclosure is not limited to what has been specifically shown and described above. Rather, the scope of the present disclosure includes combinations and subcombinations of the various features described herein above, as well as variations and modifications of features not present in the prior art that would occur to one skilled in the art upon reading the foregoing description. Documents incorporated by reference into this patent application are to be considered integral parts of this application, provided that, to the extent that any term in these incorporated documents is defined in a manner that contradicts a definition expressly or impliedly made herein, only the definition herein shall be considered.
[0078] [Embodiment] (1) A system comprising: The display and a processor, the processor obtaining a point cloud comprising a plurality of points representing different respective locations within a body of a subject, the points being labeled as corresponding to respective anatomical structures to which the locations belong; acquiring the anatomical structure, the anatomical structure including a first structure and a plurality of second structures; and calculating a mesh including a plurality of triangles representing the anatomical structure by applying a ball pivoting algorithm to the point cloud, with the constraint that none of the triangles contains two of the points labeled as corresponding to different respective ones of the second structure. (2) The system of embodiment 1, wherein the first structure comprises at least a portion of a cardiac cavity. (3) The system of embodiment 1, wherein the first structure includes at least a portion of a sinus. (4) The processor: For each of the second structures: identifying a plurality of sides of the triangle, each of the plurality of sides passing between any first one of the points labeled as corresponding to the first structure and any second one of the points labeled as corresponding to the second structure; 2. The system of claim 1, further configured to: display a boundary between the first structure and the second structure on the mesh based on the identified edges. (5) the identified edges form a closed polyline, and the processor: smoothing the polyline; 5. The system of claim 4, wherein the system is configured to display the boundary by: displaying the smoothed polyline.
[0079] (6) The system of embodiment 4, wherein the processor is configured to identify the edges for each of the second structures while applying the ball pivot algorithm to the point cloud. (7) The system of embodiment 1, wherein the processor is configured to calculate the point cloud by sampling multiple preliminary meshes each representing the anatomical structure. (8) A method comprising: obtaining a point cloud comprising a plurality of points representing different respective locations within a body of a subject, the points being labeled as corresponding to respective anatomical structures to which the locations belong; acquiring the anatomical structure, the anatomical structure including a first structure and a plurality of second structures; and calculating a mesh comprising a plurality of triangles representing the anatomical structure by applying a ball pivoting algorithm to the point cloud, with the constraint that none of the triangles contains two of the points labeled as corresponding to different respective ones of the second structure. (9) The method of embodiment 8, wherein the first structure comprises at least a portion of a cardiac cavity. (10) The method of embodiment 8, wherein the first structure comprises at least a portion of a sinus.
[0080] (11) For each of the second structures, identifying a plurality of sides of the triangle, each of the plurality of sides passing between any first one of the points labeled as corresponding to the first structure and any second one of the points labeled as corresponding to the second structure; 9. The method of claim 8, further comprising displaying a boundary between the first structure and the second structure on the mesh based on the identified edges. (12) The identified edges form a closed polyline, and the boundary is displayed. smoothing the polyline; and displaying the smoothed polyline. (13) The method of embodiment 11, wherein identifying the edges for each of the second structures includes identifying the edges while applying the ball pivot algorithm to the point cloud. (14) The method of embodiment 8, wherein obtaining the point cloud includes calculating the point cloud by sampling a plurality of preliminary meshes each representing the anatomical structure. (15) A computer software product including a tangible, non-transitory computer-readable medium having stored thereon program instructions, the instructions, when read by a processor, causing the processor to: obtaining a point cloud comprising a plurality of points representing different respective locations within a body of a subject, the points being labeled as corresponding to respective anatomical structures to which the locations belong; acquiring the anatomical structure, the anatomical structure including a first structure and a plurality of second structures in fluid communication with the first structure but not with each other; and calculating a mesh comprising a plurality of triangles representing the anatomical structure by applying a ball pivoting algorithm to the point cloud, with the constraint that none of the triangles contains two of the points labeled as corresponding to different ones of the second structure.
[0081] (16) The computer software product of embodiment 15, wherein the first structure comprises at least a portion of a cavity of the heart. (17) The computer software product of claim 15, wherein the first structure includes at least a portion of a sinus. (18) The instructions cause the processor to: For each of the second structures: identifying a plurality of sides of the triangle, each of the plurality of sides passing between any first one of the points labeled as corresponding to the first structure and any second one of the points labeled as corresponding to the second structure; 16. The computer software product of claim 15, further comprising: displaying a boundary between the first structure and the second structure on the mesh based on the identified edges. (19) The identified edges form a closed polyline, and the instructions direct the processor to: smoothing the polyline; 20. The computer software product of claim 18, further comprising: displaying the smoothed polyline; and displaying the boundary by performing the steps of: (20) The computer software product of claim 18, wherein the instructions cause the processor to identify the edges for each of the second structures while applying the ball pivot algorithm to the point cloud.
Claims
1. 1. A system comprising: The display and a processor, the processor obtaining a point cloud comprising a plurality of points representing different respective locations within a body of a subject, the points being labeled as corresponding to respective anatomical structures to which the locations belong; acquiring the anatomical structure, the anatomical structure including a first structure and a plurality of second structures; and computing a mesh comprising a plurality of triangles representing the anatomical structure by applying a ball pivoting algorithm to the point cloud, with the constraint that none of the triangles contains two of the points labeled as corresponding to different respective ones of the second structure.
2. The system of claim 1 , wherein the first structure comprises at least a portion of a cavity of a heart.
3. The system of claim 1 , wherein the first structure comprises at least a portion of a sinus.
4. the processor: For each of the second structures: identifying a plurality of sides of the triangle, each of the plurality of sides passing between any first one of the points labeled as corresponding to the first structure and any second one of the points labeled as corresponding to the second structure; 10. The system of claim 1, further configured to: display a boundary between the first structure and the second structure on the mesh based on the identified edges.
5. the identified edges form a closed polyline, and the processor: smoothing the polyline; The system of claim 4 , configured to display the boundary by: displaying the smoothed polyline.
6. The system of claim 4 , wherein the processor is configured to identify the edges for each of the second structures while applying the ball pivot algorithm to the point cloud.
7. The system of claim 1 , wherein the processor is configured to calculate the point cloud by sampling a plurality of preliminary meshes each representing the anatomical structure.
8. 1. A method comprising: obtaining a point cloud comprising a plurality of points representing different respective locations within a body of a subject, the points being labeled as corresponding to respective anatomical structures to which the locations belong; acquiring the anatomical structure, the anatomical structure including a first structure and a plurality of second structures; and calculating a mesh comprising a plurality of triangles representing the anatomical structure by applying a ball pivoting algorithm to the point cloud, with the constraint that none of the triangles contains two of the points labeled as corresponding to different respective ones of the second structure.
9. The method of claim 8 , wherein the first structure comprises at least a portion of a cavity of the heart.
10. The method of claim 8 , wherein the first structure comprises at least a portion of a sinus.
11. For each of the second structures: identifying a plurality of sides of the triangle, each of the plurality of sides passing between any first one of the points labeled as corresponding to the first structure and any second one of the points labeled as corresponding to the second structure; The method of claim 8 , further comprising displaying a boundary between the first structure and the second structure on the mesh based on the identified edges.
12. The identified edges form a closed polyline and the boundary is displayed. smoothing the polyline; and displaying the smoothed polyline.
13. The method of claim 11 , wherein identifying the edges for each of the second structures comprises identifying the edges while applying the ball pivoting algorithm to the point cloud.
14. The method of claim 8 , wherein obtaining the point cloud comprises computing the point cloud by sampling a plurality of preliminary meshes each representing the anatomical structure.
15. 1. A computer software product comprising a tangible, non-transitory computer-readable medium having stored thereon program instructions, said instructions, when read by a processor, causing said processor to: obtaining a point cloud comprising a plurality of points representing different respective locations within a body of a subject, the points being labeled as corresponding to respective anatomical structures to which the locations belong; acquiring, wherein the anatomical structure includes a first structure and a plurality of second structures in fluid communication with the first structure but not with each other; and calculating a mesh comprising a plurality of triangles representing the anatomical structure by applying a ball pivoting algorithm to the point cloud, with the constraint that none of the triangles contains two of the points labeled as corresponding to different respective ones of the second structure.
16. 16. The computer software product of claim 15, wherein the first structure comprises at least a portion of a cavity of a heart.
17. 16. The computer software product of claim 15, wherein the first structure comprises at least a portion of a sinus.
18. The instructions cause the processor to: For each of the second structures: identifying a plurality of sides of the triangle, each of the plurality of sides passing between any first one of the points labeled as corresponding to the first structure and any second one of the points labeled as corresponding to the second structure; 16. The computer software product of claim 15, further comprising: displaying a boundary between the first structure and the second structure on the mesh based on the identified edges.
19. The identified edges form a closed polyline, and the instructions cause the processor to: smoothing the polyline; 20. The computer software product of claim 18, further comprising: displaying the boundary by: displaying the smoothed polyline.
20. 20. The computer software product of claim 18, wherein the instructions cause the processor to identify the edges for each of the second structures while applying the ball pivot algorithm to the point cloud.