Path-based contour extraction for metrology

By using a unique image preparation framework and filter kernel convolution in material analysis, a distinguishing barrier line is generated, which solves the problem of inaccurate contour line extraction in the prior art. This enables accurate differentiation and refinement of interfaces between different materials, and improves the sub-pixel accuracy and information richness of pixelated images.

CN121366176APending Publication Date: 2026-01-20FEI CO
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510849085.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2024-07-18
Filing Date
2025-06-24
Publication Date
2026-01-20

AI Technical Summary

Technical Problem

Existing technologies cannot accurately identify the interfaces between different materials in material analysis, resulting in inaccurate contour extraction and an inability to adapt to the differences between different materials. Furthermore, existing frameworks cannot effectively filter out noise, leading to information loss when refining pixelated images.

Method used

Employing a unique image preparation framework, it generates distinguishable barrier lines through filter kernel-based convolution and contour pixel parsing, subdivides different material interfaces in the pixelated image, and dynamically adjusts the pixel threshold to achieve more accurate contour extraction.

Benefits of technology

It enables accurate differentiation and refinement of interfaces between different materials, improves the sub-pixel accuracy of pixelated images, enhances the applicability and information richness of material analysis, and reduces information loss.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121366176A_ABST
    Figure CN121366176A_ABST
Patent Text Reader

Abstract

The invention relates to path-based contour extraction for metrology. Embodiments described herein relate to a process for image contour extraction. A system may include a memory storing computer executable components and a processor executing the computer executable components. These computer executable components may include: an identification component that identifies a contour line applied between regions of a pixelated image; and a subdivision component that subdivides the contour line into a set of barrier lines based on analysis of contour line pixels of the contour line. In one or more embodiments, the parsing may be based on the number of adjacent pixels following the contour pixels.
Need to check novelty before this filing date? Find Prior Art

Description

BACKGROUND

[0001] Scientific instruments for material analysis can help determine the composition and properties of unknown compositions. In one or more examples, a scientific instrument can provide a structural composition determination based on a counter-based analysis of a top-down image and / or another image providing an external view of a material sample. Preparation of pixel data for an image to which one or more contours are applied can be provided to group pixels of the image defined by the pixel data into representative shapes. BRIEF DESCRIPTION OF DRAWINGS

[0002] The various embodiments will be easier to understand with the following detailed description taken in conjunction with the accompanying drawings. Like reference numerals refer to like elements throughout the several views. The embodiments are illustrated by way of example in the drawings and are not intended to be limiting of the present invention. It should be noted that one or more of the drawings include one or more grayscale images to illustrate the various pixels of such images by way of their grayscale levels.

[0003] FIG. 1 A block diagram of an example scientific instrument for performing one or more operations in accordance with one or more embodiments described herein is illustrated.

[0004] FIG. 2 A flow diagram of an example method of performing operations using a scientific instrument in accordance with one or more embodiments described herein is illustrated. FIG. 1

[0005] FIG. 3 A graphical user interface (GUI) that can be used to perform one or more of the methods described herein in accordance with one or more embodiments described herein is illustrated.

[0006] FIG. 4 A block diagram of an example computing device that can perform one or more of the methods disclosed herein in accordance with one or more embodiments described herein is illustrated.

[0007] FIG. 5 A block diagram of an example non-limiting system that can facilitate a process for image contour line extraction in accordance with one or more embodiments described herein is illustrated.

[0008] FIG. 6 A block diagram of another example non-limiting system that can facilitate a process for image contour line extraction in accordance with one or more embodiments described herein is illustrated.

[0009] FIG. 7 A visual illustration of pixel processing of an example image that can be analyzed by a non-limiting system in accordance with one or more embodiments described herein is provided. FIG. 6

[0010] A visual illustration of pixel processing of an example image that can be analyzed by a non-limiting system in accordance with one or more embodiments described herein is provided.​FIG. 8 A non-limiting system for performing the processes of FIG. 6 FIG. 7 A visual illustration of the contour line extraction of an exemplary image of

[0011] FIG. 9 A non-limiting system for performing the processes of FIG. 6

[0012] FIG. 10 A non-limiting system for performing the processes of FIG. 6

[0013] FIG. 11 A non-limiting system for performing the processes of FIG. 6

[0014] FIG. 12 A non-limiting system for performing the processes of FIG. 6 FIG. 11 A continuation of the flow diagram of

[0015] FIG. 13 A block diagram of an example scientific instrument system in which one or more of the methods described herein can be performed, in accordance with one or more embodiments described herein.

[0016] FIG. 14 A block diagram of an example operating environment in which embodiments of the subject matter described herein can be incorporated.

[0017] FIG. 15 An example schematic block diagram of a computing environment with which the subject matter described herein can interact and / or be implemented, at least in part. SUMMARY

[0018] ​​​​​The following presents a summary to provide a basic understanding of one or more embodiments described herein. This summary is not intended to identify key or important elements and / or delineate the scope of particular embodiments or the scope of the claims. Its sole purpose is to present concepts in a simplified form as a prelude to the more detailed description that is presented later. In one or more embodiments, the systems, computer- implemented methods, apparatuses, and / or computer program products described herein can provide a process for image contour line extraction and, in particular, address one or more inconsistencies corresponding to one or more of the contour extraction and / or contour line extraction software, firmware, and / or hardware presently used to generate one or more contours related to an image of a material sample.

[0019] According to one embodiment, a system can include a memory that stores computer executable components and a processor that executes the computer executable components. The computer executable components can include an identification component that identifies a contour line applied between regions of a pixelated image and a subdivision component that subdivides the contour line into a set of barrier lines based on a resolution of contour line pixels of the contour line.

[0020] According to another embodiment, a computer-implemented method can include subdividing, by a system operatively coupled to a processor, a contour line applied between regions of a pixelated image into a set of barrier lines and generating, by the system, data for the subdivision by resolving contour line pixels of the contour line.

[0021] According to yet another embodiment, a computer program product facilitates a process for image contour line extraction, program instructions executable by a processor to cause the processor to identify, by the processor, a set of contour lines applied between regions of a pixelated image and to subdivide, by the processor, the set of contour lines into a set of barrier lines based on a resolution of contour line pixels of the set of contour lines.

[0022] One or more embodiments described herein can be implemented within, in conjunction with, and / or coupled to a scientific imaging device.

[0023] One or more embodiments disclosed herein can implement dynamic contour line extraction and subsequent modification, thereby providing a method in addition to a general method. That is, different initially identified contour lines of the same image can have different thicknesses, can be positioned adjacent to different material types of pixels, etc. To address these complexities, one or more embodiments described herein can use a dynamically adjustable pixel threshold to provide contour line extraction based on various iterations of determinations of adjacent pixels to provide a modified dynamic adjustable accuracy.

[0024] In this way, one or more embodiments described herein can address different pixelation types (e.g., patterning, gray scale, etc.) of different materials, allowing one or more embodiments described herein to be versatilely applicable to a wide range of applications, materials, material types, etc. For example, different pixel thresholds can be used for different materials or even different portions of the same sample being analyzed and for which contour line extraction is sought.

[0025] One or more embodiments described herein can provide sub-pixel accuracy of contour line extraction based on these functions and capabilities, to iteratively select adjacent pixels (e.g., for defining contour line extraction) until a dynamically adjustable pixel threshold is met.

[0026] One or more embodiments described herein can be used to analyze images including cross-sectional views of a sample, rather than being applicable only to top-down and / or other external views, as with existing frameworks for contour determination. Thus, one or more embodiments described herein can have increased applicability to different purposes and industries, as compared to existing frameworks. DETAILED DESCRIPTION

[0027] The following detailed description is merely illustrative and is not intended to limit embodiments and / or the application or uses of embodiments. Furthermore, there is no intention to be bound by any expressed or implied information presented in the preceding Background or Summary sections. One or more embodiments are now described with reference to the drawings, where like reference numerals are used to refer to like elements throughout. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a more thorough understanding of one or more embodiments. It is evident, however, that one or more embodiments can be practiced without these specific details.

[0028] Various operations can be described as multiple discrete actions or operations in turn, in a manner that is most helpful in understanding the subject matter. However, the order of description should not be construed as to imply that these operations are necessarily order dependent. In particular, these operations can be performed in a different order or concurrently, than the described implementation. Various additional operations can be performed and / or described operations can be omitted in additional implementations.

[0029] Turning now to the subject of material analysis and to one or more embodiments described herein, an electron microscope (EM) is a method of obtaining images that can illustrate material structures at the nanoscale, providing a way to understand the connection between material composition, structure, and / or performance. This type of imaging can be used in multiple industries, including but certainly not limited to computing systems, semiconductor manufacturing, chemical sensors, targeted drug delivery, high-performance materials, and water filters.

[0030] Briefly, an EM device can apply an energy source, such as an electron beam, to a target. The beam can affect the molecules of the target, such as by interacting with the nuclei, where the electrons of the beam can backscatter with un-reduced energy, or the electrons of the beam can interact with the orbital electrons of the sample atoms in various ways. As such, electrons can be ejected (e.g., near the surface of the sample), allowing the escaping electrons to escape the sample and be detected as secondary electrons by a detector of the EM device.

[0031] As a result of the detection, an image of a portion of the sample can be generated, such as at the nanoscale. In one or more embodiments, the image can be a pixelated image that provides for subsequent evaluation of the pixelation of the image.

[0032] The remainder of the discussion herein turns to analysis of such pixelated images. However, it is noted that the one or more embodiments described herein can be provided with such pixelated images from any suitable scientific device, imaging process, etc. that provides various analysis processes therewith. That is, signals other than electron beams, such as X-rays, ion flow, cathodoluminescence, absorption current, etc. can allow for detection of output results and generation of resulting pixelated images for subsequent post-processing and / or analysis.

[0033] In various instances, existing frameworks for post-processing of pixelated images can include techniques for identifying and / or reducing the impact of noise caused by the imaging process, techniques to apply line masks to delineate sections of the pixelated image, techniques to consider the color and / or intensity of the pixelation, etc.

[0034] Some of the post-processing processes in the post-processing process can include applying a contour line to trace the boundaries of a group of pixels, allowing for subsequent analysis of the pixels within the perimeter of such a contour line. This process can be referred to as contour extraction or contour line extraction, which is a process that traces the boundaries of a group of pixels and returns a list of points that describe the perimeter of the shape of the group of pixels.

[0035] Contour lines generated by existing frameworks can be defined as curves that connect consecutive points with similar color and / or intensity (e.g., along a determined boundary of a material). These contour lines can be useful tools for shape analysis, object detection, and / or object recognition.

[0036] For example, a bounded group of pixels can correspond to a material, allowing for determination of one or more shapes, properties, and / or quantities of the material and / or sub-sections of the material. In another example, a bounded group of pixels can be analyzed to determine manufacturing consistency of different sections, parts, portions, interfaces, layers, etc. of a manufactured part. Such analysis can be based on any one or more of pixelated color, pixelated intensity, number of pixels, etc.

[0037] Existing techniques for applying a mask of a contour line to a pixelated image can include artificial intelligence (AI) segmentation, thresholding, and / or watershed techniques.

[0038] After applying the contour line, the contour line can be modified, revised, etc., such as to provide a better fit of the contour line to existing properties, shapes, contours, boundaries, etc. of the pixelated image.

[0039] In existing techniques, contour line extraction processes (e.g., AI segmentation, thresholding, and / or watershed processing) can have significant deficiencies associated therewith. For example, these existing techniques can be inaccurate, based on user entity inputted parameters that are subjective, difficult to determine boundaries at sub-pixel level, apply the same contour line to various different material interfaces, fail to filter out noise, etc. For example, for complex structures (e.g., a sample being imaged) where one body of the sample interfaces with multiple other bodies of the sample, existing frameworks can fail to accurately extract sub-pixel accurate contour lines for the one body.

[0040] Further, such existing techniques fail to account for differences between different material groups of an image, and thus apply the same parameters and contour lines to different material groups without basing such application on the differences. For example, existing frameworks can be body-centric, focusing on contour line extraction with respect to a pixel set of a body. This does not account for a body being surrounded by and / or disposed adjacent to multiple different and non-uniform materials, different interfaces of a single body with multiple bodies, etc. Rather, a contour line can be extracted around a single body regardless of various interfaces of that single body with other bodies of the sample of different materials.

[0041] Accordingly, given the deficiencies noted above, there is no handling of and / or differentiation between different interfaces of different materials when refining contour lines to sub-pixel accuracy. Thus, in the case of existing contour line extraction frameworks, the same parameters will be employed in refining all such interfaces, resulting in an inability to accurately identify regions of a pixelated image with respect to one another.

[0042] Accordingly, to address one or more of the deficiencies and / or shortcomings of existing frameworks (e.g., existing image preparation frameworks), described herein are one or more embodiments that can employ a unique image preparation framework to enable the differentiated identification of barriers between different materials of a pixelated image, where the pixelated image can include a surface level image or cross-sectional image of a sample that includes multiple materials, subjects, and / or interfaces. As a result of these frameworks, subsequent refinement of the pixelated image to sub-pixel accuracy can be performed accurately using the differentiated barrier lines generated by the one or more frameworks. The one or more processes performed by the one or more frameworks described herein can be performed without additional image processing, while providing richer illustrations / descriptions of the sample than can be provided by existing frameworks.

[0043] In general, the one or more embodiments described herein can employ a process of hot-started profile line extraction based on baseline profile line extraction provided by existing frameworks. That is, the profile lines generated by existing frameworks can be decomposed (e.g., subdivided) into a set of differentiated barrier lines, thereby allowing different parameters to be applied to different material interfaces (e.g., barrier lines) in subsequent refinement stages.

[0044] The ensuing discussion is directed to a general discussion of one or more scientific instrument systems disclosed herein, as well as to related methods, computing devices, and / or computer-readable media. For example, in one or more embodiments, a system can include a memory that stores computer-executable components and a processor that executes the computer-executable components stored in the memory. These computer-executable components can include an identification component that identifies a profile line applied between regions of a pixelated image, and a subdivision component that subdivides the profile line into a set of barrier lines based on a parsing of profile line pixels of the profile line.

