Method and system for three-dimensional printing-oriented image segmentation
The method addresses the challenge of converting medical image data into 3D printer data by using print-oriented segmentation that considers printer specifications, resulting in higher quality and robust 3D printed models.
Patent Information
- Application Number
- JP2023099878
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2016-11-23
- Filing Date
- 2023-06-19
- Publication Date
- 2024-12-24
- Estimated Expiration
- 2037-11-23
AI Technical Summary
Existing 3D printing systems face challenges in converting medical image data, such as DICOM, CT, or MRI data, into 3D printer data without considering the specific characteristics of different printers, leading to issues like weak sections, inaccuracies, and pixelated models.
A method and system that performs print-oriented segmentation (POS) by converting medical image data into 3D printer input data, taking into account the specifications of a specific printer, including segmentation, resolution adjustment, and printer definition data to ensure high-quality printing.
This approach results in improved 3D printing quality by ensuring that the output is tailored to the capabilities of the specific printer, reducing weak sections and inaccuracies, and producing more robust 3D models.
Smart Images

Figure 0007605909000004 
Figure 0007605909000005 
Figure 0007605909000006
Abstract
Description
[Technical field]
[0001] The present invention relates to three-dimensional (3D) or volumetric printing systems, and more particularly to generating 3D image definitions or data from segmented 3D or other image data, and printing the data. [Background technology]
[0002] 3D printing systems typically generate three-dimensional objects by forming successive layers of material that are combined in a cross-sectional pattern along the z-axis (usually a layer-by-layer up-down direction) based on input computer data or definition to form the three-dimensional object. Volumetric printing systems include systems that build parts by, for example, stereolithography, laser sintering, fused deposition modeling, selective deposition modeling (e.g., inkjet deposition), film transfer printing, and others.
[0003] 3D printers can take as input data that defines the object to be printed. Examples of 3D printer input data or 3D definition files can include polygons (approximations of a surface by groups of triangles), such as STL (StereoLithography) format data, AMF (Additive Manufacturing File Format), and VRML (Virtual Reality Modeling Language) format data. Summary of the Invention [Problem to be solved by the invention]
[0004] It is desirable to use image data such as 3D medical image data, e.g., Digital Imaging and Communications in Medicine (DICOM) data, computed tomography (CT) data, magnetic resonance imaging (MRI) data, ultrasound data, or stacks of image slices, to generate 3D objects. For example, a patient may be imaged and it is desirable to print a 3D model of all or part of the patient's vasculature, heart, spine, etc. The conversion of 3D image data to 3D printer data may not be straightforward, e.g., different 3D printers have different characteristics and the conversion may not take these characteristics into account. [Means for solving the problem]
[0005] A system and method for converting image data, e.g., medical image data, into three-dimensional printer data. Image data representing a three-dimensional volume of, e.g., a subject or patient, can be received. Printer definition data describing a particular printer can be used to generate 3D printer input data from the image data representing at least a portion of the three-dimensional volume.
[0006] The subject matter which is regarded as the invention is particularly pointed out and distinctly claimed in the concluding portion of this specification. For simplicity and clarity of illustration, elements illustrated in the figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements may be exaggerated relative to other elements for clarity of presentation. In addition, reference characters may be repeated among the figures to indicate matching or similar elements. However, the specification, both as to organization and method of operation, together with their objects, features, and advantages, can best be understood by reference to the following detailed description read in conjunction with the accompanying drawings, in which: [Brief description of the drawings]
[0007] [Figure 1] 1 is a schematic block diagram representation of a computing device, in accordance with an embodiment of the present invention. [Diagram 2] 1 is a schematic block diagram representation of a system according to an embodiment of the present invention. [Diagram 3] 1 is a flowchart illustrating a method according to one embodiment of the present invention. [Figure 4A] 1 illustrates a two-dimensional (2D) representation of a 3D volume with a void, according to an embodiment of the present invention. [Figure 4B] 1 illustrates a two-dimensional (2D) representation of a 3D volume with voids filled to obtain a volume, according to an embodiment of the present invention. [Figure 5A] 1 illustrates a 2D representation of a 3D volume with boundaries between teeth and a mandible, according to an embodiment of the present invention. [Figure 5B] 1 illustrates a 2D representation of a 3D volume where the boundaries between the teeth and the mandible have been removed to create gaps, according to an embodiment of the present invention. [Figure 6A] 1 illustrates a 2D representation of a 3D volume containing bone segments, according to an embodiment of the present invention. [Figure 6B] 1 illustrates a 2D representation of a 3D volume containing bone segments, according to an embodiment of the present invention. [Figure 7A] 1 illustrates a model before and after expansion, according to one embodiment of the present invention. [Figure 7B] 1 illustrates a model before and after expansion, according to one embodiment of the present invention. [Figure 7C] 1 illustrates a model before and after expansion, according to one embodiment of the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0008] It will be appreciated that for simplicity and clarity of illustration, elements illustrated in the figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements may be exaggerated relative to other elements for clarity. Further, where considered appropriate, reference numerals may be repeated among the figures to indicate corresponding or similar elements.
[0009] In the following detailed description, numerous specific details are set forth to provide a thorough understanding of some embodiments. However, it will be apparent to one skilled in the art that some embodiments may be practiced without these specific details. In other instances, well-known methods, procedures, components, units, and / or circuits have not been described in detail so as not to obscure the description.
[0010] For example, descriptions herein using terms such as "processing," "calculating," "estimating," "determining," "setting," "analyzing," "ascertaining," or the like may refer to operation(s) and / or process(es) of a computer, computing platform, computing system, or other electronic computing device that manipulates and / or transforms data represented as physical (e.g., electronic) quantities in the computer's registers and / or memory into other data that is also represented as physical quantities in the computer's registers and / or memory or other information storage medium capable of storing instructions for performing operations and / or processes.
[0011] References to "one embodiment," "an embodiment," "an illustrative embodiment," "exemplary embodiments," "various embodiments," and the like indicate that the described embodiment(s) may include a particular feature, structure, or characteristic, but not necessarily every embodiment includes that particular feature, structure, or characteristic. Repeated use of the phrase "in one embodiment" does not necessarily refer to the same embodiment, although they may. Some embodiments may include features from different descriptions of embodiments, for example, certain systems and methods may employ thickening and / or void generation and / or resolution adjustment, and the like.
[0012] The logic, modules, devices, and interfaces described herein may perform functions that may be implemented in hardware and / or code, which may include software, firmware, microcode, processors, state machines, chipsets, or combinations thereof designed to achieve that functionality.
[0013] Embodiments of the present invention may perform "print-oriented" segmentation ("POS") or data conversion. Embodiments may convert image data representing a 3D volume, for example, to 3D printer data by inputting image data representing a 3D volume of a subject (e.g., a human patient) and generating from the image data, in a POS process, 3D printer input data representing at least a portion of the three-dimensional volume, using or according to printer definition data (e.g., a particular printer desired to be used for printing, printer settings for a particular printing job, printing material to be used for the job, or other parameters). The image data may be segmented, which typically involves conversion from medical image data to a mask, a 3D matrix that includes, for example, 1's where 3D material should be printed and, for example, 0's where material should not be printed. Other suitable data structures may be used. Segmentation may include dividing the volume into portions to be printed and / or selecting (e.g., according to user input) specific portions to be printed. Segmentation may be performed, for example, by thresholding and / or by specific known tools or algorithms designed for specific types of structures. For example, a known tool or module can segment the image data into different bone groups, and a known tool or module can segment the image data into different soft tissue organs. The segmentation can generate one or more masks, e.g., one mask per vertebra or one mask per tooth.Known transformation or segmentation methods may include, for example, well-known tooth segmentation (e.g., Hui Gao and Oksam Chae, “Individual tooth segmentation from CT images using level set method with shape and intensity prior,” Pattern Recognition, Vol. 43, July 7, 2010, pp. 2406-2417), and blood vessel segmentation (e.g., David Lesagea, Elsa Angelini, Isabelle Bloch, Gareth Funka-Lea, “A review of 3D vessel lumen segmentation techniques: Models, features and extraction schemes,” Medical Image Analysis, Vol. 13, December 6, 2009, pp. 819-845).
[0014] Segmentation is typically performed prior to conversion to printer data. The printer input data can then be used by a printer to print and generate a 3D object. Prior art segmentation and data conversion is typically performed without regard to whether the segmented data is to be 3D printed and / or without evaluation of the printer's characteristics, resulting in poor quality prints. For example, when the printer takes on such a printing job, it may provide a notification that the segmentation is insufficient, e.g., parts are too thin or there are no connections. In comparison, embodiments of the present invention may perform a segmentation or data conversion process that takes into account that the output is for a specific 3D printer with a set of specifications. In order to achieve the most appropriate printing model in an efficient manner, a 3D model can be generated using the specifications (constraints and / or advantages) of the 3D printer. This can reduce or eliminate issues such as weak sections, inaccuracies, or "pixelated" models that may occur if the individual printer has not been evaluated. Although embodiments of the present invention may be particularly advantageous when used in conjunction with medical-grade volumes defined, such as by DICOM, MR, or CT data, embodiments of the present invention may also work with other data, such as non-medical image data.
[0015] FIG. 1 illustrates a system according to an embodiment of the present invention. An imaging system 90 can image an object 92 (e.g., a human patient) and generate 3D medical image data 94 (representing the object or a portion of the object), such as CT data, MR or MRI data, ultrasound data, a stack of image slices, or other image data, which may be, for example, a CT system or an MRI system. Other medical or non-medical imaging systems may be used. Although medical imaging or image data is described herein, other imaging systems may be used, and the image data used herein is generated artificially rather than imaging a specific object. For example, the input data may be 3D objects. These 3D objects may include 3D image data, mesh data, volumetric objects, polygonal mesh objects, point clouds, functional representations of 3D objects, CAD files, 3D pdf files, STL files, and / or any input capable of representing a 3D object. The 3D image data may include medical image data, including CT data, Cone Beam Computed Tomography ("CBCT") image data, MRI and / or MRA image data (e.g., MRI with contrast), or ultrasound image data. The 3D objects may be anatomical (e.g., complex anatomical), industrial data, or any 3D object.
[0016] The imaging system 90 can send or transmit the image data 94 to a computer 20, such as, for example, a personal computer, a workstation, etc. The computer 20 can process the image data 94, taking into account or in accordance with the printer definition data 22, and output 3D printer input data 11, such as, for example, a 3D mesh, a 3D definition file, PLY (Polygon File Format), STL (Stereolithography), AMF (ASTM Additive Manufacturing File Format), VRML (Virtual Reality Modeling Language), or other data, to the 3D printer 10, which can print the data as a 3D printed object 12 in the physical reality. Although the image data 94, the printer definition data 22, and the 3D printer input data 11 are shown stored by the computer 20 (e.g., in memory 40 of FIG. 2), such data may be stored or shared by the devices of FIG. 1, including the imaging system 90 and the printer 10, as appropriate. For example, the imaging system 90 can generate image data 94 (which may be generated in another manner or come from another source) and can send or transmit the image data 94 to the computer 20, which can generate the 3D printer input data 11 and can send or transmit the data 11 to the 3D printer 10.
[0017] The 3D printer 10 can use a variety of methods for using an input or build material (e.g., a photopolymer or other material) to generate a physical, real-world 3D printed object 12, the printing of which can be defined or considered in terms of an X / Y / Z axis, with the Z axis defining the vertical relationship of a set of layers of deposited material.
[0018] Each of the imaging system 90, computer 20, and 3D printer 10 may include computing components, such as some version of the components described in FIG. 2, and may be linked, for example, by network 60. In other embodiments, not all of the components shown may be used. For example, image data may not be input directly from imaging system 90 to computer 20, but rather, for example, via a flash drive, disk, etc. Components may be combined, for example, the functionality of computer 20 described as converting image or imaging data 94 to 3D printer data 11 may be incorporated into 3D printer 10.
[0019] In one embodiment, the 3D printer 10 can include a cartridge 14 that includes a supply of object generating build material 16 that can be selectively dispensed onto a tray 18, for example. The tray 18 holds the volumetric printing material used to build the 3D object 12 during the build process. In one embodiment, the volumetric printing material can be any light curable material known in the art or hereafter devised. Examples of printing or object generating materials suitable for use with various embodiments of the present invention include, for example, light curable materials, plastics, and metals. The volumetric printing material 16 can be dispensed from the cartridge 14 through one or more dispensers, inkjets, or selectively openable valves 15 on the bottom wall of the cartridge. A moving device such as a shuttle 19 can move the dispenser or valve 15 generally back and forth and side to side along the x-axis and / or y-axis of the volumetric printing device 10, and possibly move the dispenser or valve 15 up and down along the z-axis to generate layers. Other embodiments of the present invention include separate devices for dispensing the printing material into the tray. Other embodiments do not require selective deposition or the use of the specific components illustrated; for example, the 3D printer 10 can use a system in which an inkjet printer head deposits a binder material onto a powder bed layer by layer, or a selective laser sintering (SLS) system in which a laser sinters the powder material.
[0020] 2 depicts computing components that may be, for example, parts of printing system 90, computer 20, and 3D printer 10. Computing device 30 may include a controller 32, which may be, for example, a central processing unit processor (CPU), a chip, or any suitable computing or computational device, a general processing unit (GPU) 33, an operating system 50, memory 34, storage 36, input devices 38, and output devices 40.
[0021] The operating system 50 may be or include any code segment designed and / or configured to perform tasks including coordinating, scheduling, arbitrating, supervising, controlling, or otherwise managing the operation of the computing device 30, such as, for example, scheduling program execution. The memory 34 may be or include, for example, a random access memory (RAM), a read only memory (ROM), a dynamic RAM (DRAM), a synchronous DRAM (SD-RAM), a double data rate (DDR) memory chip, a flash memory, a volatile memory, a non-volatile memory, a cache memory, a buffer, a short-term memory unit, a long-term memory unit, or other suitable memory or storage unit. The memory 34 may be or include multiple, possibly distinct, memory units. The executable code or software 52 may be any executable code, such as, for example, an application, a program, a process, a task, or a script. Executable code or software 52 may include, for example, a segmentation algorithm or process, a process for converting image data into 3D printing specification data, etc. Executable code 52 is executable by controller 32, perhaps under the control of operating system 50. For example, executable code 52 may be an application that performs the methods described herein. Controller 32 may be configured to perform the methods described herein, for example, by executing code 52.
[0022] Storage 36 may be or may include, for example, a hard disk drive, a floppy disk drive, a compact disk (CD) drive, a CD-recordable (CD-R) drive, a universal serial bus (USB) device, or other suitable removable and / or fixed storage unit.
[0023] The input devices 38 may be or include a mouse, keyboard, touch screen or pad, or any suitable input device. Of course, any suitable number of input devices may be connected. The output devices 40 may include, for example, one or more displays, speakers, and / or any other suitable output device. Of course, any suitable number of output devices may be operatively connected.
[0024] Embodiments of the invention may include an article of manufacture, such as a computer or processor non-transitory readable medium, or a computer or processor non-transitory storage medium, e.g., a memory, disk drive, or USB flash memory, that encodes, contains, or stores instructions, e.g., computer-executable instructions, that when executed by a processor or controller, cause the processor or controller to perform the methods disclosed herein.
[0025] FIG. 3 is a flow chart illustrating a method according to an embodiment of the present invention. In operation 300, image information and / or printer information can be input. For example, a 3D volume (e.g., image data 94, such as a 3D image or imaging data) and printer specification or definition data 22 (e.g., describing a particular printer, materials used, etc.) can be input. The input can also be data describing the image data, such as, for example, resolution. In operation 310, an initial segmentation, processing, or transformation can be performed. In an initial segmentation, the 3D volume can be transformed into one or more masks 24, which can be initial masks. Segmentation can include identifying features, such as features within the body (e.g., various bones, organs, teeth, etc.), and dividing the mask or masks according to various features. Various segmentation algorithms and specification tools can be used, such as segmentation by thresholding. Initial processing 320 can include processing such as resolution change, filling voids, eroding or removing boundaries between contacting masks, etc. Some operations can be combined, for example, resolution changes can be incorporated into segmentation 310. Initial processing 320 can take into account printer specification or definition data 22.
[0026] In operation 330, the output of the previous operation (e.g., one or more masks) may be evaluated, for example, for quality, strength, and / or printability. If the mask or a portion of the mask is not printable or fails some quality test, in operation 340 the mask may be adjusted, changed, or modified, possibly without compromising accuracy; for example, these "fixes" may be at the same resolution as the printer resolution. The evaluation and modifications or adjustments may be repeated or repeated. Typically, evaluation 330 is performed again after adjustment 340.
[0027] If the mask is printable, then in operation 350, the mask may be post-processed by known operations, such as, for example, smoothing or morphological operations such as thinning or erosion. In some embodiments, the output of the post-processing may be subjected to evaluation in operation 330 to determine whether the post-processing resulted in a printable or non-printable mask. In operation 360, the mask may be converted into data representing at least a portion of a 3D volume that can be input or sent to a printer, for example, the mask may be converted into a mesh. In operation 370, the mesh may be printed by a 3D printer.
[0028] In one embodiment of the present invention, image data 94 (e.g., 3D image or imaging data) can be converted into 3D printer input data 11 (e.g., mesh) taking into account or according to printer specification or definition data 22. For example, the printer input data can be generated (e.g., converted from) image or imaging data 94 that can represent or enable the 3D printer to print at least a portion of a 3D volume. The image data can be, for example, a volume that includes 3D color or grayscale data that may require segmentation (e.g., CT or MR DICOM images, a series of two-dimensional (2D) images). The 3D printer can then print the printer input data and a 3D object or objects that correspond to the image data or 3D volume. The printer specification or definition data 22 typically describes a particular printer or type of printer that a user intends to use for a printing job. The printer specification or definition data 22 can describe the operating parameters, resolution, tolerances, precision, etc. for a particular 3D printer and / or a particular model of printer. The printer specification or definition data 22 may include data about the particular printing material being used by the target printer (e.g., the printer intended for use or selected for use by the user), and some printers may use different materials. Thus, the printer specification or definition data 22 may include data describing a particular printer and the type of material it is intended to use for a particular task. The transformation may include segmentation, i.e., identifying features such as in vivo features (e.g., organs, vasculature, organ parts, bones, etc.), and generating, for example, one or more masks 24. Each mask 24 may represent, for example, various objects, organs, body parts to be printed, bones, etc., within the volume to be printed. The image data 94 may represent or describe a three-dimensional volume of a subject (e.g., a patient, although in some embodiments a non-living object may be the subject).However, the image data 94 need not be fully 3D data, for example, a set of 2D slices could form the image data 94 and represent a 3D volume. For example, the input could be CT data, which could be a stack of 2D slices, where the distance or spacing between each slice is known.
[0029] Prior to conversion to printer data, the image data can be divided or segmented into one or more portions (e.g., organs, tissues) desired to be printed, and irrelevant image data (e.g., internal body volumes not to be printed, such as organs or tissues not relevant to the user) can be excluded. This division or segmentation can generate one or more image data segments or portions (e.g., masks), each of which can be converted to printer input, specification, or definition data, with each segment representing an object to be printed. A mask 24 or other data structure can be used or can be produced or generated as an output of the segmentation process. The mask 24 can ensure that only the portion of the image data defined by the mask is converted to 3D printer input data. For example, the image data may be a volume, such as a patient's chest, that includes tissues (e.g., heart) and unwanted tissues (e.g., lungs, connective tissue, bone, skin, etc.) that the user desires to convert to a 3D object. The mask 24 can define the object or organ to be printed. In one embodiment, the mask can be a data structure that represents a volume or region of the same size or volume as the image data 94 with a Boolean value (e.g., 1 / 0, true / false, although other values may be used) indicating for each voxel in the image data 94 whether it should be converted into a 3D object. In one embodiment, the mask may initially contain all false / 0 values, and the voxels / portions to be printed may have their values changed to true / 1. If a voxel is not used, the mask 24 may manipulate the image data 94 in another way, including, for example, Boolean values corresponding to portions of the image data 94. For example, a 1 may indicate inclusion in the 3D object and a 0 may indicate not inclusion. Multiple masks 24 may be used, each corresponding to an object, for example, one mask may correspond to and print one ventricle of the heart and another mask may correspond to and print another ventricle of the heart.
[0030] In one embodiment, a workstation such as computer 20 may receive a printer specification, such as printer definition data 22, from printer 10 or may include printer definition data 22, or multiple sets of printer definition data 22, for example, one corresponding to each of several particular printers or printer models. A segmentation tool or algorithm, such as automatic bone segmentation, may be provided to computer 20 (or a device performing the segmentation), for example stored in memory 34 or storage 36.
[0031] The computer 20 may include printer definition data 22 or may receive such data from, for example, the printer 10, using, for example, a driver installed on the computer 20. Files or software stored on the computer 20 may include such data, for example, the data may be installed and updated for each supported printer, without the need to receive such data from the printer. The printer definition data 22 may include data for each printer that may be used or selected by the user, such as spatial resolution, layer thickness\Z-axis resolution data (e.g., distance between layers printed by the printer), printing tolerances (e.g., accuracy), printer model or make, printer technology used by the target printer (e.g., SLA, digital part materialization (DPM), fused deposition modelling (FDM), etc.), materials used (which may be used to obtain or retrieve material strength, which may also be known as a separate parameter), etc.
[0032] A user providing input to computer 20 can select a particular 3D printer with corresponding printer definition data 22 (e.g., the system can receive user input, for example, via input device 38), and in some embodiments can input material selections separately for use with the printer, or can input printer definition data 22.
[0033] The computer 20 can receive a volume to be processed and / or segmented, such as image data 94, for example, from the imaging system 90 or from another source. In one embodiment, data conversion from the image data 94 to printer input data 11, including segmentation, can occur on the computer 20, although in other embodiments, the processing can occur on the 3D printer 10, for example. The computer 20 can use segmentation or division tools and other algorithms (e.g., executed by or on the controller 32) to output one or more masks 24.
[0034] In one embodiment, the user can select how the segmentation is performed, for example, the user can decide that the heart should be segmented to generate one physical 3D object, or the heart should be segmented to generate several physical 3D objects according to sections of the heart. The user can, for example, click (using a pointing device) on the displayed area to provide a seed point, which a known algorithm, such as the Connected Components algorithm, can use to select a feature, such as an organ or bone. Known algorithms can also be used to generate masks, for example, one mask for each organ, bone, or part of an organ (e.g., the ventricles of the heart). Other user inputs to the segmentation process may also be received. The user can, for example, provide such inputs to the computer 20 via the input device 38, and the system can receive user inputs, for example, via the input device 38.
[0035] Various known segmentation algorithms or processes can be used. For example, thresholding can be used, where for each voxel in the input volume, if it is within a required range of values, or above or below a threshold, the voxel is segmented, for example, marked as true or "print" in a mask. Other suitable segmentation algorithms may be used.
[0036] The mask(s) 24 may be the output of a segmentation or partitioning process and may include, for example, 3D Boolean data that can indicate where the 3D model or sections of the model reside in relation to the volume.
[0037] Each mask 24 may be, for example, a data object representing one object, perhaps in a set of related objects. For example, a first mask may be a first section of the heart, a second mask may be a second section of the heart, etc. In some embodiments, it is not necessary to use masks or segmentation. For example, the transformation processes described herein may be applied to data without segmentation.
[0038] The computer 20 can use or apply a mask to the image data 94, convert the data into a 3D printing volume definition or a 3D model construct, generate or calculate the 3D printing volume definition, 3D model construct, mesh, etc., in the form of, for example, 3D printer input data 11, and send the data to the printer 10. The printer can then print a 3D object using, for example, the 3D printer input data 11.
[0039] One or more operations may be used, alone or in combination, to convert or during the conversion of image data to printer input data. For example, POS processing may include resolution enhancement, layer thickness adjustment, fill or border thickening, processing of complex mask structures, separation of structures that are connected in the real world, and connection of parts for printing.
[0040] In various embodiments, bone segmentation with specified tools or other segmentation can be performed as part of the initial segmentation (e.g., operation 310). For example, known thresholding algorithms can use bone values (e.g., for CT modality, convert voxels in the image data based on MinThresVal=100HU, MaxThresVal=1000HU, HU=Hounsfield Units). The bone segmentation algorithm can return or identify interior portions of bones as part of the segmentation process. The segmentation process for such results can be, for example, an alpha expansion algorithm on the graph to distinguish between the desired bone, other bones, and background. The alpha expansion algorithm can include an algorithm that optimizes the separation of data (e.g., "bone" and "non-bone").
[0041] Figure 6A shows a 2D representation of a 3D volume 600 with identified bone segments 610. Figure 6A shows the results of threshold-based segmentation of connected components selected from the results. Figure 6B shows a 2D representation of a 3D volume 600 with identified bone segments 610. Figure 6B shows print-directed segmentation according to one embodiment, where gaps and holes 605 are filled to produce a more printable and stronger object.
[0042] Other segmentations may also be performed, for example separating parts of an organ (eg, the ventricles of the heart) or separating different organs.
[0043] Adjusting the resolution
[0044] In various embodiments, as part of the initial processing (e.g., operation 320 above), the 3D printer input data can have a resolution or a modified required resolution (e.g., volume resolution), which is related to the capabilities and resolution of the printer. For example, the printer, and therefore its associated input data, can have a resolution expressed, for example, as printer tolerances, distance between layers, size of a voxel, number of x, y, or z lines or voxels, etc. The generation of the 3D printer input data can include adjusting the resolution of the mask, which is the output, according to printer definition data that describes the printer or describes the settings of the printer. For example, after obtaining a segmentation, the segmentation result can be smoothed to a higher resolution (e.g., the same as or greater than the precision of the printer).
[0045] The initial input volume can be, for example, medical input data or image data 94 (e.g., CT, MR data). This volume may be composed of voxels with specific dimensions (e.g., determined by modality, medical protocol, scanning device, etc.). The resolution of this initial medical input data volume or image data 94 can be varied, and the resolution of the mask can vary accordingly.
[0046] When changing the resolution, it is possible to take into account the printer tolerances. In one embodiment, the process can take into account the printer's resolution (e.g., the accuracy of the print on the print plane) and the layer thickness (e.g., the accuracy of the printer in the z direction). 3D printers usually print layer by layer, for example according to mesh or voxel data. The height of each layer is the thickness of that layer. The 3D printer needs to place the material at a specific x,y position along the voxel. However, the 3D printer may not be precise and place the material at x+T,y+T instead, where T is the tolerance (e.g., T could be in the mm or micrometer range). Tolerances may also exist in the z / thickness / layer direction and may have different values than the tolerances for x and y. The tolerances for an individual printer, or model of the printer, may be known (e.g., a set of tolerances for X / Y / Z). These tolerances and layer thicknesses are known or can be estimated by the user and can be taken into account.
[0047] The layer thickness and tolerance may constitute the "printer resolution" which is similar to the resolution of the volume. The 3D printer must have the information or "know" at which specific point in space it should or should not print material. The smallest dimension (or resolution) of this point in space (in the area of the 3D printing build) is the layer thickness and tolerance. If the resolution of the input medical volume is "tuned" or matched to the printer resolution (e.g., layer thickness and tolerance), better printing or better POS can be achieved.
[0048] For example, if the 3D printer selected or described in the printer definition data has a higher resolution than the volume to be imaged, interpolation could be performed to increase the resolution of the volume so that each voxel in the volume meets or exceeds the precision of the printer.
[0049] A function such as ResizeFun(VolumeInput, Resize Vector) can be used, which may be any function known in the art for interpolating medical image volumes or masks to increase or decrease resolution (e.g., if the input volume has a higher resolution than the printer). Suitable known functions include the multimodality non-rigid demon algorithm image registration posted at MathWorks.com.
[0050] Such a function may accept as input a VolumeInput, which may be a volume to be resized, which may be a 3D mask or a 3D volume, and a Resize Vector, which may be a resize parameter indicating the resize in each dimension.
[0051] This resize vector may be or may include a dimensionless number(s) indicating the resolution factor between the printer resolution and the volume resolution. For example, if the printer resolution is (1,1,0.5) [mm (which of course could be other dimensions)] and the volume resolution is (2,2,2) [mm (which of course could be other dimensions)], then the resize vector is dimensionless (unitless) (2,2,4).
[0052] In one embodiment, Resize Vector=VolumeResolution / PrinterResolution.
[0053] In one embodiment, the following is assumed:
[0054] The VolumeInput has the following resolution Rx, Ry, Rz, and width, depth, height (number of rows, columns and slices):
[0055] This data can be, for example, from a DICOM file.
[0056] Rx and Ry are referred to as the DICOM tag (0028,0030) PixelSpacing [mm].
[0057] Rz may be the difference between the slice positions represented by the DICOM tag (0018,0050) SliceThickness, or the DICOM tag (0020,1041) (both in [mm]).
[0058] The printer tolerance can be PrTol and the layer thickness PrLay, which are in [mm] but can also be in other dimensions, e.g. inches, micrometers, etc.
[0059] In such an example, the resize vector = [Rx / PrTol, Ry / PrTol, Rz / PrLay] (there can be different values for each dimension).
[0060] In one embodiment, ResizeFun may be a known function such as the Matlab function Vq=interp3(X,Y,Z,VolumeInput,Xq,Yq,Zq).
[0061] for example,
[0062] [X,Y,Z]=meshgrid(0:Rx:width) * Rx,0:Ry:depth * Ry,0:Rz:height (height) * Rz),
[0063] [Xq,Yq,Zq]=meshgrid(0:ResizeVector(l): width * Rx,
[0064] 0:ResizeVector(2):depth * Ry,
[0065] 0:ResizeVector(3):height * Rz).
[0066] In one embodiment, [X,Y,Z]=meshgrid(x,y,z), which yields 3D grid coordinates based on the coordinates contained in the vectors x, y, and z. The grid represented by X, Y, and Z has size length(y)×length(x)×length(z). Meshgrid can be a well-known function, such as the Matlab function mentioned above, that is required as a pre-processing to the interp3 function.
[0067] In one embodiment, VolumeInput can have resolution Rx, Ry, Rz, the printer tolerance can be PrTol (e.g., the printer's "axial" dimension, the printer's resolution in the z-direction), and the layer thickness can be PrLay (e.g., Rz, but the printer's Rz), which in one embodiment is:
[0068] ResizeVector=[Rx / PrTol,Ry / PrTol,Rz / PrLay]
[0069] There can be different values for each dimension. As with all of the formulas, data structures and specific sequences described herein, other or different formulas, other data structures, and other sequences can be used.
[0070] Filling or thickening of borders / printability evaluation / mask fix or change
[0071] In various embodiments, generating the 3D printer input data may include evaluating the 3D mask to determine whether it is printable according to or taking into account the printer definition data, and / or correcting detected problems, such as increasing or decreasing thicknesses of sections of the printer input data or features or structures to be printed (to increase or decrease the thickness of corresponding sections of the 3D object). Generating the 3D printer input data may include, for example, generating voids or holes in solid regions according to the printer definition data to reduce the amount of material used.
[0072] When segmenting or printing hollow or thin regions, the 3D printed model of those regions may not have sufficient strength. Embodiments of the present invention can detect such regions and perform automatic morphological processing to increase the strength of the model.
[0073] The 3D printed object 12 must not break or collapse. If the boundaries (wall thickness) of the 3D printed object 12 are too thin and / or are constructed of a material that is not self-supporting in a particular model (related to material strength), the model may break during or shortly after printing. If the strength and / or other properties of the printing material 16 are known during the sectioning or data conversion process, the width or thickness of the sections of the 3D printed object 12 can be determined, for example, during POS. Similar processes such as "wall thickness analysis" and "boundary" thinning or widening may be performed on the mesh or 3D printer data 11. This is a known fast process, and in some embodiments, it can be performed on the mask at POS without delaying to the mesh. As a POS process, for example, a strength analysis performed on the mask may produce results that are more consistent with the raw data with fewer conversions performed compared to a strength analysis performed on the mesh.
[0074] Printer definition data 22 (e.g., printer technology) can affect material filling and other processes in that thickening, thinning, addition, and removal of material can occur in increments of, for example, the printer resolution.
[0075] Intensity analysis (e.g., StrAn, described below) can be performed on a mask, model, or volume to be printed (e.g., CompleteMask - this may be defined as the final mask to be printed), and is usually performed after segmentation.
[0076] Printability assessment may be performed at various levels of precision. For example, a general model printability check may be used (e.g., does this model look printable - yes or no answer, etc.), or the results may be location specific, e.g., a data structure such as a "heat map" showing which areas of the model look printable. Known algorithms may use known properties of the materials used in the build to determine whether a particular part is too weak after build. For example, it may be determined that a model part of a certain thickness is too weak if made of plastic but not if made of metal. A part of a model that is connected to a larger part may be determined to be too weak if made of plastic but not if made of metal, and of course this may depend on the size of the connected part.
[0077] A mathematical model for this heatmap could for example be as follows: MaskInput can be a Boolean mask, e.g. an initial mask, that is used as input to generate an intensity analysis process (e.g. using StrAn as described below), that results in a data structure, e.g. a "heatmap" called HeatMap, that indicates whether the input mask is ready to be printed and if not which areas.
[0078] Heatmap=StrAn(MaskInput). The heatmap may be a volume the same size as MaskInput, with values such as 0 for absence of material, and floating point numbers indicating intensity, determined, for example, in part based on the amount of material in neighboring voxels and local structure.
[0079] In some embodiments, Heatmap(~MaskInput)=0, (anywhere there is no mask, the heatmap is zero - no "concern").
[0080] As part of an example output, any voxel in the heatmap that matches or is Heatmap>StrThres is available and allowed to be printed. The inputs to the "Yes" (printable) or "No" (non-printable) options have the same mathematical model, and the model can only be printed if all voxels are Heatmap>StrThres.
[0081] StrAn can be any known strength analysis function or process, such as, for example, wall thickness analysis, finite element analysis (FEA, also known as finite element method (FEM)), or other tool, which includes known techniques and can be applied to the mesh.
[0082] A different approach to StrAn processing may include, for example, creating a mesh from the mask data and evaluating the printability by performing intensity analysis using algorithms known in the art. An example evaluation flow may include, for example:
[0083] Convert the initial mask to a mesh (e.g. using known techniques such as marching cubes) and perform mesh analysis (e.g. using known techniques such as wall thickness analysis or FEA). Additionally, a printability check could be performed on the mask, which can make the process simpler (e.g. no need to generate a mesh).
[0084] The strength analysis can depend on the model (structure, wall width, etc.) and the printer (printer type, printer material), which can be evaluated during StrAn and StrThres can be determined by these factors.
[0085] In one embodiment, new or additional masks (e.g., WeakMasks) can be generated to mark areas to be printed, which were not to be printed in the original print definition, but are provided to outline weak areas. Thus, weak areas below a certain threshold (threshold thickness or predicted strength) can be marked as new masks. For example,
[0086] WeakMask=StrAn <StrThres
[0087] WeakMask can be a new mask defined by all voxels in StrAn (or a "heat map" that can show which areas of a model are printable and which areas need adjustment, e.g. due to intensity issues) that are below the StrThres value.
[0088] A morphological extension (MorphoFun) can be defined, for example, as follows:
[0089] MorphoMask (morphological mask) = DilationFun (WeakMask)
[0090] A MorphoMask can be a mask generated after a dilation process (DialtionFun) applied to the WeakMask defined above.
[0091] Additionally, MorphoMask can be combined or integrated into CompleteMask.
[0092] CompleteMask=MorphoMask U CompleteMask
[0093] To perform the dilation, for each true voxel in the mask or print data (e.g., indicating that a build material is to be deposited), all false voxels surrounding or adjacent to the true voxel are set to true, and this can be done up to a certain thickness, with an integer number X of voxels adjacent in each direction to the true voxel being set to true. In dilation, typically, voxels or regions that have been modified to indicate that material is to be printed are contiguous or adjacently connected to the associated voxels or boundaries, whereas with fill functions, voxels or regions that have been modified to indicate that material is to be printed are not necessarily contiguous or adjacently connected to the associated voxels or boundaries.
[0094] In one embodiment, this can be iterative and the resulting Completemask can be re-analyzed for fragility, and this process can be re-run until all models exceed StrThres.
[0095] Another embodiment for enhancing the mask may be similar to the process described above, but using an expansion function of the following type:
[0096] DilationFun(WeakMask,StrAn)
[0097] This process can expand WeakMask depending on StrAn (the weaker the region is, the more expansion it "gets").
[0098] Another embodiment for enhancing the mask may be similar to the process described above, except that instead of MorphoFun defined as a spreading function, it uses a morphological filling function defined below.
[0099] MorphoMask=FillFun(Filling function)(WeakMask)
[0100] One simple embodiment can strengthen the model by thickening the boundaries. One embodiment can define the extension with a spherical element of radius R as A(+)R. This extension can be done towards directions that are "unimportant" for the model or its use, in order to obtain a model that is as close as possible to the anatomy on the one hand and printable on the other hand.
[0101] 7A, 7B, and 7C show the model before (FIG. 7A, initial) and after expansion (FIG. 7B, first expansion; 7C, outward expansion). For the initial thin model 700 shown in FIG. 7A, one option to thicken the model may be to expand it inwards. In this way, it is possible to make the model accurate with respect to the outer boundary while keeping it thick enough. This is when the outer structure of the model is important (in the example of FIG. 7, the size and structure of the aorta are important). Conversely, outward expansion is also possible so that the inner structure is accurate. As shown in FIG. 7C, this may be necessary when a device (e.g., a medical tool) has to be inserted into or inside the printed model and only the dimensions of the inner structure have to be preserved.
[0102] Filling the voids
[0103] In one embodiment, the initial processing or partitioning (e.g., operation 310 or 320) or the conditioning or post-processing (e.g., operation 340 or 350) can include filling of voids, which can be parts of the 3D object that are hollow and where no printing material is deposited. For example, a filling algorithm can be used to obtain or generate a more robust structure. An example of one filling procedure is shown in Figures 4A and 4B, which show 2D representations of a 3D volume 400 with a void 410 shown in Figure 4A and the resulting filled volume shown in Figure 4B. A mask representing the volume 400 can be modified to convert the void data into material to be printed data.
[0104] In some embodiments, a user and / or a known segmentation tool or algorithm can determine which regions to fill, and then a filling algorithm or technique can fill the regions, for example, as part of operations 310 or 320 described above. For example, if a module designed to segment a particular type of structure, such as bone, is used and the module determines that a void exists in the segmented bone, the module can use a known filling algorithm. Using a graphical user interface, a user can click or select the region to be filled, and then a known filling algorithm can fill the region.
[0105] In some embodiments, after segmentation or initial segmentation (e.g., operation 310 above), and possibly after other processing (e.g., initial processing 320 above), an automated process can determine (e.g., in evaluation 330 above) areas that need to be filled, e.g., to improve strength. The filling can then be performed, e.g., as part of the adjustments in operation 340 above.
[0106] In one implementation example, the fill mask process can be performed by filling each of several slices or sections (e.g. flat or relatively planar sections that make up the volume) separately using any known function in the art of image filling. Such a function can be, for example, the Matlab function imfill: BW2=imfill(BW,'holes'). This function can fill holes in the input binary image BW, a hole being a set of background pixels that cannot be reached by filling the background from the edge of the image. BW can be the original mask (e.g. a 2D mask) in the particular slice.
[0107] 3D filling can be a simple procedure (filling the immediate or entire void), but if done on the entire 3D volume, the results can be difficult for the user to predict. If the void has a small hole, the result of 3D filling can be to fill the entire volume. An embodiment that instead does 2D filling on each slice allows more control and allows filling only the region of interest. This procedure could be done in any direction, for example axial filling, and also across all z slices, or sagittal filling. One embodiment is done axially, as it works well in most instances for some applications.
[0108] Removal or creation of boundaries, erosion
[0109] In one embodiment, initial processing, segmentation, or post-processing may include removing boundaries, creating gaps or separation areas between contacting masks, e.g., eroding boundaries, e.g., creating gaps or gap areas with the width of the printer resolution or according to printer definition data. As with other processing, material removal can be done by modifying the mask to change "printed" parts to "not printed", e.g., by defining gaps with no material printed, e.g., zeros. The printer definition data can be used as input to determine the minimum printer resolution unit that determines the width of the gap. This can be done, for example, to remove parts that are touching or continuous, but which are desired to be non-touching or separated after printing, per mask, and which can be artificially separated by manipulating the data. This can be done, for example, when there are voids or physical separations in the imaged object that are in reality touching or continuous in the mask due to the printer resolution, and it is desired to have the parts non-touching or separated after printing. Masks that are touching each other can be identified and material eroded to prevent their contact. In one embodiment, an algorithm may determine that there are voids or gaps between different areas of the mask, and as a result, determine that the voids should be preserved in the printed 3D model.
[0110] In some embodiments, a user and / or known segmentation tools or algorithms can determine which boundaries or material to remove, and then an appropriate known algorithm or technique can remove or erode the material, for example, as part of operations 310 or 320 above. For example, if a module designed to segment a particular type of structure, such as bone, is used and the module determines that contiguous regions are distinct bones, the module can use a known erosion algorithm. Using a graphical user interface, a user can click or select the regions of interest to be separated, and then a known erosion algorithm can separate the regions. Erosion can be performed as part of post-processing 350.
[0111] Some masks may have complex structures with small gaps between adjacent regions. This could also be the case if different masks (e.g. one mask for teeth, another for the mandible) are printed from the same model and are very close or touching each other. This type of result could be a 3D model with connected or touching masks, or connected or touching parts in the same mask, in areas that should not appear connected, if separable models are desired (e.g. different parts of the heart). If the resolution of the 3D printer is known, the minimum difference between the segmented parts can be calculated. Physically continuous heart ventricles in the final 3D printed object can be divided or separated by narrow gaps where no building material is deposited, so that heart ventricles that are (in reality) physically connected can be broken down by a person examining the final build.
[0112] Layer thickness and printer tolerances may constitute the printer resolution. In one embodiment, if it is desired to separate the printed parts as one batch or print job, the minimum difference between the masks should be the printer resolution. If this resolution is known during the POS process, the distance between the segmented parts (e.g., in terms of voxels in the image volume, in terms of volume or image) can be changed. In some embodiments, default parameters (e.g., printer parameters, materials, etc.) can be used, not necessarily tied to the actual printer or material, which can improve segmentation and / or 3D printing throughout the processes, without any involvement of the printer or material.
[0113] Figures 5A and 5B show a 2D representation of a 3D volume 500 having a boundary 510 between a tooth 520 and a mandible 530 as shown in Figure 5A that has been removed or eroded to create a gap or gap area 520 in Figure 5B, the gap representing a portion of the 3D model where no material will be printed. A mask representing the volume 500 may have its data altered to convert the boundary data to no material printed or gap data.
[0114] For example, if MaskA and MaskB are two adjacent masks (e.g., teeth and mandible in Fig. 5A, Fig. 5B), both masks can be printed by a printer with a spatial resolution of R=Rx,Ry,Rz. In one embodiment, Rx and Ry are the printer's accuracy or tolerance, and Rz is the layer thickness. The printer accuracy is usually defined in the X and Y directions. The mask may not be aligned with the printer's axial or x / y / z axes in terms of the rotational direction and its axial or x / y / z axes, and needs to be corrected or rotated, for example, using a rotational transformation matrix T. For example, it may be possible to align the X direction in the printer with the Z direction of the mask. The erosion function (e.g., material removal and gap creation function on the mask) may use R (from the printer), so it may be possible to obtain wrong parameters. An accurate way to describe this may be R=T(R'), where the printer has a spatial resolution of R'=R'x,R'y,R'z, and T is the rotational transformation matrix between the mask and the printer.
[0115] A morphological process can be performed to generate a printing model with Mask A and Mask B separated out. For example, as known in the art, a morphological process can take a mask(s) and generate a new mask by convolution with an object (a sphere of radius R in the specific example below).
[0116] For example, in one embodiment, if the following is defined:
[0117] A spherical element of radius R (here
number
[0118]
number
[0119]
number
[0120] MaskA' and MaskB' are the closest and most similar masks to MaskA and MaskB that could be printed on a printer with tolerance R. For example, given the printer's specifications, a minimum amount of material is removed from MaskA and / or MaskB at their boundaries such that they are not physically touching when printed, which may mean that MaskA' is the most similar mask to MaskA, given the printer and the material removed. As with other modifications described herein, this generally means modifying the data structure(s) (e.g., mask(s)) that defines the object. In one embodiment, an operation such as the following may be used:
[0121] According to the Matlab function, we define DistX=bwdist(MaskX), which generates a distance map DistX from the edges of MaskX. Bwdist (distance between) can compute the Euclidean distance transform of a binary image BW. This distance transform can assign to each pixel in BW a numerical value that is the distance between that pixel and the nearest non-zero pixel of BW.
[0122] R can be the printer's tolerance (assumed to be equal in all directions).
[0123] MaskA and MaskB are two masks to be separated by a distance R. To generate two masks MaskA' and MaskB' that are separated by R, the following operations are performed.
[0124] DistA = bwdist(MaskA)
[0125] DistB = bwdist(MaskB)
[0126] MaskA'=MaskA&DistB>R / 2 (& is the "AND" operation) MaskB'=MaskB&DistA>R / 2
[0127] Void / thinning generation
[0128] In one embodiment, segmentation 310 or initial processing 320 can include generating 3D printer input data, which may include, for example, creating voids or hollow areas in solid regions, thinning areas in the printer definition data, or otherwise removing material according to the printer definition data. Typically, material is removed to reduce material usage (e.g., reduce cost, reduce waste, print faster), to reduce weight, or for other reasons. Material can be removed up to the point where strength or stability is not compromised.
[0129] Regions to be hollowed out or have voids can be detected or identified using known algorithms for identifying connected component regions, which may include any chunk or region of the 3D object that is not in contact with other chunks or regions of the mask, in one embodiment, any such chunk or region needs to be hollowed out.
[0130] If an area of a segmentation area, mask, or 3D printer input data is solid or completely filled, and the solid area of material is unnecessary, printing material is wasted in that interior area. Typically, such unnecessary or redundant filled areas are internal and have no boundary to the exterior area of the printed object. If such a model is known to be used for printing, the filled area will have holes or contain created voids or voids (without build material), and therefore the build material could be removed to a minimum thickness, for example, as follows:
[0131] The CompleteMask can be changed or converted to an outer shell mask (eg, ShellMask) with a small boundary thickness (eg, InitThick).
[0132] CompleteMask may be the mask after "normal" segmentation, which is desired to be hollow. ShellMask (e.g., a Boolean mask or matrix) is the outer shell of CompleteMask, e.g., only the outer shell part of CompleteMask is true (e.g., 1). ShellMask may have a wall thickness of InitThick (e.g., 1 mm) at the start of processing. ShellMask may be expanded or widened or thickened if necessary (e.g., depending on intensity analysis such as StrAn).
[0133] An intensity analysis (eg, StrAn) can then be performed on the ShellMask.
[0134] In some embodiments, if after thinning and evaluation (e.g., operation 330), the model is determined to be too weak or unprintable, then corrective thickening or dilation may be performed, for example using dilation with the DilationFun function, methods disclosed herein for increasing the thickness of sections of printer input data, or other methods, but typically only of the interior portions of the mask (e.g., portions of the model that do not face the outside world).
[0135] One option for figuring out what is the interior part of the model is to take the CompleteMask and compute the gradient on the distance transform from its edges.
[0136] D=bwdist(~CompleteMask) (e.g., use the negative of CompleteMask in Matlab's bwdist function).
[0137] The Matlab gradient function for Gradient(D)-distance transform will give the outer direction. Other directions are inwards.
[0138] One embodiment includes removing portions of the internal mask that are not critical to the structure of the model, which reduces the printing material while maintaining the strength of the model at the same time. Further, material removal, material addition, or other processing can be done repeatedly or iteratively in relation to an assessment of quality, printability, or strength to determine how much material to remove. In this way, a "simulation" may be performed. For example, the aorta filled with the initial model or mask can have sections of its interior removed. This can feed back to the aforementioned operation 330, and the output or mask above can be evaluated for strength, for example. This can be done repeatedly or iteratively until the strength of the model is reduced below a threshold, for example, until at least one region of Heatmap < StrThres occurs. In such an embodiment, the version of the previous iteration or step (for example, when all heatmaps are still ≧ StrThres) is the model with the least amount of material possible while maintaining the required strength and structure. The printer definition data can be input during the void generation process or during the part thickening or thinning process (and thus these processes can be done according to the printer definition data), and the printer definition data can be used in the strength analysis or printability analysis performed after the void generation, part thickening, or thinning process.
[0139] In some embodiments, the iterations during removal (e.g., thinning, gap creation, or void creation) may include iterating until evaluation (e.g., operation 330 above) determines that the model or mask is too fragile and uses a previous iteration that was determined to be printable as the model. In other embodiments, the iterations during removal may include iterating until evaluation determines that the model or mask is too fragile and then using a thickening process in conjunction with the evaluation process to generate a printable mask or model.
[0140] Other methods may also be used.
[0141] While certain features of the invention have been illustrated and described herein, many modifications, substitutions, changes, and equivalents will occur to those skilled in the art. It is therefore to be understood that the appended claims are intended to cover all such modifications and changes that fall within the true spirit of the invention. Various embodiments have been presented. Each of these embodiments can, of course, include features from other embodiments presented, and embodiments not specifically described can also include various features described herein.
Claims
1. 1. A method of transforming image data to generate a three-dimensional (3D) object, the method comprising: receiving image data representative of a three-dimensional volume; segmenting the image data to generate one or more three-dimensional masks; evaluating the printability of the one or more three-dimensional masks using data describing a particular printer; if the evaluation determines that the one or more masks are not printable, adjusting the one or more three-dimensional masks and repeating the evaluating step; if the evaluation determines that the one or more three-dimensional masks are printable, generating data to be input to a printer for printing the object; A method comprising:
2. The method of claim 1 , comprising printing the 3D object using the data input to a 3D printer.
3. The method of claim 1 , wherein adjusting comprises increasing or decreasing a thickness of the section to be printed.
4. The method of claim 1 , comprising adjusting a resolution of the one or more three-dimensional masks.
Citation Information
Patent Citations
Three-dimensional formation apparatus, three-dimensional formation method, and computer program
JP2016107582A
Imaging device and method for controlling the same
JP2016116040A
Method for manufacturing three-dimensional molded model and support tool for medical treatment, medical training, research, and education
WO2012132463A1
Model, manufacturing system, information processing device, manufacturing method, information processing method, program, and recording medium
WO2016152356A1