[0045] The one or more embodiments disclosed herein can enable improved performance relative to existing methods, as described above. For example, based on the application of a filter kernel over a pixelated image, and a parsing performed according to a convolution using the filter kernel, individual barrier lines of different interfaces of the pixelated image can be generated. That is, using the one or more profile line extraction frameworks discussed herein can allow for the provision of differentiation that is not possible using existing frameworks.

[0046] Accordingly, the embodiments disclosed herein can provide improvements to scientific instrument technology (e.g., improvements to computer technology that support such scientific instruments, among other improvements), which can be used in various fields, including optics, signal processing, spectroscopy, and / or nuclear magnetic resonance (NMR), but are not limited thereto.

[0047] Various of the embodiments disclosed herein can improve existing methods to achieve technical advantages of high information and / or accurate information contour line extraction. That is, one or more of the frameworks described herein can provide a more accurate construction of a set of contour lines of an image compared to existing frameworks, allowing for the identification of different regions delineated by the set of contour lines. The different regions can correspond to different sub-materials, with the contour lines corresponding to the best approximate separation between the sub-materials, even in cases where a set of sub-materials can be mixed, combined, etc., such as at regions between corresponding relatively pure segments of the sub-materials. The image can be initially produced from any suitable scientific imaging device source using any suitable method, such as electron holography imaging, scanning electron microscope (SEM) imaging, electron microscope (EM) imaging, etc.

[0048] Such technical advantages are not achievable by routine and existing methods, and all user entities of systems including such embodiments can benefit from these advantages (e.g., by assisting user entities in performing technical tasks, such as identifying one or more target constituents of an image, by virtue of using the image contour line extraction frameworks discussed herein for image preparation).

[0049] Thus, in addition to the fields of optics, signal processing, spectroscopy, and / or NMR, the technical features of the embodiments disclosed herein (e.g., analysis of contour lines based on the number of adjacent pixels) are thus undoubtedly unconventional in the field of material analysis, and without limitation, so are combinations of features of the embodiments disclosed herein.

[0050] As discussed further herein, various aspects of the embodiments disclosed herein can improve the functionality of the computer itself. That is, the computing and / or user interface features disclosed herein not only involve the collection and / or comparison of information, but can apply new analytical and technical means to alter the operation of computer analysis of material compounds. For example, based on the subdivision of a contour line into a set of two or more barrier lines, delineating different interfaces of the original contour line, the computing system can employ different parameters and / or techniques to revise the barrier lines, specifically based on the extraction of the individual barrier lines in a first instance. Thus, one or more of the non-limiting systems described herein, including image contour extraction systems, can improve themselves through the automatic extraction and subsequent use of barrier lines.

[0051] Thus, the present disclosure introduces functionality that neither existing computing devices nor humans are capable of performing. Rather, such existing computing devices are ineffective in identifying, subdividing, and / or processing delineated contour lines, resulting in the loss of information in evaluating a pixelated image and / or in revising the location of a portion of a contour line. Given the time, energy, and / or data loss involved, it is not practical to operate within the scope of existing methods.

[0052] Accordingly, embodiments of the present disclosure can serve any of a number of technical purposes, such as controlling a particular technical system or process; determining how to control a machine from measurements; digital audio, image, or video enhancement or analysis; separation of material sources in a mixed signal; generating data for reliable and / or efficient transmission or storage; providing an estimate and a confidence interval for a material sample; or providing faster processing of sensor data. In particular, the present disclosure provides technical solutions to technical problems, including but not limited to hologram modification; image / signal blurring; application of combined blurring techniques; and / or subsequent image reconstruction, resulting in faster, more thorough, and / or more efficient processing of the generated images and thus of the material sample or other target composition being imaged.

[0053] Accordingly, embodiments disclosed herein provide improvements to material analysis techniques (e.g., improvements to computer techniques that support material analysis, among other improvements).

[0054] As used herein, the phrase “based on” shall be understood to mean “based at least in part on,” unless otherwise specified.

[0055] As used herein, the term “component” can refer to an atomic element, a molecular element, a phase of an atomic or molecular element, or a combination thereof.

[0056] As used herein, the term “data” can include metadata.

[0057] As used herein, the terms “entity,” “requesting entity,” and “user entity” can refer to a machine, a device, a component, hardware, software, a smart device, a party, an organization, an individual, and / or a person.

[0058] As used herein, the term “sample” can refer to a product, a material, a component, a compound, and / or the like.

[0059] One or more embodiments will now be described, by way of example only, with reference to the accompanying drawings, in which like reference numerals are used to refer to like elements throughout. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a more thorough understanding. It will be apparent, however, to one of ordinary skill in the art that one or more embodiments can be practiced without these specific details.

[0060] Furthermore, it is to be understood that the embodiments depicted in one or more of the figures described herein are for illustrative purposes only, and thus are not limiting of the architecture of the embodiments to the systems, devices, and / or components depicted therein, nor the any particular order, connection, and / or coupling of the systems, devices, and / or components depicted therein.

[0061] Now turning specifically to the one or more figures, and first to FIG. 1, an example is a block diagram of a scientific instrument module 100 for performing a material analysis operation using a profile line extraction process with warm start based on existing profile extraction in accordance with various embodiments described herein. The scientific instrument module 100 can be implemented by circuitry (e.g., including electrical and / or optical components) such as a programmed computing device. The logic of the scientific instrument module 100 can be included in a single computing device or can be distributed as appropriate across multiple computing devices in communication with one another. Examples of computing devices that can implement the scientific instrument module 100, alone or in combination, are discussed herein with reference to FIG. 4 computing device 400 of FIG. 13 scientific instrument system 1300 of

[0062] The scientific instrument module 100 can include a first logic component 102, a second logic component 104, a third logic component 106, and a fourth logic component 108. As used herein, the term “logic component” can include a device that performs a set of operations associated with the logic component. For example, any of the logic elements included in the module 100 can be implemented by one or more computing devices programmed with instructions to cause one or more processing devices of the computing device to perform the associated set of operations. In particular embodiments, a logic element can include one or more non-transitory computer- readable media having instructions thereon that, when executed by one or more processing devices in one or more computing devices, cause the one or more computing devices to perform the associated set of operations. As used herein, the term “module” can refer to a series of one or more logic elements that together perform a function associated with the module. Different ones of the logic elements in a module can take the same form or can take different forms. For example, some of the logic in a module can be implemented by a programmed general-purpose processing device, while other logic in the module can be implemented by an application-specific integrated circuit (ASIC). In another example, different ones of the logic elements in a module can be associated with different sets of instructions executed by one or more processing devices. A module can omit one or more of the logic elements depicted in the associated diagram; for example, the module can include a subset of the logic elements depicted in the associated diagram when the module is to perform a subset of the operations discussed herein with reference to the module.

[0063] The first logic component 102 can receive, look up, locate, download, request, measure, and / or otherwise determine data and / or metadata defining pre-processing contours (e.g., boundaries) between a set of regions of a pixelated image. That is, the first logic component 102 can obtain data for being processed and for subsequent use in generating a set of distinguishing barrier lines from the contours.

[0064] The second logic component 104 can perform a convolution process by convolving a filter kernel over the pixelated image, resulting in the ability to determine contour pixels from non-contour pixels of the pixelated image. That is, the second logic component 104 can employ the output of the first logic component 102 to further modify the pixelated image.

[0065] The third logic component 106 can resolve contour pixels of the contours and determine a number of neighboring pixels for each resolved contour pixel. The neighboring pixels can refer to contour pixels and / or non-contour pixels that are adjacent to (such as contiguous with) the contour pixels. That is, the third logic component 106 can obtain data for being processed and for subsequent use in generating a modified pixelated image including barrier lines.

[0066] The fourth logic component 108 can generate a set of barrier lines, allowing for subdivision of the contours. That is, the fourth logic component 108 can determine end points of the barrier lines and / or intersections of the barrier lines based on the output of the third logic component 106.

[0067] FIG. 2 A flowchart of a method 200 of performing operations of the scientific instrument module 100 according to various embodiments is illustrated. Although operations of the method 200 can be illustrated with reference to the particular embodiments disclosed herein (e.g., the scientific instrument module 100 discussed herein with reference to FIG. 1 the GUI 300 discussed herein with reference to FIG. 3 the computing device 400 discussed herein with reference to FIG. 4 the scientific instrument system 1300 discussed herein with reference to FIG. 13 the scientific instrument system 1300 discussed herein with reference to FIG. 2 the scientific instrument system 1300 discussed herein with reference to

[0068] At 202, a first operation can be performed. For example, the first logic component 102 of the module 100 can perform the first operation 202. The first operation 202 can include receiving, looking up, locating, downloading, requesting, measuring, and / or otherwise determining data and / or metadata defining contour lines of a pixelated image (e.g., defining contour line pixels).

[0069] At 204, a second operation can be performed. For example, the second logic component 104 of the module 100 can perform the second operation 204. The second operation 204 can include employing a filter kernel applied to data of the pixelated image to provide a mask for use by the third logic component 106.

[0070] At 206, a third operation can be performed. For example, the third logic component 106 of the module 100 can perform the third operation 206. The third operation 206 can include comparing contour line pixels to neighboring pixels adjacent to (such as contiguous with) the contour line pixels to determine a number of neighboring pixels corresponding to each contour line pixel resolved by the third logic component 106.

[0071] At 208, a fourth operation can be performed. For example, the fourth logic component 108 of the module 100 can perform the fourth operation 208. The fourth operation 208 can include generating a set of barrier lines from a single contour line, thereby allowing the contour line to be subdivided into interface differentiations.

[0072] The scientific instrument methods disclosed herein can include interactions with a user entity (e.g., via a user local computing device 1320 discussed herein with reference to FIG. 13). These interactions can include providing information to the user entity (e.g., information about the operation of a scientific instrument (such as the scientific instrument 1310 discussed herein with reference to FIG. 13), information about a sample being analyzed or other tests or measurements performed by the scientific instrument, information retrieved from a local or remote database, or other information) or providing the user entity with the option of providing input commands (e.g., controlling the operation of a scientific instrument (such as the scientific instrument 1310 discussed herein with reference to FIG. 13), or controlling analysis of data generated by the scientific instrument), queries (e.g., queries to a local or remote database), or other information. In some embodiments, these interactions can be performed through a graphical user interface (GUI) including a visual display on a display device (e.g., the display device 410 discussed herein with reference to FIG. 4) that provides output to the user entity and / or prompts the user entity to provide input (e.g., via the input device 420 discussed herein with reference to FIG. 4). FIG. 13 FIG. 13 FIG. 13 FIG. 4 FIG. 4 ​​​​Other I / O devices discussed 412 include one or more input devices, such as a keyboard, mouse, trackpad, or touchscreen. The scientific instrument system 1300 disclosed herein may include any GUI suitable for interaction with a user entity.

[0073] Next turn FIG. 3 The figure depicts an example GUI 300, which can be used to perform one or more methods described herein according to various embodiments. As mentioned above, GUI 300 can be installed in a scientific instrument system (e.g., as referenced herein). FIG. 13 The computing device of the scientific instrument system 1300 discussed herein (e.g., referenced herein) FIG. 4 The display device of the computing device 400 discussed herein (e.g., referenced herein) FIG. 4 The display device discussed is 410), and the user entity can use any suitable input device (e.g., the one referred to herein). FIG. 4 Other I / O devices (including any input devices in the discussion 412) and input technologies (e.g., cursor movement, motion capture, facial recognition, gesture detection, voice recognition, button activation, etc.) interact with GUI 300.

[0074] The GUI 300 may include a data display area 302, a data analysis area 304, a scientific instrument control area 306, and a settings area 308. FIG. 3 The specific number and arrangement of the areas depicted are merely illustrative, and any number and arrangement of areas, including any desired characteristics thereof, may be included in GUI 300.

[0075] Data display area 302 can display data generated by scientific instruments (e.g., as referenced in this article). FIG. 13 The data generated by the scientific instrument 1310 under discussion. For example, the data display area 302 may display one or more outputs, which may include, but are not limited to, pixelated images, portions of pixelated images, text, graphics, notifications, charts, matrices and / or spectra.

[0076] Data analysis area 304 can display the results of data analysis (e.g., the results of analyzing the data and / or other data illustrated in data display area 302). For example, data analysis area 304 may display one or more output results. In one or more cases, data analysis area 304 may display a list, flowchart, or other schematic diagram relative to the acquisition actions taken and / or recommended in the experiment. In one or more embodiments, data display area 302 and data analysis area 304 may be combined in GUI 300 (e.g., including data output from scientific instruments and some analysis of the data in a common graphic or area).

[0077] The scientific instrument control region 306 can include options that allow the user entity to control the scientific instrument (e.g., the scientific instrument 1310 discussed herein with reference to FIG. 13 The scientific instrument control region 306 can include one or more controls for inputting one or more resolution parameters, neighboring pixel parameters, data storage parameters, and the like.

[0078] The settings region 308 can include options that allow the user entity to control features and functions of the GUI 300 (and / or other GUIs), and / or to perform common computing operations with respect to the data display region 302 and the data analysis region 304 (e.g., saving data on a storage device such as the storage device 404 discussed herein with reference to FIG. 4 The settings region 308 can include one or more options to change the color, fill, or formatting of the illustration (e.g., of any aspect of the image, whether actual, representative, and / or illustrative) of the illustration, as will be described below. FIG. 7 to FIG. 9

[0079] As noted above, the scientific instrument module 100 can be implemented by one or more computing devices. Accordingly, the following discussion turns to FIG. 4 which illustrates a block diagram of a computing device 400 that can perform some or all of the scientific instrument methods disclosed herein, in accordance with various embodiments. In one or more embodiments, the scientific instrument module 100 can be implemented by a single computing device 400 or multiple computing devices 400. Moreover, as discussed below, the computing device 400 (or multiple computing devices 400) implementing the scientific instrument module 100 can be part of one or more of the scientific instrument 1310, the user local computing device 1320, the service local computing device 1330, or the remote computing device 1340. FIG. 13

[0080] FIG. 4 The computing device 400 is illustrated as having a number of components, but any one or more of these components can be omitted or replicated, as application and setting can dictate. As illustrated, these components can include one or more of a processor 402, a storage device 404, an interface device 406, a battery / power circuit 408, a display device 410, and other input / output (I / O) devices 412, as will be described below.

[0081] ​​In one or more embodiments, one or more of the components included in the computing device 400 can be attached to one or more motherboards and encased in a housing (e.g., including plastic, metal, and / or other materials). In one or more embodiments, some of these components can be fabricated onto a single system on a chip (SoC) (e.g., the SoC can include the one or more processors 402 and the one or more storage devices 404). Additionally, in one or more embodiments, the computing device 400 can omit one or more of the components illustrated in FIG. 4B. In one or more embodiments, the computing device 400 can include interface circuitry (not shown) for coupling to one or more components using any suitable interface (e.g., a universal serial bus (USB) interface, a high-definition multimedia interface (HDMI) interface, a controller area network (CAN) interface, a serial peripheral interface (SPI) interface, an Ethernet interface, a wireless interface, or any other suitable interface). For example, the computing device 400 can omit the display device 410, but can include display device interface circuitry (e.g., a connector and driver circuitry) to which the display device 410 can be coupled. FIG. 4

[0082] The computing device 400 can include a processor 402 (e.g., one or more processing devices). As used herein, the term “processing device” can refer to any device or portion of a device that manipulates electronic data based on instructions provided by a register and / or memory to transform that electronic data into other electronic data that can be stored in a register and / or memory. The processor 402 can include one or more digital signal processors (DSPs), application-specific integrated circuits (ASICs), central processing units (CPUs), graphics processing units (GPUs), cryptographic processors (specialized processors that execute cryptographic algorithms within hardware), server processors, or any other suitable processing devices.

[0083] ​Computing device 400 can include a storage device 404 (e.g., one or more storage devices). Storage device 404 can include one or more memory devices, such as random access memory (RAM) (e.g., static RAM (SRAM) devices, magnetic RAM (MRAM) devices, dynamic RAM (DRAM) devices, resistive RAM (RRAM) devices, or conductive-bridging RAM (CBRAM) devices), hard disk drives, solid-state memory devices, network drives, cloud drives, or any combination of memory devices. In one or more embodiments, storage device 404 can include a memory that shares a die with processor 402. In such embodiments, the memory can function as cache memory and can include, for example, embedded dynamic random access memory (eDRAM) or spin-transfer torque magnetic random access memory (STT-MRAM). In one or more embodiments, storage device 404 can include a non-transitory computer-readable medium having instructions thereon that, when executed by one or more processing devices (e.g., processor 402), cause computing device 400 to perform any appropriate method(s) or portions thereof disclosed herein.

[0084] The computing device 400 can include an interface device 406 (e.g., one or more interface devices 406). The interface device(s) 406 can include one or more communication chips, connectors, and / or other hardware and software to manage communications between the computing device 400 and other computing devices. For example, the interface device(s) 406 can include circuitry to manage wireless communications for the transfer of data to and from the computing device 400. The term “wireless” and its derivatives can be used to describe circuits, devices, systems, methods, techniques, communications channels, etc., that can communicate data through the use of modulated electromagnetic radiation through a non-solid medium. The term does not imply that the associated devices do not contain any wires, although in some embodiments they might not. The circuitry to manage wireless communications, included in the interface device(s) 406, can implement any of a number of wireless standards or protocols, including but not limited to Wi-Fi (IEEE 802.11 family), IEEE 802.16 standards (e.g., IEEE 802.16-2005 Amendment), Long-Term Evolution (LTE) project

[0085] In one or more embodiments, the interface device 406 can include circuitry for managing wired communications, such as electrical communication protocols, optical communication protocols, or any other suitable communication protocols. For example, the interface device 406 can include circuitry that supports communications in accordance with Ethernet technology. In one or more embodiments, the interface device 406 can support both wireless and wired communications, and / or can support multiple wired communication protocols and / or multiple wireless communication protocols. For example, a first set of circuitry of the interface device 406 can be dedicated to short-range wireless communications such as Wi-Fi or Bluetooth, while a second set of circuitry of the interface device 406 can be dedicated to long-range wireless communications such as Global Positioning System (GPS), EDGE, GPRS, CDMA, WiMAX, LTE, EV-DO, and so on. In one or more embodiments, a first set of circuitry of the interface device 406 can be dedicated to wireless communications, while a second set of circuitry of the interface device 406 can be dedicated to wired communications.

[0086] The computing device 400 can include a battery / power supply circuit 408. The battery / power supply circuit 408 can include one or more energy storage devices (e.g., batteries or capacitors) and / or circuitry for coupling components of the computing device 400 to an energy source separate from the computing device 400 (e.g., an AC line power supply).

[0087] The computing device 400 can include a display device 410 (e.g., a plurality of display devices). The display device 410 can include any visual indicator, such as a heads-up display, a computer monitor, a projector, a touchscreen display, a liquid crystal display (LCD), a light-emitting diode display, or a flat panel display.

[0088] The computing device 400 can include other input / output (I / O) devices 412. For example, the other I / O devices 412 can include one or more audio output devices (e.g., speakers, headphones, earbuds, alarms, and so on), one or more audio input devices (e.g., microphones or microphone arrays), a positioning device (e.g., a GPS device that communicates with satellite-based systems to receive a location of the computing device 400 as is known in the art), an audio codec, a video codec, a printer, a sensor (e.g., a thermocouple or other temperature sensor, a humidity sensor, a pressure sensor, a vibration sensor, an accelerometer, a gyroscope, and so on), an image capture device such as a camera, a keyboard, a cursor control device such as a mouse, a stylus, a trackball, or a touchpad, a barcode reader, a quick response (QR) code reader, or a radio frequency identification (RFID) reader.

[0089] The computing device 400 can have any suitable form factor for its application and setting, such as a handheld or mobile computing device (e.g., a cell phone, a smart phone, a mobile Internet device, a tablet computer, a notebook computer, a netbook computer, an ultrabook computer, a personal digital assistant (PDA), an ultra-mobile personal computer, etc.), a desktop computing device, or a server computing device or other networked computing component.

[0090] Referring now to FIG. 5 and FIG. 6 In one or more embodiments, FIG. 5 and FIG. 6 The non-limiting systems 500 and / or 600 and / or systems thereof, exemplified at FIG. 15 herein with reference to a computing environment, such as the computing environment 1500 exemplified at FIG. 5 and / or FIG. 6 and / or one or more of the systems, devices, components, and / or computer-implemented operations described herein with reference to other figures.

[0091] Turning first to FIG. 5 this figure exemplifies a block diagram of an example non-limiting system 500 that can include an image contour line extraction system 502. The image contour line extraction system 502 can facilitate a process for pixelated image contour line extraction of a pixelated image 593 that includes a set of pixels 594.

[0092] In one or more embodiments, the image contour line extraction system 502 can be included, at least in part, by the computing device 400.

[0093] In one or more embodiments, the image contour line extraction system 502 can include, at least in part, and / or be included by, and / or vice versa, an imaging device that has generated the pixelated image 593.

[0094] It is noted that the image contour line extraction system 502 is described in brief detail only to provide an introduction to a more complex and / or more extensive image contour line extraction system 602, as exemplified at FIG. 6 That is, further details regarding processes that can be performed by one or more embodiments described herein will be provided below with respect to the non-limiting system 600 of FIG. 6

[0095] Still referring to FIG. 5 ​The image contour extraction system 502 can include at least a memory 504, a bus 505, a processor 506, an identification component 512, and / or a subdivision component 520. The processor 506 can be the same as, included by, or different from the processor 402. The memory 504 can be the same as, included by, or different from the storage device 404.

[0096] Using the above components, the image contour extraction system 502 can facilitate a process of at least partially modifying the pixelated image 593 by generating a set of barrier lines 580 that are subdivided from the contour line 534.

[0097] Generally, the identification component 512 can obtain, look up, locate, download, and / or request data / metadata defining the contour line 534 to be applied between the regions 530 of the pixelated image 593. That is, the identification component 512 can identify information relating to the set of contour line pixels 594C included by the contour line 534 and / or directly identify the set of contour line pixels included by the contour line.

[0098] The subdivision component 520 can generate a set of barrier lines 580 by subdividing the contour line 534 into the set of barrier lines 580 based on the parsing of the contour line pixels 593.

[0099] As a result of these components, a modified pixelated image 593M can be generated that includes the barrier lines 580, which can be used for post-processing. As mentioned above, the post-processing can include, but is not limited to, a refinement of the barrier lines 580, such as moving a portion of the barrier lines 580. Also as mentioned above, this refinement can be performed using a distinction parameter for different interfaces (e.g., different interfaces of different materials represented by the barrier lines 580). The use of the distinction parameter is based on the application of the barrier lines 580 by the non-limiting system 500.

[0100] The identification component 512 and / or the subdivision component 520 can be operatively coupled to the processor 506, which can be operatively coupled to the memory 504. The bus 505 can provide the operative coupling. The processor 506 can facilitate the execution of the identification component 512 and / or the subdivision component. The identification component 512 and / or the subdivision component can be stored at the memory 504.

[0101] Generally, the non-limiting system 500 can employ any suitable communication method (e.g., electronic, communication, internet, infrared, fiber optic, etc.) to provide communication between the image contour extraction system 502, the pixelated image generation device, and / or any device associated with the user entity.

[0102] As an overview of the above components and their functionality, only brief reference will be made to FIG. 10Examples are provided below of one or more embodiments described herein (such as...). FIG. 5 A flowchart of an example non-limiting method 1000 for extracting process contours from a pixelated image (non-limiting system 500). Although relative to FIG. 5 The non-limiting system 500 describes the non-limiting method 1000, but the non-limiting method 1000 can also be applied to other systems described herein, such as FIG. 6 The non-limiting system 600. For the sake of brevity, repeated descriptions of similar elements and / or processes used in the corresponding embodiments are omitted.

[0103] At 1002, the non-limiting method 1000 may include a contour line (e.g., contour line 534) applied between regions (e.g., region 530) of a pixelated image (e.g., pixelated image 593) by a system (e.g., identification component 512) operatively coupled to a processor (e.g., processor 506).

[0104] At 1004, the non-limiting method 1000 may include subdividing the contour line into a set of barrier lines (e.g., barrier lines 580) by the system (e.g., subdivision component 520) based on the resolution of the contour line pixels (e.g., contour line pixels 594C).

[0105] At 1006, the non-limiting method 1000 may include determining, by the system (e.g., subdivision component 520), whether there are additional contour line pixels for the contour line to be parsed. If yes, then method 1000 may return to step 1004. If no, then method 1000 may terminate.

[0106] Next turn FIG. 6 An example of a non-limiting system 600 is illustrated, which may include an image contour extraction system 602 and a scientific imaging device (SID) 690. For brevity, repeated descriptions of similar elements and / or processes used in the corresponding embodiments are omitted. Relative to FIG. 5 The description of the implementation scheme is applicable to FIG. 6 The implementation plan. Similarly, relative to... FIG. 6 The description of the implementation scheme is applicable to FIG. 5 The implementation plan.

[0107] Generally speaking, the image contour extraction system 602 can facilitate the process of at least partially modifying the pixelated image 693 by generating a set of barrier lines 680 subdivided from the contour line 634.

[0108] The non-restrictive system 600 can be used in conjunction with pixelated image generation devices such as the SID 690.

[0109] In one or more embodiments, the image contour line extraction system 602 can be included, at least in part, by the computing device 400.

[0110] In one or more embodiments, the image contour line extraction system 602 can include, at least in part, the SID 690, and / or vice versa.

[0111] One or more communications between one or more components of the non-limiting system 800 can be provided through wired and / or wireless means including, but not limited to, employing a cellular network, a wide area network (WAN) (e.g., the Internet), and / or a local area network (LAN). Suitable wired or wireless technologies for supporting communications can include, but are not limited to, wireless fidelity (Wi-Fi), global system for mobile communications (GSM), universal mobile telecommunications system (UMTS), worldwide interoperability for microwave access (WiMAX), enhanced general packet radio service (enhanced GPRS), third generation partnership project (3GPP) long term evolution (LTE), third generation partnership project 2 (3GPP2) ultra mobile broadband (UMB), high speed packet access (HSPA), Zigbee, and other 802.XX wireless technologies, and / or traditional telecommunication technologies, a session initiation protocol (SIP), an RF4CE protocol, a WirelessHART protocol, a 6L0WPAN (IPv6 over Low Power Wireless Personal Area Networks), Z-Wave, advanced and / or adaptive network technology (ANT), an ultra-wideband (UWB) standard protocol, and / or other proprietary and / or non-proprietary communication protocols.

[0112] The image contour line extraction system 602 can be associated with (such as accessible via) a cloud computing environment, such as the cloud computing environment 1500 of FIG. 15 FIG. 1.

[0113] The image contour line extraction system 602 can include a plurality of components. These components can include a memory 604, a processor 606, a bus 605, an obtaining component 610, an identifying component 612, a convolution component 614, a classifying component 616, a subdividing component 620, an iterating component 622, a generating component 624, and / or an executing component 626. Using these components, the image contour line extraction system 602 can output at least a set of barrier lines 680 for at least a contour line 634 of a pixelated image 693.

[0114] Discussion turns next to the processor 606, memory 604, and bus 605 of the image contour line extraction system 602. For example, in one or more embodiments, the image contour line extraction system 602 can include a processor 606 (e.g., a computer processing unit, a microprocessor, a classical processor, a quantum processor, and / or a similar processor). In one or more embodiments, as described herein with or without reference to one or more of the accompanying drawings of one or more embodiments, components associated with the image contour line extraction system 602 can include one or more computers and / or machine-readable, -writable, and / or -executable components and / or instructions that can be executed by the processor 606 to provide for execution of one or more processes defined by such components and / or instructions. In one or more embodiments, the processor 606 can include an obtaining component 610, an identifying component 612, a convolving component 614, a classifying component 616, a subdividing component 620, an iterating component 622, a generating component 624, and / or an executing component 626.

[0115] In one or more embodiments, the image contour line extraction system 602 can include a computer-readable memory 604 that can be operatively connected to the processor 606. The memory 604 can store computer-executable instructions that, when executed by the processor 606, can cause the processor 606 and / or one or more other components of the image contour line extraction system 602 (e.g., the obtaining component 610, the identifying component 612, the convolving component 614, the classifying component 616, the subdividing component 620, the iterating component 622, the generating component 624, and / or the executing component 626) to perform one or more actions. In one or more embodiments, the memory 604 can store computer-executable components (e.g., the obtaining component 610, the identifying component 612, the convolving component 614, the classifying component 616, the subdividing component 620, the iterating component 622, the generating component 624, and / or the executing component 626).

[0116] The image contour line extraction system 602 and / or components thereof as described herein can be coupled to one another via the bus 605 communicatively, electrically, operatively, optically, and / or otherwise. The bus 605 can include one or more of a memory bus, a memory controller, a peripheral bus, an external bus, a local bus, a quantum bus, and / or another type of bus that can employ one or more bus architectures. One or more of these examples of a bus 605 can be employed.

[0117] In one or more embodiments, the image contour line extraction system 602 can be coupled (e.g., communicatively, electrically, operatively, optically, and / or the like) to one or more external systems (e.g., an unillustrated electrical output generation system, one or more output targets, and / or an output target controller), sources, and / or devices (e.g., classical and / or quantum computing devices, communication devices, and / or the like) such as via a network. In one or more embodiments, the image contour line extraction system 602 and / or one or more of the components of the non-limiting system 600 can reside in the cloud and / or can reside locally in a local computing environment (e.g., at a specified location).

[0118] In addition to the processor 606 and / or the memory 604 described above, the image contour line extraction system 602 can include one or more computer and / or machine readable, writable, and / or executable components and / or instructions that, when executed by the processor 606, can provide for the performance of one or more operations defined by such components and / or instructions.

[0119] The following discussion turns to additional components of the image contour line extraction system 602 (e.g., the obtaining component 610, the identifying component 612, the convolving component 614, the classifying component 616, the subdividing component 620, the iterating component 622, the generating component 624, and / or the performing component 626). In general, the image contour line extraction system 602 can perform a set of processes that can be divided into various steps including, but not limited to: contour pixel analysis, barrier line generation, and / or barrier line use.

[0120] First, it is noted that, in one or more embodiments, the obtaining component 610, the identifying component 612, the convolving component 614, the classifying component 616, the subdividing component 620, the iterating component 622, the generating component 624, and / or the performing component 626 can be implemented independently of one or more other components of the obtaining component 610, the identifying component 612, the convolving component 614, the classifying component 616, the subdividing component 620, the iterating component 622, the generating component 624, and / or the performing component 626. Additionally and / or alternatively, the obtaining component 610, the identifying component 612, the convolving component 614, the classifying component 616, the subdividing component 620, the iterating component 622, the generating component 624, and / or the performing component 626 can be included by the high-level analysis component 603, one or more of the following described functions of the obtaining component 610, the identifying component 612, the convolving component 614, the classifying component 616, the subdividing component 620, the iterating component 622, the generating component 624, and / or the performing component 626 can be performed by the high-level analysis component 603, and / or the obtaining component 610, the identifying component 612, the convolving component 614, the classifying component 616, the subdividing component 620, the iterating component 622, the generating component 624, and / or the performing component 626 can be omitted, with the high-level analysis component 603 performing one or more of the following described functions of one or more omitted obtaining component 610, identifying component 612, convolving component 614, classifying component 616, subdividing component 620, iterating component 622, generating component 624, and / or performing component 626.

[0121] First turning to the obtaining component 610, the obtaining component can generally acquire (e.g., obtain, locate, identify, request, download, etc.) a pixelated image 693 such as from a scientific imaging device 690. The pixelated image 693 can be at least a portion of a sample 692 based on an application of an energy source 691 to the sample 692 by the SID 690.

[0122] Turning briefly to FIG. 7 FIG. 7, and still referring to FIG. 6Like the pixelated image 693, the surface or external image of the sample 692 can be and / or include a cross-sectional image of the sample 692. Notably, existing frameworks are not reliably able to process (e.g., perform contour extraction, also referred to as contour line extraction) with respect to cross-sectional images. This can be because the contrast mechanism employed is typically the material z value. For example, the cross-sectional image can include a set of two or more (such as four or more) distinct regions 630, each of which corresponds to a different material of the sample 692. Any one or more regions 630 can abut (e.g., interface with) one or more other regions 630. Any of such one or more other regions 630 can have different grayscale characteristics than the region 630 with which they abut.

[0123] Note that, for simplicity, the grayscale of the pixelated regions 630 has been removed from the illustration 700 to illustrate the contour lines 634.

[0124] The pixelated image 693 can include contour lines 634 that have been generated by another process, technique, system, device, etc. The contour lines 634 are typically closed contour lines without endpoints that bound (such as surround) a shape (e.g., a grouping of pixels having substantially similar grayscale characteristics). That is, contour line extraction as a first identification of boundaries between regions 630 of the pixelated image 693 can be hot-started (e.g., in addition to being performed by one or more processes described herein as performed by one or more embodiments described herein).

[0125] The regions 630 can be composed of a set of non-contour line pixels 694. The contour lines 634 can be composed of a set of contour line pixels 694C. The neighboring pixels 694N to be used for classifying the contour line pixels 694C can be pixels that are adjacent to (e.g., contiguous with and / or abutting) the contour line pixels 694C. In one or more embodiments, the neighboring pixels 694N can be contour line pixels that are adjacent to (e.g., contiguous with and / or abutting) the contour line pixels 694C. In such cases, the neighboring pixels 694N can have the same contour line as the corresponding contour line pixels 694C or a different contour line. In one or more alternative embodiments, the neighboring pixels 694N can be non-contour line pixels that are adjacent to (e.g., contiguous with and / or abutting) the contour line pixels 694C.

[0126] As used herein, the term contiguous can refer to contiguous with a point or with an edge of a pixel, regardless of the embodiment. In one or more other embodiments, the steps described below can be modified such that contiguous can refer to contiguous only with a point of a pixel or only with an edge of a pixel.

[0127] Based on the output obtained by the obtaining component 610, the identifying component 612 can generally identify data and / or metadata defining the outline 634 of the pixelated image 693. This identification can include identifying a set of outline pixels 694C that make up the outline 634.

[0128] For example, attention will now be temporarily diverted to a discussion of scaling with respect to one or more processes that can be performed by one or more embodiments described herein. For example, any two or more outlines 634 of the same pixelated image 693 can be analyzed and processed at least in part in parallel with one another. Based on the hardware and / or firmware capabilities associated with and / or employed by the non-limiting system 600, any two or more pixelated images 693 can be analyzed and / or processed at least in part in parallel with one another. This will be discussed below with respect to the performing component 626 and the performing component 628. FIG. 9 It can be helpful to discuss aspects of the use of the barrier line 680 for comparing two or more pixelated images 693 to one another based on the precise pixel mapping of the pixels of the barrier line 680 of each of the two or more pixelated images 693.

[0129] After the outline pixels 694C and / or the pixelated image 693 have been generally identified, the convolving component 614 can generally generate a mask that can be employed by the classifying component 616 to automatically determine and analyze the number of neighboring pixels 694N to each outline pixel 694C, such as resolving a plurality of outline pixels 694C at the same time as one another.

[0130] That is, the convolving component 615 can convolve a filter kernel over the pixelated image 693, determining the number of neighboring pixels 694N that neighbor the outline pixels 694C. For example, the mask can include ((111) (101) (111)) for diagonal or 8-connected and ((010) (101) (010)) for adjacent or 4-connected.

[0131] For example, attention will now be turned to FIG. 8 Based on the mask that has been applied by the convolving component 614, the classifying component 616 can generally resolve a set of outline pixels 694C that have been obtained by the identifying component 612. For example, a first section of the pixelated image 693 can be analyzed, or the entire outline 634 or a portion thereof can be analyzed. At FIG. 8 A grayscale portion 693P of the pixelated image 693 is illustrated at 700, which demonstrates at a high level view where the outline pixels 694C and the neighboring pixels 694N can be found in the pixelated image 693.

[0132] At the gray-scale portion 693P, note that the image includes various marked sub- regions 804, marked as W, X, Y, and Z. These sub-regions 804 are marked to illustrate the use of the non-limiting systems described herein. For example, at the FIG. 8 profile line 634 referenced at 634 provides a barrier between the various sub- regions including W, X, and Y. Note that additional regions not illustrated in the partially pixelated image of 634 can be provided outside of the regions W-Y. Without the use of the embodiments described herein, due to the shortcomings of existing frameworks, the interfaces W-X and W-Y would be perceived and sub-processed based on the same profile line 634. Thus, any post-processing refinement using the pixelated image 693 and profile line 634 output by existing frameworks would be performed based on the same parameters applied to the entire profile line 634 and the regions separated therefrom. In effect, using existing frameworks, a distinction between the interfaces W-X and W-Y would not be provided, identified, determined, calculated, evaluated, etc. Rather, only a single, aggregated interface W-X / Y would be evaluated. FIG. 8

[0133] Differently, using one or more embodiments described herein, the marked profile line 634 can be subdivided into two or more distinct barrier lines 680. That is, in other words, the aggregated W-X / Y interface can be subdivided, allowing for a distinction between the interfaces W-X and W-Y. For example, skipping forward briefly with respect to the image, the non-gray-scale portion 693PM of the modified pixelated image 693M illustrates a pair of marked boundary lines 680 that have been subdivided from the profile line 634 of the gray-scale portion 693P using one or more embodiments described herein.

[0134] In effect, for accurate refinement of the boundaries, different parameters should be applied to different interfaces of different materials instead. These different parameters can include, but are not limited to, pixel gray-scale color and / or pixel intensity. For example, the interface W-X and the interface W-Y can have different parameters applied thereto. This can be facilitated by one or more embodiments described herein, such as by using one or more embodiments described herein to subdivide the profile line 634 into a set of distinct barrier lines 680. For example, a first barrier line 680 can be generated at the W-X interface, and a second barrier line 680 can be generated at the W-Y interface. To continue the previous discussion, these barrier lines 680 can be generated based on the profile line pixel 694C resolution.

[0135] That is, the set of profile line pixels 694C resolved by the classification component 616 can be a list or any other format, such as but not limited to a graph, a matrix, or any other data structure.

[0136] ​Based on the mask-based output and / or using the mask, the classification component 616 can resolve the contour line pixels 694C and classify different contour line pixels 694C differently. In any such case, the resolution can be employed to identify a plurality of neighboring pixels 694N disposed adjacent to (e.g., contiguous with a side of) the contour line pixel 694C. In one or more embodiments, other contour line pixels 694N can be used as the neighboring pixels 694N. In one or more alternative embodiments, non-contour line pixels 694 of the region 630 adjacent to the contour line 634 can be used as the neighboring pixels 694N.

[0137] Then, based on the resolution of the various contour line pixels 694C of the contour line 634, the classification component 616 can generate a data structure 679 (e.g., any suitable data structure such as a list, a matrix, a graph, etc.) of data and / or metadata including and / or defining data tags of the contour line pixels 694C as path pixels, end point pixels, or intersection pixels. Such data structure 679 can be stored internally or externally to the non-limiting system 600.

[0138] In a first case, the classification component 616 can identify a contour line pixel 694C as an end point pixel to use as an end point of a barrier line 680 to be subdivided from the contour line 634.

[0139] In one or more embodiments of the first case, where other contour line pixels 694C are used as the neighboring pixels 694N, such contour line pixels 694C can have only one neighboring pixel 694N associated therewith. See, for example, Example A (806A) at FIG. 8 where the identified contour line pixel 694C has exactly one neighboring pixel 694N identified and disposed adjacent to the identified contour line pixel 694C.

[0140] In a second case, based on the mask-based output and / or using the mask, a contour line pixel 694C can be classified by the classification component 616 as an intersection pixel to use as an intersection of at least one pair of barrier lines 680 to be subdivided from the contour line 634. As such, the intersection pixel can be an end point pixel or a path pixel for more than one barrier line 680.

[0141] In one or more embodiments of the second case, where other contour line pixels 694C are used as the neighboring pixels 694N, the classification can be based on respective contour line pixels 694C having three neighboring pixels 694N associated therewith. See, for example, Example B (806B) at FIG. 8 where the identified contour line pixel 694C has three neighboring pixels 694N identified and disposed adjacent to the identified contour line pixel 694C.

[0142] More generally, these classifications of endpoints and junctions can be based on each such respective contour line pixel 694C having two neighboring pixels 694N (in this case, contour line pixels) contiguous therewith.

[0143] In a third case, a contour line pixel 694C can be identified by the classification component 616 as a path pixel. Path pixels can be within the barrier line 680, such as between endpoint pixels.

[0144] In one or more embodiments of the third case, where other contour line pixels 694C are used as neighboring pixels 694N, there are exactly two neighboring pixels 694N associated with the contour line pixel 694C. See, e.g., example C (806C) at FIG. 8 at which the identified contour line pixel 694C has two neighboring pixels 694N identified and disposed contiguous with the identified contour line pixel 694C.

[0145] In a fourth case, where there are diagonally connected contour lines 634 of the pixelated image 693, a second pixel (e.g., immediately adjacent to an endpoint pixel, such as a second pixel in a contour segment) can have multiple contiguous contour neighboring pixels 694N associated therewith. Such second pixels can be midpoint pixels and / or junction pixels.

[0146] In one or more embodiments of the fourth case, where other contour line pixels 694C are used as neighboring pixels 694N, the second pixel can have three contiguous contour neighboring pixels 694N associated therewith.

[0147] Now discussed are alternative embodiments turning to the above-noted cases, where non-contour line pixels 694 are used as neighboring pixels 694N.

[0148] In one or more alternative embodiments of the first or second case, where non-contour line pixels 694 are used as neighboring pixels 694N, contour line pixels 694C having zero, one, or three non-contour line pixels as neighboring pixels 694N will correlate to such contour line pixels 694C being classified as endpoints or junctions.

[0149] In one or more alternative embodiments of the third case, where non-contour line pixels 694 are used as neighboring pixels 694N, contour line pixels 694C having exactly two non-contour line pixels as neighboring pixels 694N will correlate to such contour line pixels 694C being classified as path pixels within the barrier line 680, such as between endpoint pixels.

[0150] In one or more alternative embodiments of the fourth case, where non-contour pixels 694 are used as neighboring pixels 694N, and where the pair of contours 634 are diagonally connected, a contour pixel 694C having seven, five, or less than or equal to 4 such neighboring pixels 694N will correspond to a contour pixel 694C that is an endpoint or intersection, while a contour pixel 694C having six or 5 such neighboring pixels 694N will correspond to a contour pixel 694C that is a midpoint or path pixel. Note that the case of a contour pixel 694C having 5 neighboring pixels 694N associated therewith (still where non-contour pixels 694 are used as neighboring pixels 694N) can be classified as one or both of an endpoint / intersection pixel or a midpoint / path pixel.

[0151] The following discussion turns to a set of steps that can be employed by the classification component 616 based on the mask, and thereby generate the data structure 679. Note that this set of steps is based on the basic embodiment where the neighboring pixels 694N are other contour pixels 694C that are adjacent (e.g., contiguous) to the contour pixel 694C.

[0152] A first step can include adding all contour pixels 694C to the data structure. As this data structure 679 can become quite large and is accessed frequently, it can be advantageous to employ an aggregated data structure that is a grouping of the pixels with the structure of the image.

[0153] A second step can include identifying all contour pixels 694C that do not have exactly two neighboring pixels 694N associated therewith. These contour pixels 694C can be added to a grouping of intersection / endpoint pixels of the data structure.

[0154] Any contour pixels 694C that have two neighboring pixels 694N associated therewith are along a path of the barrier line 680, and can be added to a grouping of path pixels of the data structure.

[0155] Any contour pixels 694C that have one neighboring pixel 694N associated therewith can be at an end of the barrier line 680, and thus be an endpoint pixel that can be added to a grouping of endpoint pixels of the data structure.

[0156] For contour line pixels 694C having three or more neighboring pixels 694N associated therewith, the number of neighboring pixels 694N is added but reduced by one. This is because the pixel will be part of multiple paths, as a crossing pixel. A crossing pixel can be an endpoint pixel and / or a path pixel. For example, a first barrier line can cross a second barrier line, and the crossing pixel can be a path pixel for both the first barrier line and the second barrier line. Alternatively, the first barrier line can end at a non-endpoint portion of the second barrier line, and the crossing pixel can be a path pixel for the first barrier line but can be an endpoint pixel for the second barrier line. Note that a crossing can include more than two crossing barrier lines 680.

[0157] Note that the above steps can alternatively be modified based on the above description regarding non-contour line pixels 694 as neighboring pixels 694N to employ such alternative embodiments of non-contour line pixels 694 as neighboring pixels 694N.

[0158] An optional step can include tagging contour line pixels 694C with metadata and / or removing the contour line pixels 694C from a data structure of a set of contour line pixels 694C after the contour line pixels 694C have been resolved.

[0159] A next step can include generating data to define barrier lines 680. That is, the subdivision component 620 can generally subdivide the analyzed contour lines 634 into a set of barrier lines 680 based on the resolution of the contour line pixels of the above steps.

[0160] The subdivision component 620 can start with a first pixel in an endpoint group and follow that first pixel along a set of path pixels along the contour line 634 until a contour line pixel 634C is reached that is identified as an endpoint pixel. Once the end of a path is reached, the path can be added to the path group as a defined barrier line 680. In one or more embodiments, as pixels are found on a path, they can be removed from the list. If an endpoint pixel is used as an endpoint pixel for two barrier lines 680 / two paths, it is not detrimental to delete the pixel from the associated endpoint list as the process will continue or will next continue on the next path of the contour line 634. The process can continue until all endpoints have been used. Note that a crossing pixel can be re-identified with respect to another contour line analysis of a different contour line 634.

[0161] Finally, it can be noted that any remaining unresolved / unremoved contour line pixels 694C can be part of one or more closed paths. Thus, to process the remaining contour line pixels 694C, the subdivision component 620 can start at the beginning of the contour line pixel group and track a closed path until a starting pixel is reached. Any closed paths can then be added to the path group.

[0162] When the contour pixel grouping is empty, path tracking is complete, and the path grouping can be returned by the subdivision component 620, providing a set of partition barrier lines 680 from the single contour line 634. As described above, these paths form boundaries between the partition regions 630, and can be further refined in post-processing using edge detection such as an edge finder.

[0163] Next, the iteration component 622 can determine whether there are additional contour lines 634 of the pixelated image 693 to be resolved by the classification component 616 and subdivided by the subdivision component 620.

[0164] The generation component 624 can generally generate a modified pixelated image 693M highlighting the set of barrier lines 680 based on the contour line 634. For example, a first barrier line 680 of the set of barrier lines can separate a first pair of materials of the sample 692, and a second barrier line 680 of the set of barrier lines can separate a second pair of materials of the sample 692, where the second pair of materials can include at least one material different from the materials of the first pair of materials. See, for example, FIG. 9 The non-gray portion 693PM is illustrated as being generated by the non-limiting system 600 by subdividing the contour line 634 into a set of two or more barrier lines 680. That is, the non-gray portion 693PM represents a portion of the modified pixelated image 693M.

[0165] Turning now to the illustration 900 of FIG. 8 The execution component 626 can generally execute one or more processes using the modified pixelated image 693M and the set of barrier lines 680.

[0166] In one or more embodiments, the execution component 626 can compare a first portion 904P of a barrier line of the set of barrier lines of the pixelated image 693 to a corresponding second portion 904T of a corresponding second barrier line of a second pixelated image. In one or more embodiments, the first portion 904P can have a known barrier line 680, while the second portion 904T can have an unknown portion compared to a baseline of the first portion 904P. The execution component 626 can employ pixel mapping to determine pixel-based positional differences of the second portion 904T compared to the first portion 904P. That is, one or more barrier line pixels of the second portion 904T can be located at different positions that do not exactly correspond to positions of corresponding one or more barrier line pixels of the first portion 904P, and / or the second portion 904T can include more or fewer barrier line pixels than the first portion 904P.

[0167] In one or more other embodiments, the execution component 626 can direct revision of the portion 904P of the barrier line 680. For example, the discussion briefly turns toFIG. 8 For reference, and specifically turning to the non-gray scale portion 694PM. Based on generating the barrier line 680 from the contour line 634, the location of a portion of the barrier line interface W-Y can be revised. For example, the revision can be based on one or more known techniques involving the use of pixel gray scale levels and / or pixel intensities, but is not limited thereto. That is, reference is made to FIG. 11 In the absence of subdividing the contour line 634 into different interfaces provided by the barrier line 680, such a revision would not be possible. That is, based on the use of one or more embodiments described herein, the different interfaces W-X and W-Y can be delineated as different barrier lines 680 for which different revision parameters can be employed (e.g., for interface W-X as compared to interface W-Y).

[0168] As an overview of the components described above and their functions, reference is made to FIG. 12 and FIG. 6 , which exemplify example non-limiting methods 1100 that can facilitate processes for contour line extraction for pixelated images in accordance with one or more embodiments described herein, such as the non-limiting system 600 of FIG. 6 While the non-limiting method 1100 is described with respect to the non-limiting system 600 of FIG. 5 , the non-limiting method 1100 can also be applicable to other systems described herein, such as the non-limiting system 500 of FIG. 8 . Repetitive description of like elements and / or functions having been omitted for sake of brevity.

[0169] At 1102, the non-limiting method 1100 can include obtaining, by a system (e.g., the obtaining component 610), a pixelated image (e.g., the pixelated image 693) for processing, the pixelated image comprising a cross-sectional view at a cross-section of a sample (e.g., the sample 692), wherein regions (e.g., the regions 630) of the pixelated image correspond to different materials of the sample.

[0170] At 1104, the non-limiting method 1100 can include identifying, by a system (e.g., the identifying component 612), a contour line (e.g., the contour line 634) to apply between regions of the pixelated image.

[0171] At 1106, the non-limiting method 1100 can include convolving, by a system (e.g., the convolution component 614), a filter kernel over the pixelated image, thereby determining a number of neighboring pixels contiguous to a contour line pixel (e.g., the contour line pixel 69C or the CL pixel 694C).

[0172] At 1108, the non-limiting method 1100 can include resolving, by the system (e.g., the convolution component 616), a contour line pixel of a contour line based on the use of the filter kernel.

[0173] At 1110, the non-limiting method 1100 can include classifying, by the system (e.g., the classification component 616), the contour line pixel as an endpoint pixel at an endpoint of a barrier line (e.g., the barrier line 680) of a set of barrier lines or an intersection pixel at an intersection of at least a pair of barrier lines of the set of barrier lines, where a number of adjacent pixels contiguous to the contour line pixel is not two (e.g., the adjacent pixel 694N or the NBR pixel 694N).

[0174] At 1112, the non-limiting method 1100 can include generating, by the system (e.g., the classification component 616), a data structure including a data label of the contour line pixel as a path pixel, an endpoint pixel, or an intersection pixel.

[0175] At 1114, the non-limiting method 1100 can include subdividing, by the system (e.g., the subdivision component 620), the contour line into a set of barrier lines based on the resolving of the contour line pixel of the contour line.

[0176] At 1116, the non-limiting method 1100 can include determining, by the system (e.g., the iteration component 622), whether there are additional contour lines of the pixelated image to resolve. If yes, the non-limiting method 1100 can return to step 1104. If no, the non-limiting method 1100 can proceed to step 1118.

[0177] At 1118, the non-limiting method 1100 can include generating, by the system (e.g., the generation component 624), a modified pixelated image highlighting the set of barrier lines (e.g., the modified pixelated image 693M) based on the contour line.

[0178] At 1120, the non-limiting method 1100 can include generating, by the system (e.g., the generation component 624), a modified pixelated image including a first barrier line of the set of barrier lines separating a first pair of materials of the sample (e.g., sub-regions Y and Z corresponding to FIG. 8 at 1102) and a second barrier line of the set of barrier lines separating a second pair of materials of the sample (e.g., sub-regions W and X corresponding to FIG. 9 at 1102), where the second pair of materials has at least one material different from the materials in the first pair of materials.

[0179] At 1122, the non-limiting method 1100 can include executing, by the system (e.g., the execution component 626), a first portion of a barrier line of a set of barrier lines of a pixelated image (e.g., FIG. 9a corresponding second portion of a corresponding second barrier line of the second pixelated image (e.g., Additional Overview at a test portion 904T of the barrier line 680T) are compared.

[0180] At 1124, the non-limiting method 1100 can include employing, by the system (e.g., the execution component 626), a pixel mapping that determines a pixel-based location difference of the second portion compared to the first portion.

[0181] Scientific Instrument System Description

[0182] For simplicity of presentation, computer-implemented and non-computer- implemented methods provided herein are depicted and / or described as a series of acts. It is to be understood that the subject innovation is not limited to the acts or to the order of the acts, as some acts can occur in other orders and / or concurrently with other acts from different or additional innovations. Moreover, not all illustrated acts can be required to implement the computer- implemented and non-computer-implemented methods in accordance with the described subject matter. Additionally, computer-implemented and non-computer-implemented methods can alternatively be represented as a series of interrelated states via state diagrams or event diagrams. Additionally, the computer-implemented methods described infra, and throughout this specification, can be stored in an article of manufacture to facilitate the transport and transmission of the computer-implemented methods to a computer. As used herein, the term "article of manufacture" is intended to encompass a computer program accessible from any computer-readable device or storage media.

[0183] Systems and / or devices have been (and / or will be) described herein with respect to interactions between one or more components. Such systems and / or components can include those components specified therein or one or more of the specified components and / or additional components. A subcomponent can be implemented as a component that is communicatively coupled to other components rather than being included within a parent component. One or more components and / or subcomponents can be combined into a single component that provides the aggregate functionality. These components can interact with one or more other components, which are not specifically described herein for the sake of brevity, but which are known to those skilled in the art.

[0184] In sum, one or more systems, computer program products, and / or computer- implemented methods provided herein relate to a process for image contour line extraction. A system can include a memory that stores computer-executable components and a processor that executes the computer-executable components. The computer-executable components can include an identification component that identifies a contour line applied between regions of a pixelated image and a subdivision component that subdivides the contour line into a set of barrier lines based on a parsing of contour line pixels of the contour line.

[0185] One or more embodiments described herein can be implemented within, in conjunction with, and / or coupled to a scientific imaging device.

[0186] One or more embodiments disclosed herein can implement dynamic contour line extraction and subsequent modification, thereby providing methods beyond general methods. As used herein, the term dynamic can refer to generation of different barrier lines for different material interfaces of the same contour line. That is, different initially identified contour lines of the same image can have different thicknesses, can be adjacent pixels of different material types, etc. To address these complexities, one or more embodiments described herein can use a dynamically adjustable pixel threshold to provide contour line extraction based on various iterations of determinations of adjacent pixels to provide modified dynamic adjustable accuracy.

[0187] In this way, one or more embodiments described herein can address different pixelated types of different materials (e.g., patterning, grayscale levels, etc.), thereby allowing one or more embodiments described herein to be versatilely applicable to a wide range of applications, materials, material types, etc. For example, different pixel thresholds can be used for different materials or even different portions of the same sample being analyzed and for which contour line extraction is sought.

[0188] One or more embodiments described herein can provide sub-pixel accuracy of contour line extraction based on these functions and capabilities to iteratively select adjacent pixels (e.g., for defining contour line extraction) until a dynamically adjustable pixel threshold is met.

[0189] One or more embodiments described herein can be used to analyze images including cross-sectional views of a sample, rather than only being applicable to top views and / or other external views, as with existing frameworks for contour line determination. Thus, one or more embodiments described herein can have increased applicability for different purposes and industries as compared to existing frameworks.

[0190] Indeed, given one or more embodiments described herein, practical applications of one or more systems, computer-implemented methods, and / or computer program products described herein can have the ability to provide contour line extraction with respect to images including regions of different materials of a sample, such as where the images include cross-sectional views of the sample. With respect to varying materials, extraction of contour lines adjacent and / or contiguous to these different material regions can be performed to allow different parameters to be employed for different portions of the contour line in further refining positioning of the contour line. That is, as compared to existing frameworks that are not capable of providing such ability, one or more embodiments described herein can provide new results previously unavailable based on initial generation of contour lines, e.g., providing discrete barrier lines with endpoints.

[0191] These are useful and practical applications of computers, providing enhanced (e.g., improved and / or optimized) material analysis and image modification outputs. Overall, such computerized tools can constitute specific and tangible technical improvements in the field of material analysis, and more specifically in the field of material analysis using contour line application techniques.

[0192] Further, based on the disclosed teachings, one or more embodiments described herein can be employed in real-world systems. For example, one or more embodiments described herein can provide contour line extraction, allowing for determination of values (e.g., areas and / or other quantities) of regions bounded by a set of barrier lines subdivided from contour lines. This process can operate with respect to individual samples, to obtain data defining individual samples. Additionally and / or alternatively, this process can be used to compare samples and / or compare images to one another, determining one or more similarities and / or one or more differences between samples and / or images. These can be useful processes for different industries employing material analysis, product manufacturing, quality control, and the like. As such, embodiments disclosed herein can provide improvements to scientific instrumentation technology (e.g., improvements to computer technology aspects supporting such scientific instrumentation, among other improvements).

[0193] Systems and / or devices have been (and / or will be further) described herein with respect to interactions between one or more components. Such systems and / or components can include those components specified therein, or one or more of the specified components and / or additional components. A subcomponent can be implemented as a component communicatively coupled to other components, rather than being included within a parent component. One or more components and / or subcomponents can be combined into a single component providing aggregated functionality. These components can interact with one or more other components, which are not specifically described herein for the sake of brevity, but are known to those skilled in the art.

[0194] One or more embodiments described herein can inherently and / or unavoidably relate to computer technology, in one or more embodiments, and cannot be implemented outside of a computing environment. For example, one or more processes performed by one or more embodiments described herein can more efficiently and more feasibly provide program and / or program instruction execution, such as with respect to material analysis using contour line pre-application, as compared to existing systems and / or techniques using holograms. Systems, computer-implemented methods, and / or computer program products providing performance of these processes have great utility in the field of material analysis, for example, for determining quantities of materials of samples based on contour line extraction and / or for comparing samples based on contour line comparisons between respective images of the samples, and cannot be implemented outside of a computing environment in a reasonably similar manner.

[0195] One or more embodiments described herein can employ hardware and / or software to solve problems that are technical in nature, non-abstract, and not capable of being performed by a human through a set of mental acts. For example, a human or even thousands of humans cannot efficiently, accurately, and / or effectively analyze computer data defining pixels of an image, analyze the pixel data, digitally view and / or digitally illustrate the image at a sub-pixel level, transform the pixel data to a grayscale level, and / or reorder and / or reclassify pixel data defining a contour line to adjust the position and / or shape of the contour line relative to neighboring sample-defining pixels because one or more embodiments described herein can provide for this process. Moreover, a human mind or a human holding a pen and paper cannot perform one or more of these processes as performed by one or more embodiments described herein.

[0196] In one or more embodiments, one or more of the processes described herein can be performed by one or more special-purpose computers (e.g., special-purpose processing units, special-purpose classical computers, special-purpose quantum computers, special-purpose hybrid classical / quantum systems, and / or another type of special-purpose computer) to perform defined tasks related to one or more of the technologies described above. One or more embodiments described herein and / or components thereof can be used to solve new problems that arise as a result of advancements in the technologies described above, adoption of quantum computing systems, cloud computing systems, computer architectures, and / or other technologies.

[0197] One or more embodiments described herein can be fully employed to perform one or more other functions (e.g., fully powered on, fully executed, and / or another function) while also performing one or more of the operations described herein.

[0198] To provide an additional overview, a list of embodiments and features thereof is provided next.

[0199] A system comprising: a memory storing computer-executable components; and a processor executing the computer-executable components stored in the memory, wherein the computer-executable components comprise: an identification component that identifies a contour line applied between regions of a pixelated image; and a subdivision component that subdivides the contour line into a set of barrier lines based on a resolution of contour line pixels of the contour line.

[0200] The system according to the preceding paragraph, wherein the resolution is performed according to a number of neighboring pixels contiguous with the contour line pixel.

[0201] The system of any preceding paragraph, further comprising: a convolution component that convolves a filter kernel over the pixelated image, thereby determining a number of neighboring pixels contiguous to the contour line pixel.

[0202] The system of any preceding paragraph, further comprising: a classification component that classifies a contour line pixel as an endpoint pixel at an endpoint of a barrier line of the set of barrier lines, or as an intersection pixel at an intersection of at least one pair of barrier lines of the set of barrier lines, wherein the number of neighboring pixels contiguous to the contour line pixel is not two.

[0203] The system of any preceding paragraph, further comprising: a classification component that generates a data structure comprising a data label of the contour line pixel as a path pixel, an endpoint pixel, or an intersection pixel.

[0204] The system of any preceding paragraph, further comprising: a generation component that generates a modified pixelated image highlighting the set of barrier lines based on the contour line, wherein a first barrier line of the set of barrier lines separates a first pair of materials of the sample, and wherein a second barrier line of the set of barrier lines separates a second pair of materials of the sample having at least one material different from a material in the first pair of materials.

[0205] The system of any preceding paragraph, wherein the pixelated image comprises a cross-sectional view at a cross-section of a sample, and wherein the regions correspond to different materials of the sample.

[0206] The system of v, further comprising: an execution component that compares a first portion of a barrier line of the set of barrier lines of the pixelated image to a corresponding second portion of a corresponding second barrier line of a second pixelated image, wherein the execution component further employs a pixel mapping that determines a pixel-based location difference of the second portion compared to the first portion.

[0207] A computer-implemented method, comprising: subdividing, by a system operatively coupled to a processor, a contour line applied between regions of a pixelated image into a set of barrier lines; and generating, by the system, data for the subdivision by resolving contour line pixels of the contour line.

[0208] The computer-implemented method of the preceding paragraph, further comprising: performing the resolving according to a number of neighboring pixels contiguous to the contour line pixel.

[0209] The computer-implemented method of any preceding paragraph, further comprising: convolving, by the system, a filter kernel over the pixelated image, thereby determining a number of neighboring pixels contiguous to the contour line pixel.

[0210] The computer-implemented method of any preceding paragraph, further comprising: classifying, by the system, a contour line pixel as an endpoint pixel at an endpoint of a barrier line of the set of barrier lines, or as an intersection pixel at an intersection of at least one pair of barrier lines of the set of barrier lines, wherein the number of neighboring pixels contiguous to the contour line pixel is not two.

[0211] The computer-implemented method of any preceding paragraph, further comprising: generating, by the system, a data structure comprising a data label of the contour line pixel as a path pixel, an endpoint pixel, or an intersection pixel.

[0212] The computer-implemented method of any preceding paragraph, further comprising: generating, by the system, a modified pixelated image highlighting the set of barrier lines based on the contour line, wherein a first barrier line of the set of barrier lines separates a first pair of materials of a sample, and wherein a second barrier line of the set of barrier lines separates a second pair of materials of the sample, the second pair of materials having at least one material different from a material in the first pair of materials.

[0213] The computer-implemented method of any preceding paragraph, wherein the pixelated image comprises a cross-sectional view at a cross-section of a sample, and wherein the regions correspond to different materials of the sample.

[0214] The computer-implemented method of any preceding paragraph, further comprising: comparing, by the system, a first portion of a barrier line of the set of barrier lines of the pixelated image to a corresponding second portion of a corresponding second barrier line of a second pixelated image; and employing, by the system, a pixel mapping that determines a pixel-based location difference of the second portion compared to the first portion.

[0215] A computer program product to facilitate a process for image contour line extraction, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, and the program instructions are executable by a processor to cause the processor to: identify, by the processor, a set of contour lines applied between regions of a pixelated image; and subdivide, by the processor, the set of contour lines into a set of barrier lines based on a parsing of contour line pixels of the set of contour lines.

[0216] The computer program product of the preceding paragraph, wherein the program instructions are further executable by the processor to cause the processor to: perform, by the processor, the resolving according to a number of neighboring pixels contiguous with the contour line pixel.

[0217] The computer program product of any preceding paragraph, wherein the program instructions are further executable by the processor to cause the processor to: perform, by the processor, a convolution of a filter kernel over the pixelated image to determine the number of neighboring pixels contiguous with the contour line pixel.

[0218] The computer program product of any preceding paragraph, wherein the program instructions are further executable by the processor to cause the processor to: classify, by the processor, a contour line pixel as either an endpoint pixel at an endpoint of one of the set of barrier lines or an intersection pixel at an intersection of at least one pair of the set of barrier lines, wherein the number of neighboring pixels contiguous with the contour line pixel is not two.

[0219] The computer program product of any preceding paragraph, wherein the pixelated image comprises a cross-sectional view at a cross-section of a sample, and wherein the regions correspond to different materials of the sample.

[0220] FIG. 13

[0221] Next turning to FIG. 1 to FIG. 12 , a detailed description is provided of additional context for one or more embodiments described herein in FIG. 13 . One or more computing devices implementing any of the scientific instrument modules or methods disclosed herein can be part of a scientific instrument system. FIG. 1 A block diagram of an example scientific instrument system 1300 according to various embodiments described herein is illustrated, in which one or more of the scientific instrument methods or other methods disclosed herein can be performed. The scientific instrument modules and methods disclosed herein (e.g., the scientific instrument module 100 and FIG. 2 the method 200) can be implemented by one or more of the scientific instruments 1310 of the scientific instrument system 1300, the user local computing device 1320, the service local computing device 1330, and / or the remote computing device 1340. FIG. 4

[0222] Any of the scientific instruments 1310, the user local computing device 1320, the service local computing device 1330, and / or the remote computing device 1340 can include one or more computing devices described herein with reference to FIG. 4 ​Any of the embodiments of the computing device 400 under discussion, and any of the scientific instrument 1310, user local computing device 1320, service local computing device 1330, and / or remote computing device 1340 can take the form of a computing device 400 as discussed herein with reference to FIG. 4 any appropriate one or more of the embodiments of the computing device 400 under discussion.

[0223] One or more of the scientific instrument 1310, user local computing device 1320, service local computing device 1330, and / or remote computing device 1340 can include a processing device 1302, a storage device 1304, and / or an interface device 1306. The processing device 1302 can take the form of any appropriate processor, including the form of any of the processors 402 under discussion. The processing devices 1302 included in different devices of the scientific instrument 1310, user local computing device 1320, service local computing device 1330, and / or remote computing device 1340 can take the same form or different forms. FIG. 4 The storage device 1304 can take the form of any appropriate form, including the form of any of the storage devices 404 under discussion. The storage devices 1304 included in different devices of the scientific instrument 1310, user local computing device 1320, service local computing device 1330, and / or remote computing device 1340 can take the same form or different forms. FIG. 4 The interface device 1306 can take the form of any appropriate form, including the form of any of the interface devices 406 under discussion. The interface devices 1306 included in different devices of the scientific instrument 1310, user local computing device 1320, service local computing device 1330, and / or remote computing device 1340 can take the same form or different forms. FIG. 4 The interface device 1306 can take the form of any appropriate form, including the form of any of the interface devices 406 under discussion. The interface devices 1306 included in different devices of the scientific instrument 1310, user local computing device 1320, service local computing device 1330, and / or remote computing device 1340 can take the same form or different forms.

[0224] The scientific instrument 1310, user local computing device 1320, service local computing device 1330, and / or remote computing device 1340 can communicate with other elements of the scientific instrument system 1300 via a communication path 1308. The communication path 1308 can communicatively couple the interface devices 1306 of different ones of the elements of the scientific instrument system 1300, as shown, and can be a wired or wireless communication path (e.g., according to any of the communication technologies discussed herein with reference to the interface devices 406 of the computing device 400). FIG. 13 The scientific instrument 1310, user local computing device 1320, service local computing device 1330, and / or remote computing device 1340 can communicate with other elements of the scientific instrument system 1300 via a communication path 1308. The communication path 1308 can communicatively couple the interface devices 1306 of different ones of the elements of the scientific instrument system 1300, as shown, and can be a wired or wireless communication path (e.g., according to any of the communication technologies discussed herein with reference to the interface devices 406 of the computing device 400). FIG. 13The particular scientific instrument system 1300 depicted in the middle includes a communication path between each pair of the scientific instrument 1310, the user local computing device 1320, the service local computing device 1330, and the remote computing device 1340, but such a “fully connected” implementation is merely illustrative, and in various embodiments, various ones of the communication paths 1308 can be omitted. For example, in one or more embodiments, the service local computing device 1330 can omit a direct communication path 1308 between its interface device 1306 and the interface device 1306 of the scientific instrument 1310, and instead can communicate with the scientific instrument 1310 via the communication path 1308 between the service local computing device 1330 and the user local computing device 1320 and / or the communication path 1308 between the user local computing device 1320 and the scientific instrument 1310.

[0225] The scientific instrument 1310 can include any suitable scientific instrument, such as a separation or MS instrument, or other instrument that facilitates analysis of materials.

[0226] The user local computing device 1320 can be a computing device local to a user of the scientific instrument 1310 (e.g., according to any embodiment of the computing device 400 discussed herein). In one or more embodiments, the user local computing device 1320 can also be local to the scientific instrument 1310, but this is not a requirement; for example, a user local computing device 1320 associated with a home, office, or other building associated with a user entity can be remote from the scientific instrument 1310, but in communication therewith, such that the user entity can use the user local computing device 1320 to control and / or access data from the scientific instrument 1310. In one or more embodiments, the user local computing device 1320 can be a laptop, a smartphone, or a tablet device. In one or more embodiments, the user local computing device 1320 can be a portable computing device. In one or more embodiments, the user local computing device 1320 can be deployed in the field.

[0227] The service local computing device 1330 can be a computing device local to an entity servicing the scientific instrument 1310 (e.g., according to any embodiment of the computing device 400 discussed herein). For example, the service local computing device 1330 can be a local device of a manufacturer of the scientific instrument 1310 or a third-party service company. In one or more embodiments, the service local computing device 1330 can communicate with the scientific instrument 1310, the user local computing device 1320, and / or the remote computing device 1340 (e.g., via the direct communication path 1308 or via a plurality of “indirect” communication paths 1308, as discussed above) to receive data regarding the operation of the scientific instrument 1310, the user local computing device 1320, and / or the remote computing device 1340 (e.g., self-test results of the scientific instrument 1310, calibration coefficients used by the scientific instrument 1310, measurement values of sensors associated with the scientific instrument 1310, etc.). In one or more embodiments, the service local computing device 1330 can communicate with the scientific instrument 1310, the user local computing device 1320, and / or the remote computing device 1340 (e.g., via the direct communication path 1308 or via a plurality of “indirect” communication paths 1308, as described above) to send data to the scientific instrument 1310, the user local computing device 1320, and / or the remote computing device 1340 (e.g., to update programming instructions (such as firmware) in the scientific instrument 1310 to initiate the performance of a test or calibration sequence in the scientific instrument 1310, to update programming instructions (such as software) in the user local computing device 1320 or the remote computing device 1340, etc.). A user entity of the scientific instrument 1310 can utilize the scientific instrument 1310 or the user local computing device 1320 to communicate with the service local computing device 1330 to report a problem with the scientific instrument 1310 or the user local computing device 1320, request a technician visit to improve the operation of the scientific instrument 1310, order consumables or replacement parts associated with the scientific instrument 1310, or for other purposes.

[0228] The remote computing device 1340 can be a computing device remote from the scientific instrument 1310 and / or the user local computing device 1320 (e.g., according to any embodiment of the computing device 400 discussed herein). In one or more embodiments, the remote computing device 1340 can be included in a data center or other large-scale server environment. In one or more embodiments, the remote computing device 1340 can include network-attached storage (e.g., as part of the storage device 1304). The remote computing device 1340 can store data generated by the scientific instrument 1310, perform analysis of data generated by the scientific instrument 1310 (e.g., according to programming instructions), facilitate communication between the user local computing device 1320 and the scientific instrument 1310, and / or facilitate communication between the service local computing device 1330 and the scientific instrument 1310.

[0229] In one or more implementations, this can be omitted. FIG. 13 One or more elements of the scientific instrument system 1300 illustrated herein. Furthermore, in one or more embodiments, there may be... Example Operating Environment The scientific instrument system 1300 comprises multiple elements among various components. For example, the scientific instrument system 1300 may include multiple user local computing devices 1320 (e.g., different user local computing devices 1320 associated with different user entities or located in different locations). In another example, the scientific instrument system 1300 may include multiple scientific instruments 1310, all of which communicate with a serving local computing device 1330 and / or a remote computing device 1340; in this embodiment, the serving local computing device 1330 may monitor these multiple scientific instruments 1310, and the serving local computing device 1330 may cause updates or other information to be simultaneously “broadcast” to the multiple scientific instruments 1310. The different scientific instruments 1310 in the scientific instrument system 1300 may be close to each other (e.g., in the same room) or far from each other (e.g., on different floors of a building, in different buildings, in different cities, etc.). In one or more embodiments, scientific instrument 1310 may be connected to an Internet of Things (IoT) stack that allows command and control of scientific instrument 1310 via web-based applications, virtual or augmented reality applications, mobile applications, and / or desktop applications. Any of these applications may be accessible by a user entity operating a user-local computing device 1320 that communicates with scientific instrument 1310 via an intermediate remote computing device 1340. In one or more embodiments, scientific instrument 1310 may be sold by a manufacturer along with one or more associated user-local computing devices 1320 that are part of a local scientific instrument computing unit 1312.

[0230] In one or more embodiments, the different scientific instruments 1310 included in the scientific instrument system 1300 may be of different types; for example, one scientific instrument 1310 may be an EDS device, while another scientific instrument 1310 may be an analytical device for analyzing the results of the EDS device. In some such embodiments, a remote computing device 1340 and / or a user-local computing device 1320 may combine data from the different types of scientific instruments 1310 included in the scientific instrument system 1300.

[0231] FIG. 14

[0232] Example Computing Environmentis a schematic block diagram of an operating environment 1400 with which the subject matter can interact. The operating environment 1400 includes one or more remote components 1410. The remote components 1410 can be hardware and / or software (e.g., threads, processes, computing devices). In one or more embodiments, the remote components 1410 can be a distributed computer system connected to the local autoscaling components via a communication framework 1440 and / or programs that use the resources of the distributed computer system. The communication framework 1440 can include wired networks, wireless networks, mobile communication networks, portable communication networks, radio access network equipment, gateway equipment, femtocell equipment, servers, and the like.

[0233] The operating environment 1400 also includes one or more local components 1420. The local components 1420 can be hardware and / or software (e.g., threads, processes, computing devices). In one or more embodiments, the local components 1420 can include autoscaling components connected to remote distributed computing systems via the communication framework 1440 and / or programs that pass / use remote resources 1410 and 1420, and the like.

[0234] One possible communication between the remote components 1410 and the local components 1420 can take the form of data packets suitable for sending between two or more computer processes. Another possible communication between the remote components 1410 and the local components 1420 can take the form of circuit-switched data suitable for sending in radio time slots between two or more computer processes. The operating environment 1400 includes a communication framework 1440 that can be employed to facilitate communications between the remote components 1410 and the local components 1420, and which can include an over-the-air interface, such as a UMTS network interface via an LTE network, and the like. The remote components 1410 can be operatively connected to one or more remote data stores 1450, such as hard disk drives, solid state drives, subscriber identity modules (SIM) cards, electronic SIMs (eSIMs), device memory, and the like, which can be used to store information at the remote components 1410 side of the communication framework 1440. Similarly, the local components 1420 can be operatively connected to one or more local data stores 1430, which can be used to store information at the local components 1420 side of the communication framework 1440.

[0235] FIG. 15

[0236] To provide additional context for various embodiments described herein, FIG. 15The environment 1500 is but an example of a suitable computing environment and is not intended to suggest any limitation as to the scope of use or functionality of embodiments of the application. Neither should the environment 1500 be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the example environment 1500.

[0237] In general, program modules include routines, programs, components, data structures, etc., that perform particular tasks or implement abstract data types. Moreover, these methods can be practiced with other computer system configurations, including single-processor or multiprocessor computer systems, minicomputers, mainframe computers, Internet of Things (IoT) devices, distributed computing systems, as well as personal computers, hand-held computing devices, microprocessor-based or programmable consumer electronics, and the like, each of which can be operatively coupled to one or more associated devices.

[0238] The embodiments illustrated herein also can be practiced in distributed computing environments where certain tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules can be located in both local and remote memory storage devices.

[0239] Computing devices typically include a variety of media, which can include computer-readable storage media, machine-readable storage media, and / or communications media, which are all distinct from one another as follows. Computer-readable storage media or machine-readable storage media can be any available storage media that can be accessed by a computer and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer-readable storage media or machine-readable storage media can be implemented in connection with any method or technology for storage of information such as computer-readable or machine-readable instructions, program modules, program data, or other data.

[0240] Computer-readable storage media can include without limitation random access memories (RAM), read only memories (ROM), electrically erasable programmable read only memories (EEPROMs), flash memories, or other memory technologies, compact disc read only memories (CD-ROMs), digital versatile discs (DVDs), Blu-Ray discs (BDs), or other optical disc storage, magnetic cassettes, magnetic tape, magnetic disk storage, or other magnetic storage devices, solid-state drives or other solid-state storage devices, or any other storage medium that can be used to store desired information. In this regard, the terms "tangible" or "non-transitory" herein, as applied to a storage device, memory, or computer-readable medium, are exclusively reserved for physical storage devices, and do not encompass transitory propagating signals per se. The various embodiments described herein can be implemented in a computing system that includes a back end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the various embodiments, or any combination of such back end, middleware, or front end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network ("LAN") and a wide area network ("WAN"), e.g., the Internet.

[0241] The computer-readable storage media can be accessed by one or more local or remote computing devices, e.g., via access requests, queries, or other data retrieval protocols, for various operations with respect to the information stored by the media.

[0242] Communication media typically embodies computer-readable instructions, data structures, program modules, or other structured or unstructured data in a data signal such as a modulated data signal, e.g., a carrier wave or other transport mechanism, and includes any information delivery or transport media. The term "modulated data signal" or signals refers to a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media, such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared, and other wireless media.

[0243] Still referring to FIG. 15 An example computing environment 1500 in which one or more embodiments described herein can be implemented includes a computer 1502 that includes a processing unit 1504, a system memory 1506, and a system bus 1508. The system bus 1508 couples system components including, but not limited to, the system memory 1506 to the processing unit 1504. The processing unit 1504 can be any of various commercially available processors. Dual microprocessors and other multi-processor architectures can also be employed as the processing unit 1504.

[0244] The system bus 1508 can be further interconnected to any of a variety of other bus architectures, including a Memory Bus with or without a memory controller, a Peripheral Bus, and a Local Bus using any of a variety of commercially available buses, which are well-known in the art. The system memory 1506 includes ROM 1510 and RAM 1512. A Basic Input-Output (BIOS) can be stored in the non-volatile memory such as ROM, erasable programmable read-only memory (EPROM), EEPROM, which can contain the basic routines that help to transfer information between elements within the computer 1502, such as during startup. The RAM 1512 can also include a high-speed RAM such as static RAM for caching data.

[0245] The computer 1502 also includes an internal hard disk drive (HDD) 1514 (e.g., EIDE, SATA), and can include one or more external storage devices 1516 (e.g., a magnetic floppy disk drive (FDD) 1516, a memory stick or flash drive reader, a memory card reader, etc.). While the internal HDD 1514 is illustrated as being within the computer 1502, the internal HDD 1514 can also be configured to be external, using a suitable chassis (not illustrated). Additionally, while not shown in the computing environment 1500, a solid state drive (SSD) can be used in addition to or in place of the HDD 1514.

[0246] Other internal or external storage devices can include at least one other storage device 1520 (e.g., a solid state storage device, a non-volatile memory device, and / or an optical disk drive that can read from or write to a removable media such as a CD-ROM disk, a DVD, a BD, etc.) having a storage media 1522. The external storage devices 1516 can be facilitated by a network virtual machine. The HDD 1514, the external storage devices 1516, and the storage device (e.g., drive) 1520 can be connected to the system bus 1508 by a HDD interface 1524, an external storage interface 1526, and a drive interface 1528, respectively.

[0247] The drives and their associated computer-readable storage media, provide nonvolatile storage of data, data structures, computer-executable instructions, and so forth. For the computer 1502, the drives and storage media accommodate the storage of any data in a suitable digital format. Although the descriptions of the computer- readable storage media above refer to a type of storage device, other types of storage media that can be read or written by a computer (whether currently existing or developed in the future) can also be used in the example operating environment, and further, any such storage media can contain computer-executable instructions for performing the methods described herein.

[0248] A plurality of program modules can be stored in the drives and RAM 1512, including an operating system 1530, one or more application programs 1532, other program modules 1534, and program data 1536. All or portions of the operating system, applications, modules, and / or data can also be cached in the RAM 1512. The systems and methods described herein can be implemented utilizing various commercially available operating systems or combinations of operating systems.

[0249] The computer 1502 can optionally include emulation technology. For example, a hypervisor (not shown) or other middleware can emulate a hardware environment for the operating system 1530, and the emulated hardware can optionally differ from the Additional Information illustrated hardware. In such an embodiment, the operating system 1530 can comprise one of a plurality of virtual machines (VMs) hosted at the computer 1502. Further, the operating system 1530 can provide a runtime environment for the applications 1532, such as a Java runtime environment or the.NET framework. A runtime environment is a consistent execution environment that allows the applications 1532 to run on any operating system that includes the runtime environment. Similarly, the operating system 1530 can support containers, and the applications 1532 can be in the form of containers, which are lightweight, independent, executable software packages that include, for example, code, a runtime, system tools, system libraries, and settings for an application.

[0250] Further, the computer 1502 can be equipped with a security module, such as a Trusted Processing Module (TPM). For example, using a TPM, a boot component hashes the next boot component by time and waits for a match of the result with a secure value before loading the next boot component. This process can occur at any layer in the code execution stack of the computer 1502, for example, applied to an application execution layer or an operating system (OS) kernel layer, thereby enabling security of any code execution layer.

[0251] A user entity can enter commands and information into the computer 1502 through one or more wire / wireless input devices, e.g., a keyboard 1538, a touch screen 1540, and a pointing device, such as a mouse 1542. Other input devices (not shown) can include a microphone, an infrared (IR) remote control, a radio frequency (RF) remote control, or other remote control, a joystick, a virtual reality controller and / or virtual reality headset, a gamepad, a stylus, an image input device (e.g., a camera), a gesture sensor input device, a visual movement sensor input device, an emotion or facial detection device, a biometric identification input device (e.g., a fingerprint or iris scanner), etc. These and other input devices are often connected to the processing unit 1504 through an input device interface 1544 that can be coupled to the system bus 1508, but these and other input devices can be connected by other interfaces (e.g., a parallel port, a serial port, an IEEE 1394 serial port, a game port, a USB port, an IR interface, a Bluetooth® interface, etc.).

[0252] A monitor 1546 or other type of display device can also be connected to the system bus 1508 via an interface, such as a video adapter 1548. In addition to the monitor 1546, a computer typically includes other peripheral output devices (not shown), such as speakers, printers, etc.

[0253] The computer 1502 can operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 1550. The remote computer 1550 can be a workstation, a server computer, a router, a personal computer, portable computer, microprocessor-based entertainment appliance, a peer device or other common network node, and typically includes many or all of the elements described relative to the computer 1502, although, for purposes of brevity, only a memory / storage device 1552 is illustrated. The logical connections depicted include wire / wireless connectivity to a local area network (LAN) 1554 and / or larger networks, e.g., a wide area network (WAN) 1556. Such LAN and WAN networking environments are commonplace in offices and companies and facilitate enterprise-wide computer networks, such as intranets, all of which can connect to a global communications network, e.g., the Internet.

[0254] When used in a LAN networking environment, the computer 1502 can be connected to the local network 1554 through a wire / wireless communication network interface or adapter 1558. The adapter 1558 can facilitate wire or wireless communication to the LAN 1554, which can also include a wireless access point (AP) disposed thereon for communicating with the adapter 1558 in a wireless mode.

[0255] ​When used in a LAN or WAN networking environment, the computer 1502 can be connected to the LAN 1554 through a network adapter 1558. When used in a WAN networking environment, the computer 1502 can typically include a modem 1560 or other means for establishing communications over the WAN 1556, such as by telephone link or cable. The modem 1560, which can be internal or external, can be connected to the system bus 1508 via the input device interface 1544. In a networked environment, program modules depicted relative to the computer 1502, or portions thereof, can be stored in the remote memory storage device 1552. It will be appreciated that the network connections shown are examples and other means of establishing a communications link between the computers can be used.

[0256] When used in a LAN or WAN networking environment, the computer 1502 can access cloud storage systems or other network-based storage systems in addition to or as an alternative to external storage devices 1516 as described above. Generally, connections between the computer 1502 and a cloud storage system can be established, for example, by the adapter 1558 or the modem 1560 over the LAN 1554 or the WAN 1556, respectively. In connecting the computer 1502 to an associated cloud storage system, the external storage interface 1526 can manage storage provided by the cloud storage system with the aid of the adapter 1558 and / or the modem 1560, as with other types of external storage. For example, the external storage interface 1526 can be configured to provide access to cloud storage sources as if those sources were physically connected to the computer 1502.

[0257] The computer 1502 can operate in a networked environment using logical connections to one or more other computers, such as computing devices 1522 and 1524. The other computing devices 1522 and 1524 can be located locally or in a remote environment. These logical connections can be achieved through a communication adapter 1558, which is connected to a local network 1554 to which the computer 1502 is also connected. The logical connections can be achieved using a communication modem 1560 or other means suitable for establishing communications over the WAN 1556, such as by telephone link or cable. The modem 1560, which can be internal or external, can be connected to the system bus 1508 via the input device interface 1544. In a networked environment, program modules depicted relative to the computer 1502, or portions thereof, can be stored in the remote memory storage devices 1522 and 1524. It will be appreciated that the network connections shown are examples and other means of establishing a communications link between the computers can be used. Wireless technology. Thus, communication can be established with a defined structure as in existing networks, or simply self-organizing communication between at least two devices.

[0258]

[0259] The embodiments described herein can be directed to one or more of the systems, methods, apparatus, and / or computer program products described herein at any possible technical detail level of integration. A computer program product can include a computer-readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of one or more of the embodiments described herein. The computer-readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer-readable storage medium can be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, and / or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer-readable storage medium can also include the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and / or any suitable combination of the foregoing. A computer-readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves and / or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), and / or electrical signals transmitted through a wire / circuitry.

[0260] The computer readable program instructions described herein can be downloaded to respective computing / processing devices and / or transported across a network from a computer readable storage medium or to external computer or external storage device via a network (for example, the Internet, a local area network, a wide area network and / or a wireless network). The network can comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and / or edge servers. A network adaptation card or network interface in each computing / processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing / processing device. Computer readable program instructions for carrying out operations of one or more embodiments described herein can be in assembly

[0261] The computer readable program instructions can also be loaded onto a computer, other programmable data processing apparatus, and / or other device to cause a series of operational acts to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, and / or other device implement the functions / acts specified in the flowchart and / or block diagram block or blocks.

[0262] The computer readable program instructions can also be loaded onto a computer, other programmable data processing apparatus, and / or other device to cause a series of operational acts to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, and / or other device implement the functions / acts specified in the flowchart and / or block diagram block or blocks.

[0263] While the subject matter has been described above in the general context of computer- executable instructions of a computer and / or computer programs products the subject matter also works in parallel with, and / or is implemented at least in part by, one or more other program modules that can also be implemented using computer-executable instructions. Generally, program modules include routines, programs, components, and / or data structures that perform particular tasks and / or implement particular abstract data types. Moreover, those skilled in the art will appreciate that the foregoing can be practiced with other computer system configurations, including single-processor or multiprocessor computer systems, minicomputers, mainframe computers, as well as computers, hand-held computing devices (e.g., PDA, phone), and / or microprocessor-based or programmable consumer and / or industrial electronics with computers, hand-held devices, and the like. The illustrated aspects can also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. However, if not all of the aspects of one or more embodiments described herein are practiced in a distributed computing environment, one or more of the aspects can be practiced on stand-alone computers. In a distributed computing environment, program modules can be located in both local and remote memory storage devices.

[0264] As used in this application, the terms "component," "system," "platform," and / or "interface" can refer to and / or can include a computer-related entity or an entity that is related to an operational machine with one or more specific functionalities. The entities described herein can be either hardware, a combination of hardware and software, software, or software in execution. For example, a component can be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and / or a computer. By way of illustration, both an application running on a server and the server can be a component. One or more components can reside within a process and / or thread of execution and a component can be localized, co-resident, and / or distributed amongst one or more computer(s) and / or processes and / or threads of execution. In another example, a component can be a virtual machine executing in a cloud computing system. As another example, a component can be a device with specific functionality provided by mechanical parts operated by electric or electronic circuitry that is operated by a software and / or firmware application running in a processor. In this instance, the processor can be internal or external to the device and can execute at least a part of the software and / or firmware application, such as a computer program, that provides the specific functionality at least in part. As yet another example, a component can be an apparatus that provides specific functionality through electronic components without mechanical parts, wherein the electronic components can include a processor and / or other means to execute at least a part of a software and / or firmware application that provides the specific functionality at least in part. In one aspect, a component can emulate an electronic component via, for example, a virtual machine within a cloud computing system.

[0265] In addition, the term "or" is intended to mean an inclusive "or" rather than an exclusive "or." That is, unless specified otherwise, or clear from context, "X employs A or B" is intended to mean any of the natural inclusive permutations. That is, if X employs A; X employs B; or X employs both A and B, then "X employs A or B" is satisfied under any of the foregoing instances. Moreover, articles "a" and "an" as used in the subject specification and annexed drawings should generally be construed to mean "one or more" unless specified otherwise or clear from context to be directed to a singular form. As used herein, the terms "example" and / or "exemplary" indicate serving as an example, instance, or illustration. For the avoidance of doubt, the subject matter of the present disclosure is not limited to the examples provided herein. Moreover, any aspect or design described herein as "example" and / or "exemplary" is not necessarily to be construed as preferred or advantageous over other aspects or designs, nor is it meant to preclude equivalent example structures and techniques known to those of ordinary skill in the art.

[0266] As used in this description, the term "processor" can refer to substantially any processing unit and / or device comprising virtually any combination of a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), a controller, a microcontroller, a microprocessor, a microcomputer, a microapplication specific integrated circuit (microASIC), a field programmable gate array (FPGA), a programmable logic controller (PLC), a complex programmable logic device (CPLD), a discrete gate or transistor logic component, a discrete hardware component, and / or any combination thereof. In addition, a processor can refer to an integrated circuit, an application specific integrated circuit (ASIC), a digital signal processor (DSP), a field programmable gate array (FPGA), a programmable logic controller (PLC), a complex programmable logic device (CPLD), a discrete gate or transistor logic component, a discrete hardware component, and / or any combination thereof designed to perform the functions described herein. Further, a processor can utilize nanoscale architectures, such as but not limited to, transistors, switches, and / or gates based on molecules and quantum dots in order to optimize space usage and / or enhance the performance of related equipment. A processor can be implemented as a combination of computing processing units.

[0267] In this document, terms such as "store," "storage," "data store," "data storage," "database," and substantially any other information storage component relevant to operation and functionality of a component are utilized to refer to "memory components," entities embodied in a "memory," or components including memory. Memory and / or memory components described herein can be volatile memory or nonvolatile memory, or can include both volatile and nonvolatile memory. By way of illustration, and not limitation, nonvolatile memory can include read only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable ROM (EEPROM), flash memory, and / or nonvolatile random access memory (RAM) (e.g., ferroelectric RAM (FeRAM)). Volatile memory can include RAM, which, as examples, can be used as external cache memory. By way of illustration and not limitation, RAM can be provided by a number of different types of memory, such as synchronous RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), synchronous link DRAM (SLDRAM), direct Rambus RAM (DRRAM), direct Rambus dynamic RAM (DRDRAM), and / or Rambus dynamic RAM (RDRAM). Additionally, memory components of systems and / or computer-implemented methods described herein are intended to include, without being limited to, these and / or any other suitable types of memory.

[0268] The foregoing summary is inclusive of only examples of systems and computer-implemented methods. Of course, not every conceivable combination of components and / or computer-implemented methods can be described for purposes of describing one or more embodiments, but one of ordinary skill in the art can recognize many further combinations and / or permutations of one or more embodiments are possible. Moreover, with respect to the use of the terms “comprising,” “having,” “including,” and the like, these terms are meant to be inclusive in a manner that the terms are interpreted when used in a dependent claim.

[0269] The description of various embodiments can use the phrases “embodiment,” “various embodiments,” “one or more embodiments,” and / or “some embodiments,” each of which can refer to one or more of the same or different embodiments.

[0270] The description of various embodiments has been presented for purposes of illustration but is not intended to be exhaustive or limited to the embodiments described. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used was chosen to best explain the principles of the embodiments, the practical application, and / or technology improvements over the technology found in the marketplace, and to enable others of ordinary skill in the art to understand the described embodiments.

Claims

1. A system comprising: a memory storing computer-executable components; and a processor executing the computer-executable components stored in the memory, wherein the computer-executable components comprise: an identifying component that identifies a contour line applied between regions of a pixelated image; and a subdividing component that subdivides the contour line into a set of barrier lines based on a resolution of a contour line pixel of the contour line.

2. The system of claim 1, wherein the resolution is performed according to a number of neighboring pixels contiguous with the contour line pixel.

3. The system of claim 1, further comprising: a convolving component that convolves a filter kernel over the pixelated image, thereby determining the number of neighboring pixels contiguous with the contour line pixel.

4. The system of claim 1, further comprising: a classifying component that classifies a contour line pixel as an endpoint pixel at an endpoint of a barrier line in the set of barrier lines, or as an intersection pixel at an intersection of at least a pair of barrier lines in the set of barrier lines, wherein the number of neighboring pixels contiguous with the contour line pixel is not two.

5. The system of claim 1, further comprising: a classifying component that generates a data structure comprising a data label of the contour line pixel as a path pixel, an endpoint pixel, or an intersection pixel.

6. The system of claim 1, further comprising: a generating component that generates a modified pixelated image highlighting the set of barrier lines based on the contour line, wherein a first barrier line in the set of barrier lines separates a first pair of materials of a sample, and wherein a second barrier line in the set of barrier lines separates a second pair of materials of the sample, the second pair of materials having at least one material different from a material in the first pair of materials.

7. The system of claim 1, wherein the pixelated image comprises a cross-sectional view at a cross-section of a sample, and wherein the regions correspond to different materials of the sample.

8. The system of claim 1, further comprising: an executing component that compares a first portion of a barrier line in the set of barrier lines of the pixelated image to a corresponding second portion of a corresponding second barrier line of a second pixelated image, wherein the executing component further employs a pixel mapping that determines a pixel-based location difference of the second portion compared to the first portion.

9. A computer-implemented method comprising: subdividing, by a system operatively coupled to a processor, a contour line applied between regions of a pixelated image into a set of barrier lines; and generating, by the system, data for the subdividing by resolving a contour line pixel of the contour line.

10. The computer-implemented method of claim 9, further comprising: The resolving is performed according to a number of adjacent pixels contiguous to the contour line pixel.

11. The computer-implemented method of claim 9, further comprising: convolving, by the system, a filter kernel over the pixelated image, thereby determining the number of adjacent pixels contiguous to the contour line pixel.

12. The computer-implemented method of claim 9, further comprising: classifying, by the system, contour line pixels as either end point pixels at end points of a barrier line of the set of barrier lines, or intersection pixels at intersections of at least one pair of barrier lines of the set of barrier lines, where the number of adjacent pixels contiguous to the contour line pixel is not two.

13. The computer-implemented method of claim 9, further comprising: generating, by the system, a data structure comprising a data label of the contour line pixel as either a path pixel, an end point pixel, or an intersection pixel.

14. The computer-implemented method of claim 9, further comprising: generating, by the system, a modified pixelated image highlighting the set of barrier lines based on the contour lines, where a first barrier line of the set of barrier lines separates a first pair of materials of a sample, and where a second barrier line of the set of barrier lines separates a second pair of materials of the sample, the second pair of materials having at least one material different from a material in the first pair of materials.

15. The computer-implemented method of claim 9, wherein the pixelated image comprises a cross-sectional view at a cross-section of a sample, and wherein the regions correspond to different materials of the sample.

16. The computer-implemented method of claim 9, further comprising: comparing, by the system, a first portion of a barrier line of the set of barrier lines of the pixelated image to a corresponding second portion of a corresponding second barrier line of a second pixelated image; and employing, by the system, a pixel mapping that determines a pixel-based location difference of the second portion compared to the first portion.

17. A computer program product facilitating a process for image contour line extraction, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, and the program instructions executable by a processor to cause the processor to: identify, by the processor, a set of contour lines applied between regions of a pixelated image; and subdivide, by the processor, the set of contour lines into a set of barrier lines based on a resolving of a contour line pixel of the set of contour lines.

18. The computer program product of claim 17, wherein the program instructions are further executable by the processor to cause the processor to: perform the resolving according to a number of adjacent pixels contiguous to the contour line pixel.

19. The computer program product of claim 17, wherein the program instructions are further executable by the processor to cause the processor to: convolving, by the processor, a filter kernel over the pixelated image to determine a number of neighboring pixels contiguous to the contour line pixel.

20. The computer program product of claim 17, wherein the program instructions are further executable by the processor to cause the processor to: classify, by the processor, a contour line pixel as an endpoint pixel at an endpoint of one of the set of barrier lines, or an intersection pixel at an intersection of at least one pair of the set of barrier lines, where the number of neighboring pixels contiguous to the contour line pixel is not two.