Block region adjacency map calculation via pixel region adjacency map

By introducing pixel region adjacency graph (PRAG) and minimum spanning forest (MST) processing, the computational resource consumption and inconsistency problems of the marker-based watershed algorithm in block image segmentation are solved, and efficient and accurate segmentation of large images is achieved.

CN120655672APending Publication Date: 2025-09-16FEI CO
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510289380.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2024-03-14
Filing Date
2025-03-12
Publication Date
2025-09-16

AI Technical Summary

Technical Problem

Existing techniques have difficulty in reliably applying marker-based watershed algorithms in a patch context for the segmentation of large images, resulting in excessive consumption of computational resources and inconsistent segmentation results.

Method used

By designing a new graph structure - pixel region adjacency graph (PRAG), image blocks are converted into pixel adjacency graph (PAG), and region adjacency graph (RAG) is generated through minimum spanning forest (MST) and labeling processing. RAG is calculated in a block-by-block manner, which solves the problems of computational resource consumption and segmentation inconsistency in the block context.

Benefits of technology

It achieves efficient calculation of RAG in the block context, reduces computing resource consumption, ensures the accuracy and continuity of marker-based watershed segmentation, and is suitable for segmentation tasks of large images.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120655672A_ABST
    Figure CN120655672A_ABST
Patent Text Reader

Abstract

A block region adjacency map is calculated via the pixel region adjacency map. Systems or techniques are provided for facilitating partitioned region adjacency map computation via a pixel region adjacency map. In various embodiments, the system may access an image generated by a scientific instrument. In various aspects, the system may perform marker-based watershed segmentation on a region adjacency map of the image, where the region adjacency map may be constructed from a plurality of pixel region adjacency maps respectively corresponding to a plurality of tiles of the image.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims priority to U.S. non-provisional application No. 18 / 605,200, filed on March 14, 2024, the disclosure of which is incorporated herein by reference in its entirety. Background Art

[0003] Various scientific instruments can capture images of samples. It may be desirable to segment such images. As the size of such images increases, segmentation can become increasingly difficult. Summary of the Invention

[0004] The following presents a summary of the invention to provide a basic understanding of one or more embodiments. This summary is not intended to identify key or important elements, or to delineate any scope of a particular embodiment or any scope of the claims. Its sole purpose is to present the concepts in a simplified form as a prelude to a more detailed description that will be presented later. In one or more embodiments described herein, an apparatus, system, computer-implemented method, device, or computer program product is described that facilitates computation of a tiled region adjacency graph via a pixel region adjacency graph.

[0005] According to one or more embodiments, a system is provided. The system may include a non-transitory computer-readable memory that can store computer-executable components. The system may also include a processor that can be operably coupled to the non-transitory computer-readable memory and can execute the computer-executable components stored in the non-transitory computer-readable memory. In various embodiments, the computer-executable components may include an access component that can access images generated by a scientific instrument. In various aspects, the computer-executable components may include an execution component that can perform a marker-based watershed segmentation on a region adjacency graph of the image, wherein the region adjacency graph can be constructed from a plurality of pixel region adjacency graphs corresponding to a plurality of tiles of the image, respectively.

[0006] According to one or more embodiments, a computer-implemented method is provided. In various embodiments, the computer-implemented method may include accessing, by a device operatively coupled to a processor, an image generated by a scientific instrument; and performing, by the device, a marker-based watershed segmentation on a region adjacency graph of the image, wherein the region adjacency graph may be constructed from a plurality of pixel region adjacency graphs corresponding to a plurality of tiles of the image, respectively.

[0007] According to one or more embodiments, a computer program product is provided for facilitating computation of a tiled region adjacency graph via a pixel region adjacency graph. In various embodiments, the computer program product may include a non-transitory computer-readable memory containing program instructions. In various aspects, the program instructions are executable by a processor to cause the processor to: access an image captured by a charged particle microscope; and construct a region adjacency graph for the image in a tile-by-tile manner based on a plurality of pixel region adjacency graphs. BRIEF DESCRIPTION OF THE DRAWINGS

[0008] Various embodiments will be readily understood by the following detailed description in conjunction with the accompanying drawings. For ease of description, like reference numerals denote like structural elements. The drawings illustrate embodiments by way of example and not by way of limitation. These drawings are not necessarily drawn to scale.

[0009] Figure 1 An example non-limiting block diagram of a scientific instrument module is illustrated in accordance with various embodiments described herein.

[0010] Figure 2 An example non-limiting flow chart illustrating a computer-implemented method according to various embodiments described herein.

[0011] Figure 3 Illustrated is a block diagram of an example non-limiting system that facilitates computation of a tile region adjacency graph via a pixel region adjacency graph in accordance with one or more embodiments described herein.

[0012] Figure 4 Illustrated is a block diagram of an example non-limiting system including a plurality of tiles that facilitates tile region adjacency graph computation via a pixel region adjacency graph according to one or more embodiments described herein.

[0013] Figures 5 to 7 An example non-limiting block diagram of a plurality of tiles is illustrated according to one or more embodiments described herein.

[0014] Figure 8 Illustrated is a block diagram of an example non-limiting system including a region adjacency graph that facilitates tiled region adjacency graph computation via a pixel region adjacency graph according to one or more embodiments described herein.

[0015] Figures 9 to 26 An example non-limiting block diagram illustrating the construction of a region adjacency graph according to one or more embodiments described herein.

[0016] Figure 27Illustrated is a block diagram of an example non-limiting system including one or more marker-based watershed segmentation basins that facilitates tile region adjacency graph computation via pixel region adjacency graphs according to one or more embodiments described herein.

[0017] Figures 28 to 30 An example non-limiting algorithm that facilitates computation of a tile region adjacency graph via a pixel region adjacency graph in accordance with one or more embodiments described herein is illustrated.

[0018] Figure 31 Illustrated is an example non-limiting block diagram of a graphical user interface that may be used to perform some or all of the methods or techniques disclosed herein, according to various embodiments described herein.

[0019] Figure 32 Illustrated is an example non-limiting block diagram of a computing device that can perform some or all of the methods or techniques disclosed herein, according to various embodiments described herein.

[0020] Figure 33 Illustrated is an example, non-limiting block diagram of a scientific instrument support system in which some or all of the methods or techniques disclosed herein may be performed, according to various embodiments described herein.

[0021] Figure 34 A block diagram illustrating an example non-limiting operating environment in which one or more embodiments described herein may be facilitated.

[0022] Figure 35 An example networking environment is illustrated that is operable to perform various implementations described herein. DETAILED DESCRIPTION

[0023] The following detailed description is illustrative only and is not intended to limit the embodiments and / or the application or uses of the embodiments. In addition, there is no intention to be bound by any express or implied information presented in the previous background or summary or detailed description sections.

[0024] One or more embodiments will now be described with reference to the accompanying drawings, wherein like reference numerals are used throughout to refer to like elements. 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. However, it will be apparent that in various circumstances, one or more embodiments may be practiced without these specific details.

[0025] The various operations can be described as a plurality of discrete actions or operations in a manner that is most helpful for understanding the subject matter disclosed herein. However, the described order should not be interpreted as implying that these operations must rely on the order. Specifically, these operations can be performed in an order different from the order presented. The described operations can be performed in an order different from the described embodiment. Various additional operations can be performed, or the described operations can be omitted in additional embodiments.

[0026] Although some elements may be referred to in the singular (e.g., "processing device"), any appropriate element may be represented by multiple instances of that element, and vice versa. For example, a set of operations described as being performed by a processing device may be implemented with different ones of those operations being performed by different processing devices. As used herein, the phrase "based on" should be understood to mean "based, at least in part, on" unless otherwise specified.

[0027] A scientific instrument (e.g., a mass spectrometer, a charged particle microscope) can be any suitable computerized device that can capture or generate electronic measurements (e.g., can capture or generate spectral images or component spectra) in a scientific, laboratory, research, or clinical operating context. To facilitate the capture or generation of such electronic measurements, a scientific instrument can utilize a complex arrangement of actuatable components (e.g., ion sources, ion lenses, heaters, coolers, fluid valves, fluid pumps, circuit switches, sample stages, apertures), sensors (e.g., ion detectors, voltmeters, thermistors, potentiometers, manometers), or consumables (e.g., carrier fluids, calibrants, filters).

[0028] Various scientific instruments (e.g., scanning or transmission electron microscopes, electron energy loss microscopes) can utilize their constituent actuatable components to capture images of samples (e.g., electron tomography images, X-ray tomography images, confocal microscopy images). In some cases, those images can be two-dimensional arrays of pixels. In other cases, those images can alternatively be three-dimensional arrays of voxels. In any case, these images can be very large, depending on which specific imaging modality is used to capture them. For example, scientific instruments often generate images ranging in size from tens to hundreds of gigabytes.

[0029] It is often desirable to perform segmentation on such images in order to extract or identify desired structural information about any sample illustrated in such images. Although convolutional neural networks have demonstrated remarkable success in various image segmentation tasks, there are various situations in which non-machine learning segmentation algorithms are preferred or desired. In practice, such non-machine learning segmentation algorithms are more transparent and interpretable (e.g., the activation maps generated by the hidden layers of a convolutional neural network generally do not carry easily understood or interpretable meanings) and do not require the collection or annotation of training data (e.g., very large amounts of training data may be required for a convolutional neural network to achieve a satisfactory level of segmentation accuracy). One such non-machine learning segmentation algorithm is the marker-based watershed algorithm.

[0030] Unfortunately, marker-based watershed algorithms have been found to consume excessive computational resources (e.g., processing power, memory storage, computation time) when executed on large images generated by scientific instruments. For various other non-machine learning segmentation algorithms, this excessive consumption of computational resources can be mitigated via tile partitioning: that is, by splitting a large image into tiles, applying any algorithm in question locally on each tile, and then merging the local algorithm results from each tile into a global algorithm result for the large image. However, tile partitioning cannot currently be reliably used with marker-based watershed algorithms. Specifically, it has been demonstrated that there is often a discrepancy between the local selection of marker-based watershed lines when executing a marker-based watershed algorithm on an individual tile, and the global selection of marker-based watershed lines when executing a marker-based watershed algorithm on a given image in the absence of tiles. In other words, marker-based watershed algorithms have been found to produce inconsistent segmentation basins when used in conjunction with tile partitioning (e.g., local marker-based watershed lines or boundaries that should be continuous may become discontinuous after merging tiles). These differences or inconsistencies can be referred to as “marker-based watershed leakage.”

[0031] Rather than applying the marker-based watershed algorithm to the large image as a whole (e.g., which consumes too many resources) or to individual tiles of the large image (e.g., which results in leakage), the marker-based watershed algorithm can alternatively be performed on a simplified version of the large image. Specifically, it has been found that performing the marker-based watershed algorithm on superpixels corresponding to a region adjacency graph (RAG) of the large image can facilitate accurate segmentation without excessive consumption of computational resources. However, because scientific instruments typically generate images of enormous size, whatever computerized workstations support or are otherwise associated with these scientific instruments are often capable of analyzing or manipulating the images only in a tiled manner (e.g., such workstations do not have sufficient processing power to perform any type of computationally intensive operations on images occupying tens or hundreds of gigabytes of storage). Unfortunately, the prior art is unable to generate RAGs for large images in a tiled context.

[0032] Therefore, systems or techniques that can ameliorate one or more of these technical problems may be desirable.

[0033] The various embodiments described herein can solve one or more of these technical problems. One or more embodiments described herein may include a system, a computer-implemented method, an apparatus, or a computer program product that can facilitate the computation of a tile region adjacency graph via a pixel region adjacency graph. In other words, the inventors of the various embodiments described herein have devised various techniques for computing or otherwise generating RAGs for large images in a tile context. Specifically, the inventors have devised a new type of graph structure, referred to as a pixel region adjacency graph (PRAG), and the various embodiments described herein can utilize this new type of graph structure to create RAGs for tiled images. More specifically, the various embodiments described herein can involve converting each tile of a given image into a pixel adjacency graph (PAG), and converting each PAG into a minimum spanning forest, the trees of which are labeled or designated as boundary trees or internal trees. A boundary tree (also referred to as a boundary region) can be any tree having at least one node located on the boundary of a tile, while an internal tree (also referred to as an internal region) can be any tree having no nodes located on the boundary of a tile. In various aspects, the various embodiments described herein may also involve converting each minimum spanning forest into a PRAG by maintaining or preserving the boundary regions of the minimum spanning forest and by replacing each interior region of the minimum spanning forest with a single corresponding node. In various instances, for any two tiles adjacent to each other, at least some of the boundary regions of the PRAGs of the two tiles may be merged together to create new interior regions, and these new interior regions may be replaced by the corresponding single nodes described above. When all of the PRAGs are merged together, the resulting graph structure may have no remaining boundary regions and may therefore be considered to be a RAG for a given image. Therefore, marker-based watershed segmentation may be performed on the RAG. In this way, the various embodiments described herein may be considered to facilitate computing or operating on RAGs in a tiled context or in a tile-by-tile manner, something that the prior art does not know how to accomplish.

[0034] The various embodiments described herein may be considered to be computerized tools (e.g., any suitable combination of computer-executable hardware or computer-executable software) that can facilitate computation of a tile region adjacency graph via a pixel region adjacency graph. In various aspects, such computerized tools may include an access component, a tile component, a graph component, or an execution component.

[0035] In various embodiments, a scientific instrument may be present. In various aspects, the scientific instrument may be any suitable computerized device that can electronically capture or generate an image of any suitable sample (e.g., a thin section). As some non-limiting examples, the scientific instrument may be a scanning electron microscope, a transmission electron microscope, or an electron energy loss microscope.

[0036] In various aspects, an image can illustrate or otherwise visually depict any suitable physical structure or physical property of a sample or any suitable portion thereof. In some instances, an image can be a two-dimensional array of pixels, where each pixel has a corresponding intensity value. In other instances, an image can alternatively be a three-dimensional array of voxels, where each voxel has a corresponding intensity value.

[0037] In any case, it may be desirable to perform a marker-based watershed segmentation on an image. However, the image may be large or may otherwise consume a large amount of computerized memory or storage space (e.g., the image may be tens to hundreds of gigabytes in size). Therefore, it may be desirable to perform such a marker-based watershed segmentation on the image in a tile-by-tile manner. The computerized tools described herein may facilitate such a tile-by-tile marker-based watershed segmentation.

[0038] In various embodiments, the access component of the computerized tool can electronically access the image. For example, the access component can receive, retrieve, or otherwise obtain the image from any suitable centralized or decentralized data structure (e.g., a graph data structure, a relational data structure, a hybrid data structure). As a non-limiting example, the access component can receive, retrieve, or otherwise obtain the image from the scientific instrument itself. In any case, the access component can be considered a conduit through which other components of the computerized tool can electronically interact with the image (e.g., read, write, edit, copy, manipulate the image).

[0039] In various embodiments, a tile component of a computerized tool can electronically decompose an image into a plurality of tiles. In various aspects, a tile of an image can be any suitable contiguous collection of pixels (or voxels, as the case may be) of the image. In other words, any two pixels (or voxels) of a tile can be: adjacent to each other; or coupled together by a chain of one or more other adjacent pixels (or voxels) also in the tile. In other words, a tile can be considered a cohesive multi-pixel (or multi-voxel) segment, section, or piece of an image. In various examples, a tile can exhibit any suitable shape (e.g., its pixels or voxels can be arranged so that the tile has a rectilinear or triangular shape) and any suitable size (e.g., a tile can be composed of any suitable number of pixels or voxels). In various cases, any of the multiple tiles can have the same or different shapes or sizes. In various aspects, the multiple tiles can be disjoint. That is, it may be the case that none of the multiple tiles overlap. In such cases, the multiple tiles can be considered to fit together like pieces of a jigsaw puzzle to form an image. In other aspects, the multiple tiles can alternatively be non-disjoint, but still individually unique. That is, it may be the case that at least some of the multiple tiles partially overlap each other. In such cases, the multiple tiles can be considered to fit together like pieces of a jigsaw puzzle to form an image, provided that the overlapping portions of the multiple tiles are not double-counted. In any case, each of the multiple tiles can be smaller than the image itself (e.g., in some cases, one or more orders of magnitude smaller). Therefore, analysis or manipulation of individual tiles in the multiple tiles can be considered to be less computationally intensive than analysis or manipulation of the image as a whole.

[0040] In various embodiments, a graph component of a computerized tool can electronically generate a RAG for an image. In various aspects, the graph component can accomplish this generation by utilizing a plurality of PRAGs, each corresponding to a plurality of tiles of the image. In other words, the graph component can construct a corresponding PRAG for each of the plurality of tiles, and the component can construct the RAG by combining all of those PRAGs.

[0041] More specifically, for each given tile in a plurality of tiles, the graph component can convert the given tile into a pixel adjacency graph (PAG). Specifically, a PAG can be a graph data structure including nodes and edges. In various aspects, each pixel (or voxel) of a given tile can be represented by a corresponding node of the PAG, and therefore the value of each node can be equal to the intensity value of its corresponding pixel (or voxel). In various instances, the PAG can include a unique edge between any two nodes representing adjacent pixels (or adjacent voxels) of the tile. In various cases, nearest neighbor adjacency can be achieved for pixels. That is, a particular pixel can be considered to be adjacent to at most four other pixels: any pixel immediately above the particular pixel (if any); any pixel immediately below the particular pixel (if any); any pixel immediately to the right of the particular pixel (if any); and any pixel immediately to the left of the particular pixel (if any). However, in other cases, next-nearest neighbor adjacency can be achieved for pixels. That is, a particular pixel may be considered to be adjacent to at most eight other pixels: any pixel immediately above the particular pixel (if any); any pixel immediately below the particular pixel (if any); any pixel immediately to the right of the particular pixel (if any); any pixel immediately to the left of the particular pixel (if any); any pixel immediately above and to the right of the particular pixel (if any); any pixel immediately above and to the left of the particular pixel (if any); any pixel immediately below and to the right of the particular pixel (if any); and any pixel immediately below and to the left of the particular pixel (if any). Similarly, nearest neighbor adjacency may be implemented for voxels such that any particular voxel may be adjacent to at most six other voxels (e.g., above, below, front, back, left, and right). In other examples, next-nearest neighbor adjacency may be implemented for voxels such that any particular voxel may be adjacent to at most twenty-six other voxels (e.g., a particular voxel may be considered to be the center of a 3 by 3 by 3 cube of voxels, and each of the twenty-six other voxels in the 3 by 3 by 3 cube may be considered to be adjacent to the particular voxel). It will be appreciated that any other intermediate definition of adjacency may be used, such that any given pixel (or voxel) may be considered to be adjacent to not just its nearest neighbor, but to fewer than all of its next nearest neighbors. In any case, each pair of nodes of the PAG representing adjacent pixels (or adjacent voxels) may be coupled by a corresponding edge, and the weight of the edge may be equal to any suitable function of the values ​​of the pair of nodes (e.g., it may be equal to the inverse of the absolute difference in the intensity values ​​of the adjacent pixels or adjacent voxels represented by the pair of nodes).

[0042] In various aspects, for any given PAG, a graph component may convert the given PAG into a minimum spanning tree (MST). In various instances, the graph component may achieve this by applying or otherwise executing Boruvka's algorithm (or any other suitable MST finding algorithm) to the given PAG. In various cases, the MST for a given PAG may contain all of the nodes of the given PAG, but the MST may contain only a strict subset of the edges of the given PAG. Specifically, the MST may include only any one edge of the given PAG that results in the following: for each pair of nodes in the MST, there is a path coupling the pair of nodes in the MST; there are no cycles (e.g., cyclic paths) in the MST; and the sum of the weights of the edges in the MST is minimized.

[0043] In various aspects, for any given MST, the graph component can convert the given MST into a minimum spanning forest (MSF). In various instances, the graph component can perform this conversion for any desired set of roots. In various cases, a root can be any node of a given MST that is designated as a root node. It should be understood that a root can also be referred to as a label. In some aspects, root or label designation can be facilitated in any suitable manner, such as via an extended minimum operation, via random selection, or via any other suitable paradigm. In any case, when a set of roots is given, the graph component can convert the given MST into an MSF. Specifically, for each pair of roots in a given MST, the graph component can identify the path in the MST that couples the pair of roots, and the graph component can delete any edge with the highest or maximum weight on the path. When this deletion is performed for each pair of roots, the remaining portion of the given MST can be considered to be an MSF. In various aspects, an MSF can contain all nodes of a given MST, but an MSF can only contain a strict subset of the edges of a given MST. Specifically, MSF may contain multiple trees such that: each of the multiple trees contains exactly one root in the root set; for any two nodes that belong to the same tree, there is a path coupling the two nodes in MSF; and for any two nodes that do not belong to the same tree, there is no path coupling the two nodes in MSF.

[0044] It will be appreciated that any suitable technique may be implemented to track which nodes belong to which trees of the MSF. As a non-limiting example, each unique or distinct tree of the MSF may be considered to have a corresponding identifier or name (e.g., Tree A, Tree B, Tree C), and each given node of the MSF may be assigned a corresponding label that indicates or specifies the identifier or name of the tree to which the given node belongs (e.g., a label indicating that node X belongs to tree A, a label indicating that node Y belongs to tree B, a label indicating that node Z belongs to tree C). It will be appreciated that such labels may be stored in any suitable electronic manner (e.g., they may be stored in an auxiliary table separate from the MSF).

[0045] In various instances, for any given MSF, a graph component may generate a labeled MSF. In various cases, the graph component may implement this as follows. For any tree in a given MSF, if the tree contains at least one node located on the boundary of any tile corresponding to the given MSF, the graph component may designate or label the tree as a boundary tree. On the other hand, for any tree in a given MSF, if the tree does not contain a node located on the boundary of any tile corresponding to the given MSF, the graph component may designate or label the tree as an internal tree. In any case, the labeled MSF may be considered to have the same trees as the given MSF, wherein some of such trees are labeled or otherwise designated as boundary trees, and other such trees are labeled or otherwise designated as internal trees. In other words, each tree of the labeled MSF may be considered to be labeled with its own corresponding identifier or name (e.g., Tree A, Tree B, Tree C), and each tree of the labeled MSF may also be considered to be labeled as a boundary tree or an internal tree (e.g., Tree A may be labeled as a boundary tree, Tree B may be labeled as a boundary tree, and Tree C may be labeled as an internal tree). Likewise, it should be understood that such labels and markings may be stored in any suitable electronic manner (eg, may be stored in one or more auxiliary tables separate from the marked MSF).

[0046] In various aspects, for any given labeled MSF, the graph component may generate a labeled MST. In various instances, the graph component may achieve this as follows. As described above, a given labeled MSF may be considered to be generated from a given MSF, which itself may be generated from a given MST based on a given set of roots. Specifically, based on the path coupling each pair of root nodes, the maximum weight edges may be deleted from a given MST to form a given MSF. In various cases, the graph component may reinsert those deleted edges into the given labeled MSF. Such reinsertion may be considered to convert the given labeled MSF into a labeled MST. Note that the labeled MST may be considered to contain the same nodes and edges that make up the boundary tree and internal tree of the given labeled MSF. However, edge reinsertion may result in those trees no longer being disconnected from each other. Therefore, rather than being called "trees," they may now be called "regions" (e.g., tree A may now be called region A, tree B may now be called region B, and tree C may now be called region C). That is, the boundary trees of the labeled MSF can now be referred to as the boundary regions of the labeled MST, and the internal trees of the labeled MSF can now be referred to as the internal regions of the labeled MST. Thus, the above labels indicating which nodes belong to which trees can now be thought of as indicating which nodes belong to which regions (e.g., node X belongs to region A, node Y belongs to region B, node Z belongs to region C), and the above flags designating each tree as a boundary tree or an internal tree can now be thought of as designating each region as a boundary region or an internal region instead.

[0047] In various aspects, for any given labeled MST, the graph component may convert the given labeled MST into a PRAG. In various instances, the graph component may accomplish this conversion by retaining the boundary regions of the given labeled MST and by compressing the interior regions of the given labeled MST into corresponding region nodes (also referred to as region-by-region nodes). More specifically, for each interior region of the given labeled MST, the graph component may replace the interior region with a single node. In various cases, the single node may be any one of the nodes of the interior region. For purposes of illustration or visualization, the single node may be positioned at or located at the geometric centroid of the interior region. In any case, the single node may be considered to represent or otherwise represent any spatial region covered by the interior region. Therefore, the single node may be referred to as a region node (or region-by-region node). After compressing all interior regions into corresponding region nodes, any remaining portion of the given labeled MST may be considered to be a PRAG. Specifically, a PRAG may contain all boundary regions of the given labeled MST, and a PRAG may contain corresponding region nodes instead of interior regions of the given labeled MST. Thus, some nodes of PRAG may represent individual pixels (e.g., nodes for boundary regions), while other nodes of PRAG may instead represent entire spatial regions (e.g., region nodes instead of interior regions). PRAG can therefore be considered a hybrid graph structure.

[0048] In this manner, the graph component can generate a corresponding PRAG for each of a plurality of tiles of an image. In various aspects, the graph component can merge all such PRAGs together, and the result of such merging can be considered a RAG for the image. More specifically, for any two tiles that are adjacent to each other (e.g., share a border), the graph component can combine the PRAGs of the two tiles. In various instances, such combining can involve: identifying which border is shared between the two tiles; identifying one or more boundary regions corresponding to the shared border from each of the two PRAGs; and inserting edges (e.g., zero-weight edges or minimum-weight edges) between adjacent, duplicated, or otherwise matched nodes of those identified boundary regions. Following such edge insertion, those identified boundary regions can now be considered one or more newly formed interior regions of the connection or union of the PRAGs of those two tiles. In various cases, the graph component may then compress those newly formed interior regions into corresponding region nodes as described above (e.g., in some aspects, such compression may involve re-performing various of the above-described actions on the merged or combined version of the two PRAGs, such as reapplying Boruvka's algorithm, removing maximum weight edges based on root designation, and marking boundary regions and interior regions). In any case, each time the graph component merges two or more adjacent PRAGs, the total cardinality of boundary regions across all PRAGs may be incrementally reduced. Once all PRAGs are merged together, the final result may be a graph data structure that does not contain boundary regions; rather, such a final graph data structure may contain only region nodes and their associated edges. In various aspects, such a final graph data structure may be considered a RAG of the image.

[0049] In this way, the map component can compute the RAG of the image in a tile-by-tile manner.

[0050] In various embodiments, the execution component of the computerized tool may electronically perform any suitable downstream analysis on the RAG of the image. As a non-limiting example, the execution component may perform a marker-based watershed segmentation on the RAG of the image, thereby generating one or more marker-based watershed segmentation basins corresponding to the image. In various aspects, it is noted that such marker-based watershed segmentation can be performed despite the potentially large size of the image. After all, the RAG of the image can be considered a smaller, simplified, less computationally intensive version of the image that can be analyzed or otherwise manipulated without undue consumption of computing resources. In various instances, the execution component may visually present the one or more marker-based watershed segmentation basins on any suitable computer screen or monitor. In various instances, the execution component may electronically send the one or more marker-based watershed segmentation basins to any other suitable computing device.

[0051] Thus, the computerized tools described herein may be considered to facilitate marker-based watershed image segmentation in a patch context. In various aspects, the computerized tools described herein may facilitate such marker-based watershed image segmentation by constructing RAGs based on PRAGs corresponding to image patches, respectively.

[0052] The various embodiments described herein can be used to solve problems that are highly technical in nature (e.g., facilitating computation of a block region adjacency graph via a pixel region adjacency graph), non-abstract, and cannot be performed by a human as a set of mental actions using hardware or software. Furthermore, some of the processes performed can be performed by a specialized computer (e.g., a scanning or transmission electron microscope) that performs the defined actions associated with marker-based watershed segmentation.

[0053] For example, such defined actions may include: accessing, by a device operatively coupled to a processor, an image generated by a scientific instrument; and performing, by the device, marker-based watershed segmentation on a region adjacency graph of the image, wherein the region adjacency graph is constructed from a plurality of pixel region adjacency graphs that respectively correspond to a plurality of patches of the image. In various aspects, such defined actions may also include: decomposing the image into multiple tiles by the device; generating, by the device, multiple pixel adjacency graphs based on the multiple tiles, wherein, for a first pixel adjacency graph corresponding to a first tile, nodes of the first pixel adjacency graph represent corresponding pixels or voxels of the first tile; generating, by the device (e.g., via a Boruvka algorithm), multiple minimum spanning forests based on the multiple pixel adjacency graphs, wherein, for the first minimum spanning forest corresponding to the first pixel adjacency graph, the first minimum spanning forest includes one or more boundary trees and one or more internal trees; generating, by the device, multiple pixel region adjacency graphs based on the multiple minimum spanning forests, wherein, for the first pixel region adjacency graph corresponding to the first minimum spanning forest, the first pixel region adjacency graph includes one or more boundary regions corresponding to the one or more boundary trees, respectively, and a set of region-wise nodes into which the one or more internal trees are compressed; and merging, by the device, the multiple pixel region adjacency graphs into the region adjacency graph by coupling boundary regions of adjacent tiles, relabeling such coupled boundary regions as new internal regions, and compressing such new internal regions into new region-wise nodes.

[0054] The action of this type of definition is inherently computerized. In fact, scientific instruments (such as charged particle microscopes or electron energy loss microscopes) are highly technical computerized devices that include specific computerized hardware (for example, temperature sensors, pressure sensors, voltage sensors, ion beam emitters, ion focusing lenses, mass analyzers, ion detectors, beam apertures, fluid valves). Without computers, scientific instruments and the operations performed thereby cannot be realized in any reasonable or feasible manner by human thinking or by humans with pen and paper. In addition, the images captured by scientific instruments (for example, electron tomography images, X-ray tomography images, confocal microscopy images) are arrays of pixels or voxels that depict or illustrate analysis samples together. Such images cannot be generated or captured in any reasonable or feasible manner by human thinking or by humans with pen and paper without computers. Further, watershed segmentation based on markers is a specific type of computing task that can be performed on the images produced by scientific instruments. In particular, watershed segmentation based on markers is an inherent computerized task in which the dividing lines or boundaries between different visual objects depicted in an image are determined based on the intensity values ​​of the pixels or voxels of the image (e.g., in some cases, the dividing lines or boundaries may be located between pixels or voxels). It is meaningless to discuss the computerized task of watershed image segmentation based on markers outside of a computational context. In addition, PAGs, RAGs, and the novel PRAGs described herein are data structures of a specific type used as an alternative computerized representation of an array of pixels or voxels. It is meaningless to discuss the creation or manipulation of PAGs, RAGs, or PRAGs outside of a computational context.

[0055] In addition, various embodiments described herein can be incorporated into actual application with the various teaching contents relevant to the block area adjacency graph calculation via the pixel area adjacency graph.As explained above, the image captured by scientific instrument may be huge in size usually (for example, consumes hundreds of gigabytes of memory space).This type of huge size usually far exceeds the processing power of the computerized workstation supporting scientific instrument.Therefore, in order to promote the analysis or manipulation of this type of huge image, those computerized workstations can consider or otherwise operate this type of huge image (for example, by considering the separate picture block of image, rather than once considering whole image) in a block-wise manner. Watershed segmentation based on mark is the general and useful analysis that is usually expected to be performed on the image captured by scientific instrument. However, due to watershed leakage based on mark (for example, due to the difference between the local and global selection of the watershed separation line or boundary based on mark), watershed segmentation based on mark can not be promoted in a block-wise manner. Can promote watershed segmentation based on mark on a simplified version of large image (such as the RAG of this large image). But prior art does not know how to generate RAG in block context. Therefore, the prior art can be considered disadvantageous.

[0056] The various embodiments described herein may help improve one or more of such technical problems. Specifically, as described above, the various embodiments described herein may facilitate the computation of RAGs in a tiled context. In various aspects, the various embodiments described herein may facilitate this by utilizing a new type of graph structure designed by the inventors: PRAGs. More specifically, when given an image, the various embodiments described herein may involve: splitting the image into tiles; computing a PAG for each tile; computing an MST for each PAG (e.g., via the Boruvka algorithm); computing an MSF for each MST (e.g., by deleting the maximum weight edge based on a given root pair); marking or specifying the boundary tree and internal tree of each MSF; generating a labeled MST for each labeled MSF (e.g., by reinserting the deleted edges); converting each labeled MST to a PRAG (e.g., by retaining the boundary regions but compressing the internal regions into corresponding region nodes); and merging all PRAGs together into a single RAG (e.g., by coupling the corresponding boundary regions of adjacent PRAGs to form new internal regions, and compressing such new internal regions into new region nodes). Once all PRAGs are merged together, the resulting graph structure may only contain region nodes and their associated edges; all boundary regions previously in separate PRAGs can be converted into new internal regions via merging and then compressed into the new region nodes. In this way, the various embodiments described herein can be considered to compute RAGs in a tiled manner (e.g., based on tiles of a large image, rather than on the entirety of the large image itself). After computing the RAG, the various embodiments described herein may involve performing marker-based watershed segmentation on the RAG. Thus, marker-based watershed segmentation can be facilitated even though the image has been split into tiles. In other words, the various embodiments described herein may allow or enable a computer to perform activities or functions that it was previously unable to perform in a tiled manner or in a tiled context: RAG construction, and therefore marker-based watershed segmentation. After all, the prior art cannot accurately perform marker-based watershed segmentation on image tiles. Although the prior art can accurately perform marker-based watershed segmentation on the RAG of an image, the prior art only knows how to generate a RAG from the entire image; the prior art does not know how to generate a RAG from image tiles. Therefore, it can be believed that the various embodiments described herein solve or improve various technical problems or shortcomings that plague the prior art. At least for these reasons, the various embodiments described herein can be considered to be specific and practical technical improvements in the field of marker-based watershed segmentation. Therefore, the various embodiments described herein certainly qualify as useful and practical applications of computers.

[0057] Furthermore, various embodiments described herein can control real-world tangible devices based on the disclosed teachings. For example, various embodiments described herein can electronically activate, deactivate, or otherwise actuate real-world hardware (e.g., ion beam emitters, ion focusing lenses, carrier fluid valves / pumps) of real-world scientific instruments (e.g., electron energy loss microscopes), perform real-world analysis on real-world data captured by those real-world scientific instruments (e.g., compute marker-based watershed segmentation basins for images captured by the scientific instruments), and can electronically present the results of such real-world analysis on a real-world computer screen (e.g., the computed segmentation basins can be visually presented for review by a user or technician).

[0058] Figure 1 An example non-limiting block diagram of a scientific instrument module 102 is illustrated, in accordance with various embodiments described herein.

[0059] In various embodiments, the scientific instrument module 102 may be implemented by circuitry (e.g., including electrical or optical components), such as a programmed computing device. The logical components of the scientific instrument module 102 may be included in a single computing device, or may be distributed across multiple computing devices that communicate with each other, as appropriate. Figure 32 and Figure 34 Examples of computing devices that may implement the scientific instrument module 102, either alone or in combination, are discussed and reference is made to Figure 33 and Figure 35 Examples of systems or networks of interconnected computing devices that may implement the scientific instrument module 102 across one or more of the computing devices are discussed.

[0060] The scientific instrument module 102 may include a first logic component 104, a second logic component 106, and a third logic component 108. As used herein, the term "logic component" may include a device that performs a set of operations associated with the logic. For example, any of the logic elements included in the scientific instrument module 102 may be implemented by one or more computing devices that are programmed with instructions to cause one or more processing devices of the computing devices to perform the associated set of operations. In certain embodiments, the logic elements may include one or more non-transitory computer-readable media having instructions thereon that, when executed by one or more processing devices of the 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" may refer to a collection of one or more logic elements that, together, perform the functions associated with the module. Different logic elements in a module may take the same form or may take different forms. For example, some logic elements in a module may be implemented by a programmed general-purpose processing device, while other logic elements in the module may be implemented by an application-specific integrated circuit (ASIC). As another example, different logic elements in a module may be associated with different instruction sets executed by one or more processing devices. A module may omit one or more of the logic elements shown in the associated figures; for example, when a module is to perform a subset of the operations discussed herein with reference to the module, the module may include a subset of the logic elements depicted in the associated figures.

[0061] In various embodiments, there may be a scientific instrument corresponding to the scientific instrument module 102. In various aspects, the scientific instrument can be any suitable computerized device that can electronically measure some scientifically relevant, clinically relevant or research-related characteristics, properties or attributes of (e.g., a set of known or unknown mixtures, compounds or substances) an analytical sample. As a non-limiting example, the scientific instrument can be a mass spectrometer operatively coupled to a gas chromatograph or a liquid chromatograph. In such cases, the scientific instrument can measure or determine the ion spectrum (e.g., relative ion abundance as a function of mass-to-charge ratio) of the analytical sample. As another non-limiting example, the scientific instrument can be a scanning electron microscope. In such cases, the scientific instrument can measure or determine the surface morphology of the analytical sample. As another non-limiting example, the scientific instrument can be a transmission electron microscope. In such cases, the scientific instrument can measure or determine the internal structure details of the analytical sample. As a more general non-limiting example, the scientific instrument can be a charged particle microscope of any suitable type (e.g., some types of microscopes can use non-electron ion beams to capture images).

[0062] In various embodiments, the first logic component 104 can access an image captured or otherwise generated by a scientific instrument. In various aspects, the image can be any suitable array of pixels or voxels capable of depicting or illustrating any suitable analytical sample.

[0063] In various embodiments, the second logic 106 may construct a region adjacency graph for the image on a tile-by-tile basis. In various aspects, such construction may be based on a plurality of pixel region adjacency graphs corresponding to a plurality of tiles of the image. More specifically, the second logic 106 may involve decomposing the image into a plurality of tiles and generating a corresponding pixel adjacency graph for each tile, thereby generating a plurality of pixel adjacency graphs. In various examples, the second logic 106 may involve converting each of the plurality of pixel adjacency graphs into a corresponding minimum spanning tree via application of the Boruvka algorithm. This may generate a plurality of minimum spanning trees. In various cases, the second logic 106 may involve converting each of the plurality of minimum spanning trees into a corresponding minimum spanning forest by removing the maximum weight edges placed along the path coupling the corresponding root node. This may generate a plurality of minimum spanning forests. In various aspects, the second logic 106 may involve labeling or otherwise specifying boundary trees and interior trees of each of the plurality of minimum spanning forests, thereby generating a plurality of labeled minimum spanning forests. In various aspects, the second logic 106 may involve converting each of the multiple labeled minimum spanning forests into a corresponding labeled minimum spanning tree via reinserting any edges previously deleted based on the root path. This can produce multiple labeled minimum spanning trees. In various instances, the second logic 106 may involve converting each of the multiple labeled minimum spanning trees into a corresponding pixel area adjacency graph in a plurality of pixel area adjacency graphs by replacing the internal region with a separate region node. In various cases, the second logic 106 may involve merging the multiple pixel area adjacency graphs together by coupling the boundary regions of adjacent pixel area adjacency graphs that share a boundary. Such coupling can produce new internal regions, which can then be replaced by new region nodes. After completing all such merging, the resulting graph structure can be considered to be the region adjacency graph of the image.

[0064] In various embodiments, the third logic 108 may apply a marker-based watershed segmentation to the region adjacency graph of the image, thereby generating one or more marker-based watershed segmentation basins. In some aspects, the third logic 108 may involve sending or sharing the one or more marker-based watershed segmentation basins with any other computing device. In other aspects, the third logic 108 may involve visually displaying the one or more marker-based watershed segmentation basins on any suitable computer screen or computer monitor. In any case, the one or more marker-based watershed segmentation basins can be considered to be generated in the context of the tiles, and the prior art does not know how to accurately accomplish this.

[0065] Therefore, the scientific instrument module 102 can facilitate marker-based watershed segmentation via block region adjacency graph computation accomplished by utilizing a pixel region adjacency graph.

[0066] Figure 2 is an example, non-limiting flowchart of a computer-implemented method 200 according to various embodiments described herein. The operations of the computer-implemented method 200 may be used in any suitable context to perform any suitable operations (e.g., may be performed by a computer program). Figure 1 、 Figure 31 、 Figure 32 、 Figure 33 、 Figure 34 and Figure 35 Any of the various modules, computing devices, or graphical user interfaces described herein may be executed or used in conjunction with them). Figure 2 In the examples, the operations are each illustrated once in a particular order, but the operations may be reordered or repeated as needed and appropriate (eg, different operations may be performed in parallel where appropriate).

[0067] In various aspects, act 202 may include performing a first operation of accessing, by a device operatively coupled to the processor, an image generated by the scientific instrument. In various cases, first logic component 104 may perform or otherwise facilitate act 202 .

[0068] In various examples, act 204 may include performing a second operation of constructing, by the device and in a tile-by-tile manner, a region adjacency map for the image based on the plurality of pixel region adjacency maps. In various cases, second logic component 106 may perform or otherwise facilitate act 204 .

[0069] In various aspects, action 206 may include segmenting the image by the device based on the region adjacency graph. In some instances, this segmentation may be performed via a marker-based watershed segmentation algorithm. In various cases, third logic component 108 may perform or otherwise facilitate action 206.

[0070] Thus, the computer-implemented method 200 may facilitate marker-based watershed segmentation via tile region adjacency graph computation accomplished by utilizing a pixel region adjacency graph.

[0071] Figure 3 A block diagram illustrating an example non-limiting system that can facilitate computation of a tile region adjacency map via a pixel region adjacency map according to one or more embodiments described herein.

[0072] In various embodiments, a scientific instrument 302 may be present. In various aspects, the scientific instrument 302 may be as described above. That is, the scientific instrument 302 may be any suitable computerized device that can electronically measure any suitable scientifically relevant, clinically relevant, or research-related characteristic, attribute, or property of any suitable analytical sample. Specifically, the scientific instrument 302 may be a charged particle microscope. In such cases, the scientific instrument 302 may utilize its component hardware (e.g., electron source, anode, focusing lens, focusing aperture, scanning coil, objective lens, objective lens aperture, deflector, condenser, astigmatism correction device, electron detector, X-ray detector, and actuatable sample stage) to electronically generate or capture an image 304 of any given analytical sample.

[0073] In various aspects, image 304 may be of any suitable format, size, or dimensions. As a non-limiting example, for any suitable positive integers x and y, image 304 may be an x ​​by y array of pixels. In this case, image 304 may be considered to have a total of xy pixels, where each pixel has a corresponding intensity value. As another non-limiting example, for any suitable positive integers x, y, and z, image 304 may be an x ​​by y by z array of voxels. In this case, image 304 may be considered to have a total of xyz voxels, where each voxel has a corresponding intensity value.

[0074] In any case, system 306 can be electronically integrated with image 304 or with scientific instrument 302 (e.g., via any suitable wired or wireless electronic connection). In various aspects, since image 304 can visually illustrate or depict an analysis sample, it may be desirable to perform a watershed segmentation based on markers on image 304 in order to derive, collect, or otherwise disclose structural information about the analysis sample. However, in some instances, the size of image 304 can be very large. As a non-limiting example, image 304 can occupy tens, hundreds, or even thousands of gigabytes of computer memory. Therefore, it may be desirable to perform a watershed segmentation based on markers on image 304 in a block-wise manner. As described herein, system 306 can facilitate such watershed segmentation based on markers.

[0075] In various aspects, the system 306 may include a processor 308 (e.g., a computer processing unit, a microprocessor) and a non-transitory computer-readable memory 310 operatively or operatively or communicatively connected or coupled to the processor 308. The non-transitory computer-readable memory 310 may store computer-executable instructions that, when executed by the processor 308, may cause the processor 308 or other components of the system 306 (e.g., an access component 312, a tile component 314, a map component 316, an execution component 318) to perform one or more actions. In various embodiments, the non-transitory computer-readable memory 310 may store the computer-executable components (e.g., the access component 312, the tile component 314, the map component 316, the execution component 318), and the processor 308 may execute the computer-executable components.

[0076] In various embodiments, the system 306 may include an access component 312. In various aspects, the access component 312 may electronically access the scientific instrument 302. That is, the access component 312 may electronically communicate with or otherwise electronically interact with the scientific instrument 302 (e.g., send electronic instructions or commands to the scientific instrument, receive electronic data from the scientific instrument). Thus, the access component 312 may be considered an agent or channel through which other components of the system 306 may interact with, communicate with, or otherwise manipulate the scientific instrument 302. In various examples, the access component 312 may electronically access the image 304. That is, the access component 312 may electronically receive, electronically retrieve, or otherwise electronically obtain the image 304 from any suitable electronic source or database (not shown). As a non-limiting example, the access component 312 may electronically receive, retrieve, or otherwise obtain the image 304 from the scientific instrument 302. In any case, access component 312 can be considered an agent or channel through which other components of system 306 can interact with or otherwise manipulate image 304. However, these are merely non-limiting examples. In other cases, access component 312 can be omitted, and any other component of system 306 can communicate or interact directly with scientific instrument 302 or with image 304.

[0077] In various embodiments, system 306 can include a tile component 314. In various aspects, tile component 314 can decompose image 304 into a plurality of tiles, as described herein.

[0078] In various embodiments, system 306 can include a graph component 316. In various examples, as described herein, graph component 316 can generate a region adjacency graph for image 304 based on a plurality of tiles. In various cases, graph component 316 can facilitate such generation by utilizing a plurality of pixel region adjacency graphs that respectively correspond to the plurality of tiles.

[0079] In various embodiments, system 306 can include an execution component 318. In various aspects, execution component 318 can perform a marker-based watershed segmentation on the region adjacency graph, thereby generating one or more marker-based watershed segmented basins of image 304, as described herein.

[0080] It should be noted that in various instances, the access component 312, the tile component 314, the graph component 316, and the execution component 318 can be collectively considered to be one or more software components 311 of the system 306. In various aspects, it should be understood that for ease of explanation and illustration, the one or more software components 311 are primarily described herein as including four components (e.g., the access component 312, the tile component 314, the graph component 316, and the execution component 318). However, the one or more software components 311 are not limited to being implemented as exactly four such components in every embodiment. In fact, in some embodiments, the functionality described herein of such four components can be combined in any suitable manner so as to be implemented in or by fewer than four components (e.g., in some cases, a single component can perform all of the functionality described herein with respect to the access component 312, the tile component 314, the graph component 316, and the execution component 318). In other embodiments, the functionality described herein of such four components may alternatively be distributed, separated, split, or segmented in any suitable manner so as to be implemented in or by more than four components (e.g., two or more components may facilitate functionality that may be performed by access component 312; two or more components may facilitate functionality that may be performed by tile component 314; two or more components may facilitate functionality that may be performed by map component 316; two or more components may facilitate functionality that may be performed by execution component 318).

[0081] Figure 4 A block diagram illustrating an example non-limiting system including a plurality of tiles that can facilitate tile region adjacency graph computation via a pixel region adjacency graph according to one or more embodiments described herein is illustrated.

[0082] In various embodiments, tile component 314 may electronically decompose or otherwise split image 304 into plurality of tiles 402, where plurality of tiles 402 may include any suitable number of tiles. Figures 5 to 7 Non-limiting aspects are described.

[0083] Figures 5 to 7 An example non-limiting block diagram of a plurality of tiles 402 is illustrated according to one or more embodiments described herein.

[0084] First, consider Figure 5In various embodiments, as shown, for any suitable positive integer n>1, the plurality of tiles 402 may include n tiles: tile 402(1) through tile 402(n). In various aspects, each tile in the plurality of tiles 402 may be a contiguous set, group, or subset of pixels (or voxels) of the image 304. Thus, each tile in the plurality of tiles 402 may be considered a discrete, multi-pixel (or multi-voxel) segment or section of the image 304.

[0085] As a non-limiting example, tile 402(1) may include a plurality of pixels 404(1). Note that, although pixels are described herein for ease of explanation and illustration, similar or equivalent embodiments may apply to voxels. In various instances, for any suitable positive integer m>1, the plurality of pixels 404(1) may include m pixels: pixel 404(1)(1) to pixel 404(1)(m). In various cases, each pixel in the plurality of pixels 404(1) may be a unique or different pixel from the image 304. In various aspects, the plurality of pixels 404(1) may be contiguous. In other words, when positioned within the image 304, all of the plurality of pixels 404(1) may be in direct or indirect contact with each other. In other words, for any two pixels in the plurality of pixels 404(1), the two pixels may be: in contact or adjacent to each other; or coupled together by a chain, string, or line of other pixels within the tile 402(1), and each consecutive pair of such pixels may be in contact or adjacent to each other. In various instances, tile 402(1) may exhibit any suitable shape. That is, multiple pixels 404(1) may be positioned within image 304 so as to form an arrangement or layout of any suitable shape. Indeed, in some cases, multiple pixels 404(1) may be positioned within image 304 so as to form any suitable rectilinear arrangement or layout (e.g., such that tile 402(1) is a square or a rectangle). In such cases, for any suitable positive integers a and b, tile 402(1) may be considered to be an a by b array of pixels, where ab=m. However, in other cases, multiple pixels 404(1) may be positioned within image 304 so as to form any suitable non-rectilinear arrangement or layout (e.g., such that tile 402(1) is a triangle, any other suitable polygon, or any other suitable irregular shape).

[0086] As another non-limiting example, tile 402(n) may include a plurality of pixels 404(n). In various instances, the plurality of pixels 404(n) may include m pixels: pixel 404(n)(1) to pixel 404(n)(m). As described above, each pixel in the plurality of pixels 404(n) may be a unique or different pixel from the image 304, and the plurality of pixels 404(n) may be contiguous. That is, when positioned within the image 304, all of the plurality of pixels 404(n) may be in direct or indirect contact with each other (e.g., for any two pixels in the plurality of pixels 404, the two pixels may be: in contact or adjacent to each other; or coupled together by a chain, string, or line of other pixels within tile 402(n), and each consecutive pair of such pixels may be in contact or adjacent to each other). As also described above, tile 402(n) may exhibit any suitable shape (e.g., multiple pixels 404(n) may be positioned in image 304 to form any suitable linear arrangement or layout; or multiple pixels 404(n) may be positioned in image 304 to form any suitable non-linear arrangement or layout).

[0087] Note that although Figure 5 The plurality of tiles 402 are illustrated as all having the same number of pixels (e.g., m), but this is merely a non-limiting example for ease of illustration and explanation. In various embodiments, any of the plurality of tiles 402 may be composed of the same or a different number of pixels. Relatedly, any of the plurality of tiles 402 may have or exhibit the same or a different shape.

[0088] In a non-limiting example, for any suitable positive integers a and b, each tile in the plurality of tiles 402 may be a unique or different a times b linear array of pixels of the image 304, where ab=m. In some cases, such a times b linear arrays of pixels may not intersect with each other. In such cases, none of the plurality of tiles 402 can overlap with each other (e.g., each pixel of the image 304 may belong to exactly one tile in the plurality of tiles 402), and the union of the plurality of tiles 402 may be equivalent to the image 304 (e.g., the total number of pixels in the image 304 may be equal to nm). However, in other cases, such a times b linear arrays of pixels may not intersect with each other. In fact, in some cases, any two tiles that are vertically adjacent to each other in the image 304 may share a row of pixels (e.g., the bottom row of pixels of the top tile may be the same as the top row of pixels of the bottom tile), and any two tiles that are horizontally adjacent to each other in the image 304 may share a column of pixels (e.g., the rightmost column of pixels of the left tile may be the same as the leftmost column of pixels of the right tile). In such cases, individual tiles in multiple tiles 402 may overlap with each other (e.g., at least some pixels of image 304 may belong to more than one tile in multiple tiles 402), and a symmetric difference (e.g., a union operator that avoids double counting) of multiple tiles 402 may be equivalent to image 304 (e.g., if each pair of adjacent tiles shares one or more rows of pixels or one or more columns of pixels, the total number of pixels in image 304 may be less than nm).

[0089] In any case, each tile in plurality of tiles 402 may be smaller than image 304. In fact, in some instances, each tile in plurality of tiles 402 may contain one or more orders of magnitude fewer pixels than image 304. Thus, plurality of tiles 402 may be analyzed, manipulated, or otherwise considered individually or independently, consuming significantly fewer computational resources than would be required to analyze, manipulate, or otherwise consider image 304 as a whole.

[0090] Now, consider Figures 6 and 7 . Figure 6 Illustrated is captured image 602. In various aspects, captured image 602 may be considered a non-limiting example of image 304. Figure 7 A non-limiting example of how captured image 602 may be decomposed or otherwise segmented into four tiles (eg, n may be equal to 4): tile 702, tile 704, tile 706, and tile 708 is shown. Figure 7In a non-limiting example, each of tiles 702-708 is a square, contiguous array of pixels that can be considered a corresponding puzzle piece of captured image 602. In practice, tile 702 can be considered the top left puzzle piece of captured image 602; tile 704 can be considered the top right puzzle piece of captured image 602; tile 706 can be considered the bottom left puzzle piece of captured image 602; and tile 708 can be considered the bottom right puzzle piece of captured image 602. In such cases, tile 702 can be considered adjacent to tile 704 and tile 706; tile 704 can be considered adjacent to tile 702 and tile 708; tile 706 can be considered adjacent to tile 702 and tile 708; and tile 708 can be considered adjacent to tile 704 and tile 706. As described above, in some aspects, tiles 702 through 708 may not intersect or overlap with each other. That is, none of tiles 702-708 may share pixels. However, in other aspects, tiles 702 to 708 may alternatively be non-disjoint or overlapping with each other. That is, tiles 702-708 may share pixels. For example, tiles 702 and 704 may share a column of pixels (e.g., the rightmost column of tile 702 may contain the same pixels as the leftmost column of tile 704). As another example, tiles 702 and 706 may share a row of pixels (e.g., the bottom row of tile 702 may contain the same pixels as the top row of tile 706). As yet another example, tiles 704 and 708 may share a row of pixels (e.g., the bottom row of tile 704 may contain the same pixels as the top row of tile 708). As yet another example, tiles 706 and 708 may share a column of pixels (e.g., the rightmost column of tile 706 may contain the same pixels as the leftmost column of tile 708).

[0091] although Figure 7 The captured image 602 is depicted as being decomposed or segmented into four tiles, but this is merely a non-limiting example for ease of explanation and illustration. In various embodiments, the captured image 602 may alternatively be decomposed into any suitable number of tiles (e.g., the greater the number of tiles, the smaller and more granular each tile may be).

[0092] In any case, the tile component 314 may electronically fracture, electronically slice, or otherwise electronically divide the image 304 into a plurality of tiles 402 , where each tile may be smaller in size than the image 304 (eg, may consume less memory space).

[0093] Figure 8 A block diagram illustrating an example non-limiting system including a region adjacency graph that can facilitate tiled region adjacency graph computation via a pixel region adjacency graph according to one or more embodiments described herein is illustrated.

[0094] In various embodiments, the map component 316 can electronically generate a region adjacency map 802 (hereinafter referred to as "RAG 802") based on the plurality of tiles 402. In various aspects, the RAG 802 can be considered to be a simplified, less memory intensive representation of the image 304. Thus, marker-based watershed segmentation can be accurately or reliably performed on the region adjacency map 802, even though marker-based watershed segmentation may not be accurately or reliably performed on either the image 304 (e.g., due to excessive size of the image 304) or the plurality of tiles 402 (e.g., due to marker-based watershed bleed-through). In various instances, the map component 316 can generate the RAG 802 by utilizing a plurality of pixel region adjacency maps that respectively correspond to the plurality of tiles 402. Figures 9 to 26 Various non-limiting details are described.

[0095] Figures 9 to 26 An example non-limiting block diagram is illustrated regarding the construction or generation of a RAG 802 according to one or more embodiments described herein.

[0096] First, consider Figure 9 In various implementations, there may be a tile 902. In various aspects, the tile 902 may be any one of the plurality of tiles 402. Thus, the tile 902 may include a plurality of pixels 904, where the plurality of pixels 904 may include m pixels: pixel 904(1) through pixel 904(m).

[0097] In various examples, the graph component 316 can electronically generate a pixel adjacency graph 906 (hereinafter referred to as “PAG 906”) based on the tile 902. In various cases, the PAG 906 can include a plurality of nodes 908 and a plurality of edges 910.

[0098] In various aspects, the plurality of nodes 908 may correspond to the plurality of pixels 904, respectively (e.g., in a one-to-one manner). Thus, since the plurality of pixels 904 may include m pixels, the plurality of nodes 908 may include m nodes: node 908(1) to node 908(m). In various instances, each node in the plurality of nodes 908 may be considered to represent a corresponding pixel in the plurality of pixels 904. As a non-limiting example, node 908(1) may be considered to represent pixel 904(1). In some cases, node 908(1) may therefore have any intensity value exhibited by pixel 904(1). As another non-limiting example, node 908(m) may be considered to represent pixel 904(m). As described above, node 908(m) may therefore have any intensity value exhibited by pixel 904(m).

[0099] In various aspects, the plurality of edges 910 can include any suitable number of edges such that any two of the plurality of nodes 908 representing adjacent pixels can have an edge therebetween. As a non-limiting example, for any suitable positive integers 1 ≤ i < j ≤ m, assume that pixel 904(i) and pixel 904(j) are adjacent to each other. In such cases, the plurality of edges 910 can include an edge between node 908(i) and node 908(j). Note that any suitable type of adjacency rule or adjacency definition can be implemented to determine or create the plurality of edges 910. In fact, in some cases, a nearest neighbor adjacency rule or definition can be implemented. In such cases, if pixel 904(i) and pixel 904(j) are nearest neighbors of each other, they can be considered adjacent. That is, pixel 904(i) and pixel 904(j) can be considered adjacent in the following cases: pixel 904(i) is positioned or located in the tile 902 immediately above pixel 904(j) (and thus in image 304); pixel 904(i) is positioned or located in the tile 902 immediately below pixel 904(j) (and thus in image 304); pixel 904(i) is positioned or located in the tile 902 immediately to the right of pixel 904(j) (and thus in image 304); or pixel 904(i) is positioned or located in the tile 902 immediately to the left of pixel 904(j) (and thus in image 304). However, in other cases, a next-nearest neighbor adjacency rule or definition can be implemented. In such cases, if pixel 904(i) and pixel 904(j) are nearest neighbors or next-nearest neighbors of each other, they can be considered adjacent.That is, pixel 904(i) and pixel 904(j) may be considered adjacent if: pixel 904(i) is positioned or located in tile 902 (and therefore in image 304) immediately above pixel 904(j); pixel 904(i) is positioned or located in tile 902 (and therefore in image 304) immediately below pixel 904(j); pixel 904(i) is positioned or located in tile 902 (and therefore in image 304) immediately to the right of pixel 904(j); pixel 904(i) is positioned or located in tile 902 (and therefore in image 304) immediately to the left of pixel 904(j); 2 (and therefore in image 304); pixel 904(i) is located in or is located in tile 902 immediately above and to the right of pixel 904(j) (and therefore in image 304); pixel 904(i) is located in or is located in tile 902 immediately above and to the left of pixel 904(j) (and therefore in image 304); pixel 904(i) is located in or is located in tile 902 immediately below and to the right of pixel 904(j) (and therefore in image 304); or pixel 904(i) is located in or is located in tile 902 immediately below and to the left of pixel 904(j) (and therefore in image 304). It will be appreciated that any intermediate type of neighboring rule or definition may be implemented such that any given pixel of tile 902 is adjacent to any suitable combination of its nearest neighbors or next-nearest neighbors.

[0100] In various aspects, the plurality of edges 910 can be weighted. In other words, each of the plurality of edges 910 can be assigned or otherwise have a scalar weight. In various instances, the scalar weight assigned to any given edge in the plurality of edges 910 can be based on the intensity values ​​of any two nodes to which the given edge is coupled. As a non-limiting example, assume again that pixel 904(i) and pixel 904(j) are adjacent and represented by node 908(i) and node 908(j), respectively. In such a case, there can be a particular edge coupling node 908(i) to node 908(j), and the scalar weight assigned to the particular edge can be equal to or otherwise based on any suitable mathematical function of the intensity value of pixel 904(i) and the intensity value of pixel 904(j). For example, the scalar weight may be equal to the inverse of the absolute difference between the intensity value of pixel 904(i) and the intensity value of pixel 904(j) (e.g., such that the magnitude of the scalar weight increases as the intensity values ​​of pixel 904(i) and pixel 904(j) become more similar). Alternatively, the scalar weight may be equal to a power law function whose negative exponent is the absolute difference between the intensity value of pixel 904(i) and the intensity value of pixel 904(j) (e.g., again such that the magnitude of the scalar weight increases as the intensity values ​​of pixel 904(i) and pixel 904(j) become more similar).

[0101] Now, consider Figure 10 . In various embodiments, the graph component 316 may generate a minimum spanning tree 1002 (hereinafter referred to as "MST 1002") based on the PAG 906. In various aspects, the graph component 316 may achieve this by performing any suitable MST search or MST calculation algorithm on the PAG 906. As a non-limiting example, the graph component 316 may perform the Boruvka algorithm on the PAG 906, wherein the Boruvka algorithm may be considered to be a sequence of greedy edge selections that iteratively converts the PAG 906 into the MST 1002. However, any other suitable MST search or MST calculation algorithm may be used to replace (or combine with) the Boruvka algorithm, such as the Prim algorithm or the Kruskal algorithm. In any case, the MST 1002 may include the same nodes as the PAG 906, but the MST 1002 may include fewer edges than the PAG 906. Specifically, the MST 1002 may include multiple nodes 908, and the MST 1002 may include multiple edges 1004 instead of multiple edges 910. In various examples, the plurality of edges 1004 can be a strict subset of the plurality of edges 910 such that all three of the following conditions occur: (1) for every pair of nodes within the MST 1002, there exists a path in the MST 1002 coupling the pair of nodes; (2) there are no cycles or cyclic paths in the MST 1002; and (3) the sum of the weights of the plurality of edges 1004 is minimized (hence, "minimum"). In other words, there can be multiple different subsets of the plurality of edges 910 that satisfy (1) and (2) above, and the plurality of edges 1004 can be any of those multiple subsets that have the lowest (e.g., minimum) sum of weights.

[0102] Next, consider Figure 11。In various aspects, the graph component 316 can identify multiple root nodes 1102 of the MST 1002. In various instances, for any suitable positive integers 1 < k < m, the multiple root nodes 1102 can include k nodes: root node 1102(1) to root node 1102(k). In various cases, root node 1102(1) can be the first node among the multiple nodes 908 that the graph component 316 has designated as roots. Similarly, root node 1102(k) can be the kth node among the multiple nodes 908 that the graph component 316 has designated as roots. In various aspects, the graph component 316 can identify the multiple root nodes 1102 in any suitable manner. As a non-limiting example, the graph component 316 can identify the multiple root nodes 1102 by performing an extended minimum operation on the MST 1002. As another non-limiting example, the graph component 316 can identify the multiple root nodes 1102 in any other suitable random or non-random manner (e.g., the graph component 316 can traverse the multiple nodes 908; for any node currently being considered, the graph component 316 can randomly designate or identify the node as a root or non-root; or there can be k defined or desired positions in the tile 902, and nodes representing any pixels located at those k defined or desired positions can be designated or identified as root nodes).

[0103] In any case, the graph component 316 can generate a minimum spanning forest 1104 (hereinafter referred to as "MSF 1104") based on both the MST 1002 and the multiple root nodes 1102. In fact, for each different pair of root nodes from the multiple root nodes 1102, the graph component 316 can: identify the path (if any) that couples the pair of root nodes together; and delete any edge with the highest weight on that path from the multiple edges 910. By performing such deletions for each unique pair of the multiple root nodes 1102, the graph component 316 can be considered to delete multiple edges 1108 from the multiple edges 910, where the multiple edges 1108 can include l edges: edge 1108(1) to edge 1108(l). for

[0104] In any case, MSF 1104 may include a plurality of trees 1106. In various instances, the plurality of trees 1106 may correspond to the plurality of root nodes 1102, respectively. Thus, since the plurality of root nodes 1102 may include k roots, the plurality of trees 1106 may include k trees: tree 1106(1) through tree 1106(k). In various instances, each tree in the plurality of trees 1106 may be a set of connected nodes from MST 1002 that includes a corresponding root node from the plurality of root nodes 1102 and is not coupled to any other tree in the plurality of trees 1106. As a non-limiting example, tree 1106(1) can be a first subset of multiple nodes 908 and multiple edges 1004 (minus multiple edges 1108) such that: root node 1102(1) is in tree 1106(1), but other nodes in multiple root nodes 1102 are not in the tree; for each pair of nodes in tree 1106(1), there is a path in tree 1106(1) coupling the pair of nodes; there are no cycles or cyclic paths in tree 1106(1); and there is no path coupling any node in tree 1106(1) to any node not in tree 1106(1). As another non-limiting example, tree 1106(k) can be the kth subset of multiple nodes 908 and multiple edges 1004 (minus multiple edges 1108) such that: root node 1102(k) is in tree 1106(k), but other nodes in multiple root nodes 1102 are not in the tree; for each pair of nodes within tree 1106(k), there is a path in tree 1106(k) coupling the pair of nodes; there are no cycles or cyclic paths in tree 1106(k); and there is no path coupling any node in tree 1106(k) to any node not in tree 1106(k).

[0105] Note that multiple trees 1106 may be disjoint from one another, such that: the union of all nodes across multiple trees 1106 is equal to multiple nodes 908; and the union of all edges across multiple trees 1106 is equal to multiple edges 1004 minus multiple edges 1108. Furthermore, note that different trees in multiple trees 1106 may have the same or different numbers of nodes or edges.

[0106] It should be understood that any suitable electronic technique may be implemented to track which node in the plurality of nodes 908 belongs to which tree in the plurality of trees 1106. As a non-limiting example, each tree in the plurality of trees 1106 may be considered to have its own corresponding name or identifier, and each node in the plurality of nodes 908 may be considered to have a corresponding tag that specifies or indicates to which tree in the plurality of trees 1106 the node belongs. For example, an auxiliary or separate data table associated with the MSF 1104 may store the belonging tree tag for each node in the plurality of nodes 908, and therefore, the belonging tree tag for each pixel in the plurality of pixels 904.

[0107] Now, consider Figure 12 . In various aspects, the graph component 316 may generate a labeled minimum spanning forest 1202 (hereinafter referred to as "labeled MSF 1202") based on the MSF 1104. As described above, the MSF 1104 may include a plurality of trees 1106. In various instances, the graph component 316 may assign or give a corresponding flag to each of the plurality of trees 1106. In various cases, the flag assigned to any given tree may indicate that the given tree is a boundary tree or that the given tree is alternatively an interior tree. In various aspects, the graph component 316 may mark any given tree as a boundary tree in response to determining that the given tree includes at least one node located on a boundary of the tile 902. In contrast, the graph component 316 may mark any given tree as an interior tree in response to determining that the given tree does not include a node located on a boundary of the tile 902. In various instances, the boundary of the tile 902 may be a discrete portion of the outermost boundary or peripheral boundary of the tile 902 that is adjacent to or otherwise abuts another tile in the plurality of tiles 402. As a non-limiting example, assume that tile 902 is a rectilinear shape (e.g., multiple pixels 904 may be arranged in a square or rectangular layout in image 304). In such a case, tile 902 can be considered to have up to four boundaries: a top boundary; a bottom boundary; a right boundary; and a left boundary. Specifically, if another of multiple tiles 402 is located or positioned immediately above tile 902 in image 304, the topmost row of pixels of tile 902 may be considered to be the top boundary of tile 902. However, if no other tile in multiple tiles 402 is located or positioned immediately above tile 902, tile 902 may be considered to have no top boundary. Similarly, if another of multiple tiles 402 is located or positioned immediately below tile 902 in image 304, the bottommost row of pixels of tile 902 may be considered to be the bottom boundary of tile 902. However, if no other tile in plurality of tiles 402 is located or positioned immediately below tile 902, then tile 902 may be considered to have no bottom border. Similarly, if another tile in plurality of tiles 402 is located or positioned immediately to the right of tile 902 in image 304, then the rightmost row of pixels in tile 902 may be considered to be the right border of tile 902. However, if no other tile in plurality of tiles 402 is located or positioned immediately to the right of tile 902, then tile 902 may be considered to have no right border. Furthermore, if another tile in plurality of tiles 402 is located or positioned immediately to the left of tile 902 in image 304, then the leftmost row of pixels in tile 902 may be considered to be the left border of tile 902. However, if no other tile in plurality of tiles 402 is located or positioned immediately to the left of tile 902, then tile 902 may be considered to have no left border.

[0108] In any case, such marking or designation can cause the marked MSF 1202 to include a plurality of boundary trees 1204 and a plurality of internal trees 1206. In various aspects, the plurality of boundary trees 1204 can include p trees: boundary tree 1204(1) through boundary tree 1204(p). In various examples, the plurality of internal trees 1206 can include q trees: internal tree 1206(1) through internal tree 1206(q). Note that p and q can be any suitable positive integers such that p+q=k. In other words, boundary tree 1204(1) can be the first tree in plurality of trees 1106 that graph component 316 labels or designates as a boundary tree; boundary tree 1204(p) can be the pth tree in plurality of trees 1106 that graph component 316 labels or designates as a boundary tree; interior tree 1206(1) can be the first tree in plurality of trees 1106 that graph component 316 labels or designates as an interior tree; and interior tree 1206(q) can be the qth tree in plurality of trees 1106 that graph component 316 labels or designates as an interior tree. Note that such labels or designations can be electronically stored, recorded, or otherwise tracked in any suitable manner. As a non-limiting example, an auxiliary or separate data table associated with MSF 1104 can store a boundary flag or interior flag for each node in plurality of nodes 908 (and therefore each pixel in plurality of pixels 904), and the auxiliary or separate data table, together with MSF 1104, can be considered to form labeled MSF 1202. In other words, each node in the plurality of nodes 908 can be considered to have a corresponding label indicating which tree in the plurality of trees 1106 the node belongs to, and each tree in the plurality of trees 1106 can be considered to have a corresponding flag indicating whether the tree is a boundary tree or an interior tree.

[0109] Next, consider Figure 13. In various aspects, the graph component 316 may generate a labeled minimum spanning tree 1302 (hereinafter referred to as "labeled MST 1302") based on the labeled MSF 1202. In various instances, the graph component 316 may do this by reinserting the edge 1108 into the labeled MSF 1202. As a non-limiting example, the graph component 316 may reinsert the edge 1108(1) into the labeled MSF 1202 such that the edge 1108(1) may be located (in the labeled MST 1302) between any two nodes in the plurality of nodes 908 that were coupled together before the edge 1108(1) was deleted. As another non-limiting example, the graph component 316 may reinsert the edge 1108(1) into the labeled MSF 1202 such that the edge 1108(1) may be located (in the labeled MST 1302) between any two nodes in the plurality of nodes 908 that were coupled together before the edge 1108(1) was deleted. After such reinsertion, labeled MST 1302 can be considered to be composed of the same nodes and edges as MST 1002, with the only difference being that the nodes and edges in labeled MST 1302 now have corresponding boundary flags or internal flags (e.g., again, these flags can be stored in an auxiliary or separate data table or array). Note that after reinsertion, each pair of trees from the plurality of boundary trees 1204 or from the plurality of internal trees 1206 can be considered to be coupled or connected together by corresponding edges in the plurality of edges 1108. Therefore, they are no longer strictly considered or referred to as "trees". Instead, they can now be considered or referred to as "regions". That is, after edge reinsertion, the plurality of boundary trees 1204 can be referred to as a plurality of boundary regions 1304 (e.g., boundary region 1304(1) can include the same nodes and edges as boundary tree 1204(1); boundary region 1304(p) can include the same nodes and edges as boundary tree 1204(p)). Similarly, after edge reinsertion, the plurality of internal trees 1206 can be referred to as a plurality of internal regions 1306 (e.g., internal region 1306(1) can include the same nodes and edges as internal tree 1206(1); internal region 1306(q) can include the same nodes and edges as internal tree 1206(q)). In other words, each of the plurality of nodes 908 can be considered to have a corresponding label indicating to which of the plurality of regions (non-trees) the node belongs, and each of the plurality of regions can be considered to have a corresponding flag indicating whether the region is a boundary region (e.g., one of 1304) or an internal region (e.g., one of 1306).

[0110] Now, consider Figure 14In various embodiments, the graph component 316 can generate a pixel region adjacency graph 1402 (hereinafter referred to as “PRAG 1402”) based on the labeled MST 1302. In various aspects, the graph component 316 can do this by replacing the plurality of interior regions 1306 with the plurality of region nodes 1404, respectively.

[0111] As a non-limiting example, the graph component 316 may remove the interior region 1306(1) and replace it with the available region node 1404(1). In some cases, the region node 1404(1) may be any node in the interior region 1306(1) (e.g., randomly selected). If the region node 1404(1) is visualized in or on the tile 902, the region node 1404(1) may (but need not) be located or positioned at the geometric centroid of the interior region 1306(1). In any case, the region node 1404(1) may be considered a replacement or substitute for the interior region 1306(1), such that any spatial region or spatial portion of the tile 902 that was previously granularly represented by the interior region 1306(1) may now be considered to be roughly represented by the region node 1404(1) (hence the term "region"). Note that, prior to such replacement or substitution, interior region 1306(1) may have been coupled to one or more other interior regions in plurality of interior regions 1306 or one or more other boundary regions in plurality of boundary regions 1304 via one or more edges in plurality of edges 1108. Therefore, after such replacement or substitution, region node 1404(1) may be coupled to one or more other interior regions in plurality of interior regions 1306 (or region nodes replacing them) or to one or more other boundary regions in plurality of boundary regions 1304 via those one or more edges in plurality of edges 1108.

[0112] As another non-limiting example, the graph component 316 may remove the interior region 1306(q) and replace it with an available region node 1404(q). In some cases, the region node 1404(q) may be any node (e.g., randomly selected) in the interior region 1306(q). As described above, if the region node 1404(q) is visualized in or on the tile 902, the region node 1404(q) may (but need not) be located or positioned at the geometric centroid of the interior region 1306(q). In any case, the region node 1404(q) may be considered a replacement or substitute for the interior region 1306(q), such that any spatial region or portion of the tile 902 that was previously granularly represented by the interior region 1306(q) may now be considered to be roughly represented by the region node 1404(q). As described above, prior to such replacement or substitution, interior region 1306(q) may have been coupled to one or more other interior regions in plurality of interior regions 1306 (or region nodes replacing them) or one or more other boundary regions in plurality of boundary regions 1304 via one or more edges in plurality of edges 1108. Therefore, after such replacement or substitution, region node 1404(q) may be coupled to one or more other interior regions in plurality of interior regions 1306 (or region nodes replacing them) or to one or more other boundary regions in plurality of boundary regions 1304 via those one or more edges in plurality of edges 1108.

[0113] It should be noted that regional nodes 1404 ( 1 ) to regional nodes 1404 ( q ) may be collectively considered to form a plurality of regional nodes 1404 .

[0114] In any case, PRAG 1402 may include a plurality of boundary regions 1304, a plurality of edges 1108, and a plurality of region nodes 1404. Thus, some nodes of PRAG 1402 may be considered to represent individual pixels of tile 902 (e.g., any nodes constituting a plurality of boundary regions 1304), and other nodes of PRAG 1402 may alternatively be considered to represent larger multi-pixel strips or regions of tile 902 (e.g., a plurality of region nodes 1404). Thus, the term "pixel region adjacency graph" may be considered appropriate. Note that PRAG 1402 may be considered to be a novel graph data structure that did not previously exist prior to its design by the present inventors.

[0115] Next, consider Figures 15 and 16. In various embodiments, the graph component 316 can generate a PRAG 1402 for the tile 902, as described above. In various aspects, there can be a tile 1501 (e.g., another one of the plurality of tiles 402) that is adjacent to or otherwise abuts the tile 902. In various instances, the graph component 316 can generate a PRAG 1502 for the tile 1501, as described above. In various cases, the PRAG 1502 can include a plurality of boundary regions 1504, a plurality of region nodes 1506, and a plurality of edges 1508. In various aspects, for any suitable positive integer v, the plurality of boundary regions 1504 can include v regions: boundary region 1504(1) to boundary region 1504(v). In various instances, for any suitable positive integer w, the plurality of region nodes 1506 can include w nodes: region node 1506(1) to region node 1506(w). In various cases, the plurality of edges 1508 may be any edges that were deleted and then reinserted by the graph component 316 during construction of the PRAG 1502 .

[0116] In various aspects, because tile 902 and tile 1501 are adjacent or contiguous to each other within image 304, graph component 316 can merge or combine PRAG 1402 with PRAG 1502. In various examples, such merging or combining can produce a merged pixel region adjacency graph 1510 (hereinafter referred to as "merged PRAG 1510"). In various cases, graph component 316 can facilitate such merging or combining by inserting minimum weight edges between corresponding boundary regions of PRAG 1402 and PRAG 1502.

[0117] More specifically, because tile 902 and tile 1501 are adjacent to each other, a particular boundary of tile 902 may be considered adjacent to or abutting a particular boundary of tile 1501. As a non-limiting example, assume that tile 902 is immediately to the left of tile 1501. In such a case, the right boundary of tile 902 may be adjacent to or abutting the left boundary of tile 1501. As another non-limiting example, assume that tile 902 is immediately below tile 1501. In such a case, the top boundary of tile 902 may be adjacent to or abutting the bottom boundary of tile 1501. As yet another non-limiting example, assume that tile 902 is immediately above tile 1501. In such a case, the bottom boundary of tile 902 may be adjacent to or abutting the top boundary of tile 1501. As yet another non-limiting example, assume that tile 902 is immediately to the right of tile 1501. In such cases, the left border of tile 902 may be adjacent to or abutting the right border of tile 1501 .

[0118] In any case, graph component 316 may identify or otherwise know which particular boundary of tile 902 is adjacent to or abutting which particular boundary of tile 1501. For ease of explanation, these may be referred to as boundary A and boundary B, respectively. That is, boundary A of tile 902 may be adjacent to or abutting boundary B of tile 1501. In various examples, graph component 316 may identify or otherwise know which boundary region of multiple boundary regions 1304 contains any nodes representing pixels located on boundary A of tile 902. For ease of explanation, such regions may be referred to as one or more first-identified boundary regions, and any nodes representing pixels located on boundary A in those one or more first-identified boundary regions may be referred to as first-identified nodes (e.g., if tile 902 is rectilinear and to the left of tile 1501, then any node in PRAG 1402 representing the rightmost column of pixels of tile 902 may be considered to be a first-identified node). Likewise, in various cases, the graph component 316 may identify or otherwise know which of the plurality of boundary regions 1504 contains any nodes representing pixels located on the boundary B of the tile 1501. For ease of explanation, such regions may be referred to as one or more second-identified boundary regions, and any nodes in those one or more second-identified boundary trees representing pixels located on the boundary B may be referred to as second-identified nodes (e.g., if the tile 1501 is rectilinear and to the right of the tile 902, then any nodes in the PRAG 1502 representing the leftmost column of pixels of the tile 1501 may be considered to be second-identified nodes).

[0119] Now, the first identification node and the second identification node can be considered to correspond to each other respectively.In fact, when tile 902 and tile 1501 do not intersect or do not overlap, each first identification node in the first identification node can be considered to be adjacent to or next to the corresponding second identification node in the second identification node.On the other hand, when tile 902 and tile 1501 overlap (for example, share a column or a row of pixels), each first identification node in the first identification node can be considered to be a replica or a copy of the corresponding second identification node in the second identification node.In any case, the first identification node can correspond to the second identification node respectively.

[0120] In various aspects, the graph component 316 can insert a minimum-weight edge (e.g., an edge with weight 0, or an edge whose weight is otherwise less than any suitable threshold) between corresponding pairs of a first identification node and a second identification node. For example, for each given first identification node in the first identification nodes, the given first identification node can correspond to a corresponding second identification node in the second identification nodes, and an edge with a minimum weight (e.g., weight 0 or any other suitable weight) can be inserted between the given first identification node and the corresponding second identification node. This insertion of minimum-weight edges can be considered as joining, merging, or combining one or more first identification boundary regions of PRAG1402 with one or more second identification boundary regions of PRAG1502. After such insertion of minimum-weight edges, one or more first identification boundary regions of PRAG1402 and one or more second identification boundary regions of PRAG1502 can be considered to now form one or more new regions, and such one or more new regions can be considered, labeled, or otherwise designated as internal regions. In various cases, such newly formed internal regions can be referred to as one or more new internal regions 1604. In various aspects, for any suitable positive integer t ≤ max(p, v), the one or more new internal regions 1604 can include t regions: new internal region 1604(1) to new internal region 1604(t). In various instances, any boundary regions remaining in the plurality of boundary regions 1304 and the plurality of boundary regions 1504 after such insertion of minimum-weight edges can be collectively considered to form one or more remaining boundary regions 1602. In various cases, for any suitable positive integer s < p + v, the one or more remaining boundary regions 1602 can include s regions: remaining boundary region 1602(1) to remaining boundary region 1602(s). In effect, the one or more remaining boundary regions 1602 can be considered to be: the union of the plurality of boundary regions 1304 and the plurality of boundary regions 1504; minus either of the plurality of boundary regions 1304 and the plurality of boundary regions 1504 that has been merged via the insertion of minimum-weight edges to create the one or more new internal regions 1604.

[0121] Note that in some instances, the insertion of minimum-weight edges can cause one or more new internal regions 1604 to initially have a cycle or a cyclic path. In various aspects, such a cycle or cyclic path can be removed or eliminated by re-running the Boruvka algorithm (or any other suitable MST-finding algorithm).

[0122] In any case, the creation of one or more new internal regions 1604 can be considered such that the region nodes of PRAG 1402 and PRAG 1502 are retained and the edges that are deleted and then reinserted are not affected. Thus, as shown, creating the merged PRAG 1510 as described herein can cause the merged PRAG 1510 to include: multiple region nodes 1404; multiple region nodes 1506; multiple edges 1108; multiple edges 1508; one or more remaining boundary regions 1602; and one or more new internal regions 1604. In various aspects, the graph component 316 can replace or substitute each new internal region in one or more new internal regions 1604 with a corresponding region node, as described above. As a non-limiting example, the graph component 316 can replace the new internal region 1604(1) with a first new region node, where the first new region node can be randomly or non-randomly selected from the new internal region 1604(1). As another non-limiting example, the graph component 316 can replace the new internal region 1604(t) with a t-th new region node, where the t-th new region node can be randomly or non-randomly selected from the new internal region 1604(t).

[0123] Note that the merged PRAG 1510 can be considered to include fewer boundary regions than the total number of individual boundary regions across PRAG 1402 and PRAG 1502 (e.g., s < p + v). Stated another way, merging or combining PRAGs as described herein can be considered to incrementally or iteratively convert boundary regions to internal regions and thus to region nodes.

[0124] Figures 15 and 16 Illustrates how two adjacent PRAGs (e.g., 1402 and 1502) can be merged together to create a new PRAG. It should be understood that any suitable number of adjacent PRAGs (or new PRAGs) can be merged in this manner.

[0125] Now, consider Figure 17 . In various embodiments, the graph component 316 can generate (as described with respect to Figure 9 ) a corresponding PAG for each of the multiple tiles 402. This can result in multiple PAGs 1702, where the multiple PAGs 1702 can include n PAGs: PAG 1702(1) generated based on tile 402(1) to PAG 1702(n) generated based on tile 402(n).

[0126] In various aspects, the graph component 316 can generate (as described with respect to Figure 10A corresponding MST for each tile in the plurality of PAGs 1702 as described above can generate a plurality of MSTs 1704, wherein the plurality of MSTs 1704 can include n MSTs: MST 1704 (1) generated based on PAG 1702 (1) to MST 1704 (n) generated based on PAG 1702 (n).

[0127] In various examples, the graph component 316 can generate (as with respect to Figure 11 A corresponding MSF for each of the plurality of MSTs 1704 (described above) may be generated. This may generate a plurality of MSFs 1706, wherein the plurality of MSFs 1706 may include n MSFs: MSF 1706 ( 1 ) generated based on MST 1704 ( 1 ) to MSF 1706 ( n ) generated based on MST 1704 ( n ).

[0128] In various cases, the graph component 316 can generate (as with respect to Figure 12 The method further includes generating a corresponding labeled MSF for each MSF in the plurality of MSFs 1706 (described above). This may generate a plurality of labeled MSFs 1708, wherein the plurality of labeled MSFs 1708 may include n labeled MSFs: labeled MSF 1708(1) generated based on MSF 1706(1) through labeled MSF 1708(n) generated based on MSF 1706(n).

[0129] In various aspects, the graph component 316 can generate (as with respect to Figure 13 A corresponding labeled MST for each labeled MSF in the plurality of labeled MSFs 1708 (described above) may be generated. This may generate a plurality of labeled MSTs 1710, where the plurality of labeled MSTs 1710 may include n labeled MSTs: labeled MST 1710 (1) generated based on labeled MSF 1708 (1) through labeled MST 1710 (n) generated based on labeled MSF 1708 (n).

[0130] In various examples, the graph component 316 can generate (as with respect to Figure 14 A corresponding PRAG for each of the plurality of tagged MSTs 1710 (described above) may be generated. This may generate a plurality of PRAGs 1712, wherein the plurality of PRAGs 1712 may include n PRAGs: PRAG 1712(1) generated based on tagged MST 1710(1) through PRAG 1712(n) generated based on tagged MST 1710(n).

[0131] In various cases, the graph component 316 may merge or combine all of the multiple PRAGs 1712 (e.g., with respect to Figures 15 and 16As described above, each iteration of such merging or combining can be considered as incrementally converting the boundary regions across multiple PRAGs 1712 into region nodes. Therefore, once all multiple PRAGs 1712 are merged or combined, the resulting graph structure can be considered to include no boundary regions at all. Instead, the resulting graph structure can only include region nodes coupled together by any edges that were deleted and then reinserted during PRAG construction. Therefore, the resulting graph structure can be considered as a RAG 802.

[0132] Figures 18 to 26 Non-limiting examples are illustrated regarding various aspects described herein.

[0133] Figure 18 Tile 1800 is illustrated. Specifically, tile 1800 is a square tile from a real-world image captured by a real-world scientific instrument. Specifically, tile 1800 is positioned at or located in the upper left corner of the real-world image. Thus, there are no tiles positioned above or located above tile 1800, and there are no tiles positioned to or located to the left of tile 1800. However, there are tiles positioned to or located to the right or below tile 1800. Therefore, tile 1800 can be considered to have only two borders: a right border; and a bottom border.

[0134] Figure 19 The MST 1900 calculated for tile 1800 is illustrated. Specifically, Figure 19 The black dots in represent nodes of MST 1900, while the white lines represent edges of MST 1900. To help illustrate how MST 1900 carries spatial importance, Figure 19 MST 1900 is depicted as superimposed or overlaid on tile 1800 .

[0135] Figure 20 The labeled MST 2000 calculated from MST 1900 is illustrated. Figure 20 Different shading in indicates edges or nodes belonging to different regions (e.g., belonging to different boundary regions or belonging to different interior regions). Again, to help illustrate spatial importance, Figure 20 The labeled MST 2000 is depicted as superimposed or overlaid on tile 1800 .

[0136] Figure 21 PRAG 2100 is illustrated as calculated from the labeled MST 2000. Again, to help illustrate the spatial importance, Figure 21PRAG 2100 is depicted as being superimposed or overlaid on tile 1800. As shown, PRAG 2100 includes a high concentration of nodes along the lower border of tile 1800 and along its right border. This high concentration region of nodes can be considered to belong to the boundary regions of the labeled MST 2000. As also shown, PRAG 2100 includes a very sparse, low concentration of nodes in regions of tile 1800 that are outside of those boundary regions. This sparse, low concentration region of nodes can be considered to be regions of the labeled MST 2000 where nodes are replaced from the interior regions. In this non-limiting example, each interior region is replaced by a random node from that interior region. Note that Figure 21 An edge that is significantly longer in can be considered to be any edge that was deleted and then reinserted during the construction of PRAG 2100. In other words, Figure 21 The edges that are significantly longer in the middle may be considered to be any edges that previously connected the corresponding internal region of the marked MST 2000 to other internal regions of the marked MST 2000 or to a border region of the marked MST 2000, and such edges may now be considered to connect the corresponding region nodes of PRAG 2100 to other region nodes or to a border region.

[0137] Now, Figure 22 Tile 2200 is depicted as being adjacent to or abutting tile 1800. Specifically, in the real-world image from which tile 1800 was extracted, tile 2200 is immediately to the right of tile 1800. Other tiles are to the right of tile 2200 or below tile 2200, but no tiles are above tile 2200. Thus, tile 2200 can be considered to have three boundaries: a left boundary; a right boundary; and a bottom boundary.

[0138] Figure 23 PRAG 2300 is illustrated as calculated for tile 2200. As above, to help illustrate spatial importance, Figure 23 PRAG 2300 is depicted as being superimposed or overlaid on tile 2200. As shown, PRAG 2300 includes a high concentration of nodes along the left border of tile 2200, along its bottom border, and along its right border. Such high concentration areas of nodes can be considered to belong to the border regions of tile 2200. As also shown, PRAG 2300 includes a very sparse, low concentration of nodes in areas of tile 2200 that are outside of those border regions. Such sparse, low concentration areas of nodes can be considered to be areas of the interior of tile 2200 where nodes have been replaced. As noted above, Figure 23 An apparently long edge may be considered to be any edge that was deleted during construction of PRAG 2300 and then reinserted.

[0139] Figure 24 2200。 In any case, any boundary regions of the merged PRAG 2100 and PRAG 2300 may be considered to collectively form one or more new interior regions (e.g., as described above, if minimum weight edge insertion creates cyclic paths, those cyclic paths may be eliminated via Boruvka's algorithm). Figure 24 Not shown in , but these new internal regions can then be replaced with new region nodes respectively.

[0140] Figure 25 Illustrate the example of combining three different tiles (e.g., in Figure 25 A merged PRAG 2500 is obtained by combining three PRAGs (a first tile at the upper left of the image; a second tile to the right of the first tile; and a third tile below the first tile). Figure 25 This may be considered to illustrate a non-limiting example of merging more than two PRAGs at a time. In general, any suitable number of PRAGs may be merged at any given time (eg, not limited to merging only two PRAGs at a time).

[0141] Figure 26 2600 is illustrated for a real-world image captured by a real-world scientific instrument, created in a tiled manner as described herein. Figure 26 The white lines in can be thought of as edges. Specifically, Figure 26 The white lines in can be considered to represent edges between corresponding region nodes of RAG 2600. Therefore, RAG 2600 can be considered to be a coarser, much less memory intensive representation of the real-world image.

[0142] In any case, the map component 316 can generate the RAG 802 for the image 304 based on the plurality of tiles 402. As described herein, the map component 316 can accomplish this generation by utilizing the plurality of PRAGs 1712.

[0143] Figure 27 Illustrated is a block diagram of an example non-limiting system including one or more marker-based watershed segmentation basins that can facilitate tile region adjacency graph computation via pixel region adjacency graphs according to one or more embodiments described herein.

[0144] In various embodiments, the execution component 318 can electronically perform marker-based watershed segmentation on the RAG 802. In various aspects, such application or execution of marker-based watershed segmentation can generate one or more watershed segmentation basins 2702 (also referred to as one or more marker-based watershed segmentation basins 2702). In various examples, the one or more watershed segmentation basins 2702 can be any suitable electronic data having any suitable format, size, or dimensions that can illustrate, depict, represent, or otherwise indicate the location of corresponding marker-based watershed separation lines or boundaries for the RAG 802 and, therefore, for the image 304. It is noted that, due to the potentially large size of the image 304 and the limited processing power of the computerized workstation of the scientific instrument 302, performing such marker-based watershed segmentation on the entire image 304 may not be feasible. It is also noted that, due to the phenomenon of marker-based watershed bleeding caused by local-global discrepancies, performing such marker-based watershed segmentation individually or locally on multiple tiles 402 may not be reliable. Despite these challenges, the system 306 is still able to reliably or accurately generate one or more watershed segmentation basins 2702 due to the specific implementation of the plurality of PRAGs 1712 described herein. In fact, the prior art does not know how to generate RAGs for an image in a tiled context. However, the present inventors have devised a technique for creating such RAGs, and this technique may involve utilizing a novel graph structure that the present inventors refer to as PRAGs.

[0145] In various embodiments, the execution component 318 can electronically send the one or more watershed segmentation basins 2702 to any suitable computing device. In various other embodiments, the execution component 318 can electronically present the one or more watershed segmentation basins 2702 on any suitable electronic display, such as a computer screen or a computer monitor. Thus, any user or technician associated with the scientific instrument 302 can inspect or view the one or more watershed segmentation basins 2702.

[0146] It should be understood that, in various embodiments, the execution component 318 can perform any other suitable type of analysis on the RAG 802. In other words, the execution component 318 is not limited to performing only marker-based watershed segmentation. In fact, there may be other types of analysis or algorithms that cannot be properly or reliably performed in a tile-by-tile manner, but can be properly or reliably performed on the RAG. Any of these analyses or algorithms can be performed or applied by the execution component 318 on the RAG 802.

[0147] The various embodiments described herein may relate to the following process flow: tile to PAG, PAG to MST, MST to MSF, MSF to labeled MSF, labeled MSF to labeled MST, and labeled MST to PRAG. It should be understood that this process flow is merely a non-limiting example for ease of explanation and illustration. In fact, this process flow helps to explain and illustrate the various concepts conveyed herein in detail, but it should be understood that the various parts or steps in this process flow can be combined together or even omitted in various embodiments to improve computational efficiency. As a non-limiting example, for any given set of root nodes, a PAG can be directly converted to an MSF (e.g., to skip the intermediate structure of an MST). As another non-limiting example, a PAG can be directly converted to a labeled MST (e.g., to skip the intermediate structure of an MST, MSF, and a labeled MSF). Regardless of what particular intermediate structures may be obtained or omitted in any given implementation of the various embodiments described herein, such embodiments may ultimately involve computing a PRAG for a corresponding tile of an image, where the PRAG may contain boundary regions for the corresponding tile, and where the PRAG may contain region nodes rather than interior regions for the corresponding tile.

[0148] Figures 28 to 30 An example non-limiting algorithm that can facilitate computation of a tile region adjacency graph via a pixel region adjacency graph according to one or more embodiments described herein is illustrated. Specifically, Figures 28 to 30Algorithms 1, 2, 3, 4, and 5 are illustrated, and the inventors utilize these algorithms to practice the various embodiments described herein. The following discussion relates to various aspects of such algorithms, as well as various mathematical symbols that may be useful when reading such algorithms. Note that the following mathematical symbols may utilize some of the variables (e.g., i, j, n, k) that have been utilized above, and further note that the following mathematical symbols may utilize some variables more than once in different contexts. It should be understood that, unless otherwise specified or otherwise clear, mathematical symbols are local rather than global. Therefore, a single variable (e.g., k) may be used in multiple different locations or contexts to refer to multiple different things (e.g., the number of roots in one context, the nodes or pixels in another context, the summation or integration index in yet another context). In contrast to global symbols, this default of local symbols is to avoid the situation where variables are exhausted.

[0149] A graph G can be a pair G = (V, E), where V and E can be finite sets. An element v∈V can be called a vertex or node of the graph G, and an element can be called the edge of graph G. Edge e i,j , can be considered to connect or couple node i to node j. In such cases, node i and node j can be considered to be adjacent or otherwise neighbors of each other. Given a graph G = (V, E), if and only if and When , a graph G′=(V′,E′) can be called a subgraph of G. An edge-weighted graph G can be a triple G=(V,E,W), where (V,E) is a graph, and where W can be the set of edges E to For each edge e of G i,j , there can be a weight w i,j =W(e i,j ). The path π from node i to node k in a graph G = (V, E) can be written as π = (e i,j ,e j,l ,…,e k-2,k-1 ,e k-1,k ). The set of all paths from node i to node k can be represented as Π(i,k). A connected component G′=(V′,E′) of a graph G=(V,E) can be a subgraph of G such that for each pair of different nodes in G′, there is a path in G′ connecting the pair of different nodes. A graph G can be called connected if G itself is a connected component. A tree T can be a connected graph without cycles (e.g., no cyclic paths). A graph F without cycles and that is not connected can be called a forest. When a connected graph G=(V,E) is given, the spanning tree T=(V,E T ) can be a connected graph without cycles, such that The spanning forest F of G=(V,EF ) can be a non-connected graph without cycles, such that When given an edge-weighted connected graph G = (V, E, W), the minimum spanning tree problem can involve finding a spanning tree of G Make T * The sum of the edge weights is minimized. When a weighted connected graph G = (V, E, W) is given, the minimum spanning forest problem can involve finding k different root nodes t1,…,t in G. k Find the spanning forest of G for any set Make F * Each distinct tree of contains exactly one root node among k distinct root nodes (e.g., the corresponding root node), and such that F * The sum of the edge weights is the smallest. When a graph G = (V, E, W) is given, the minimum spanning tree of G is can be computed via any suitable algorithm (e.g., Boruvka algorithm), and the minimum spanning forest of G We can target the root nodes t1,…,t in G k Any set of is computed as follows: for every pair (t i ,t k ), determine T * Check whether there is a path coupling the pair of root nodes, and if so, remove the edge with the largest weight along the path.

[0150] In various embodiments, the present inventors have designed Figures 28 to 30 1702 ), and the inventors have utilized such algorithms to practice various embodiments described herein. Specifically, Algorithm 3 depicts a version of Boruvka's algorithm that can compute an MST (e.g., one of 1704 ) from a given graph (e.g., one of 1702 ); Algorithm 4 depicts a modified novel version of Boruvka's algorithm that can compute a labeled MST (e.g., one of 1710 ) from a given graph (e.g., one of 1702 ); Algorithm 5 depicts a novel algorithm that can compute a PRAG (e.g., one of 1712 ) from a given labeled graph (e.g., one of 1710 ); and Algorithms 1-2 depict auxiliary processes utilized or called by Algorithms 3, 4, or 5.

[0151] First, consider Algorithm 3. Algorithm 3 aims to compute the MST of a given graph. The input may include a graph with vertices V and edges E, and the output may be the resulting MST. Algorithm 3 may begin by initializing the number of trees to be the same as the number of edges in the graph. It may then enter a loop that continues until only one tree remains. In each iteration, Algorithm 3 may perform the following steps. It may determine the lowest weight edge incident to each node by calling the function "setLowestEdge(V, E)" described in Algorithm 1 and may store the result in the array "lowestEdge". For each node v in V, Algorithm 3 may retrieve the lowest weight edge incident to v from the "lowestEdge" array. If the retrieved edge is not equal to -1 (indicating that the edge was found), Algorithm 3 may continue processing it. Specifically, Algorithm 3 may update the "lowestEdge" array by setting the value of the current vertex v to -1, thereby indicating that the lowest weight edge for that vertex has been processed. Algorithm 3 may then identify the canonical representatives (root nodes) of the source and target vertices of the current edge, denoted as a and b, respectively. If the canonical representations a and b are different, Algorithm 3 can perform a union operation that can merge the trees rooted at a and b into a single tree. The current edge can then be added to the MST, and the number of trees can be decremented by 1. Algorithm 3 can continue this process until only one tree remains, indicating that the MST has been calculated. The resulting MST can be stored. In summary, Algorithm 3 (Boruvka's algorithm) can iteratively select the lowest weight edge from each node, merge the corresponding trees, and gradually construct the MST.

[0152] Now, consider Algorithm 4. Algorithm 4 is designed by the inventors to calculate a labeled MST (e.g., one of 1710) for any given graph (e.g., one of 1702). The input to Algorithm 4 may include a graph with vertices V and edges E, as well as a label array label and a boundary flag border. The output of Algorithm 4 may be the resulting labeled MST. Algorithm 4 may begin by initializing the number of trees to be the same as the number of edges in the graph. Algorithm 4 may include an operation to update the label array label based on the boundary flag border, as shown in Algorithm 2. This operation may be specifically designed or intended to manage the boundary nodes of the graph by treating them as labeled nodes. The number of expected trees may be set to the number of nodes in the graph. Algorithm 4 may then enter a loop that continues until the number of trees in the previous iteration is the same as in the current iteration. In each iteration, Algorithm 4 may perform the following steps. It may determine the lowest weight edge incident to each node by calling the function "setLowestEdge(V,E)" from Algorithm 1, and may store the result in the array "lowestEdge". For each node v in V, Algorithm 4 can retrieve the lowest-weight edge incident to v from the "lowestEdge" array. If the retrieved edge is not equal to -1 (indicating that the edge was found), Algorithm 4 can continue processing it. Specifically, Algorithm 4 can identify the canonical representatives (root nodes) of the source and target vertices of the current edge, denoted as a and b, respectively. If the canonical representatives a and b are different and their labels are the same (same-rooted tree or background) or the label of the current node v is 0 (rainfall process), Algorithm 4 can perform a union operation with label management. This operation merges the trees rooted at a and b into a single tree while preserving the labels. The current edge can be added to the MST, and the number of trees can be decremented by 1. After computing the minimum spanning forest (MSF), Algorithm 4 can propagate the canonical representatives' labels to their corresponding nodes. Finally, Algorithm 4 can add the remaining edges to construct the MST, iterating until only one tree remains. In each iteration, Algorithm 4 can perform similar steps as before, except that the label condition can be removed. In summary, Algorithm 4 can compute the labeled MST by utilizing a modified version of Boruvka's algorithm that incorporates labeling and boundary management.

[0153] Once the labeled MST is obtained, it can be simplified to a PRAG by clustering nodes belonging to the same non-boundary regions / trees into corresponding region nodes. The PRAG can therefore be a graph that contains as many nodes as there are different regions, in addition to any nodes belonging to the boundary trees in the labeled MST. The set of edges may include any edge connecting two nodes belonging to different regions / trees, as well as any edge connecting any two nodes belonging to boundary regions / trees. In order to maintain the link between the nodes of the PRAG and the image domain (e.g., the pixels of any tile represented by the PRAG), an array vertexMap may be constructed together with the PRAG. It may indicate for each node of the input graph (e.g., for each vertex) the index of the region / tree to which it belongs in the PRAG. This allows the pixel-by-pixel labeling of the tiles to be obtained from the labeling of the PRAG.

[0154] Algorithm 5 is a novel algorithm designed by the inventors to achieve this simplification. As input, Algorithm 5 can adopt a graph and array that associates corresponding labels with each of its nodes. Nodes belonging to a border region / tree can have a label "B". The edges of the graph can be considered sequentially by Algorithm 5. If the given node of the edge belongs to a border region / tree, Algorithm 5 can add the given node to PRAG. If the given node does not belong to a border region / tree, Algorithm 5 can use a mapping to determine whether the label associated with the given node has been found (e.g., lutLabel can be considered to be a pseudo-array for tracking whether the label of a particular region / tree has been represented in PRAG). If the label associated with the given node has not yet been represented by a region node in PRAG, Algorithm 5 can add the given node to PRAG, which can now be considered to be a region node in PRAG. If the label associated with the given node has already been represented by a region node in PRAG, the given node can be associated with any region node in PRAG that has been associated with the label of the given node. Once the nodes of the edge have been processed in this way, the edge itself can be added to the PRAG if and only if the two nodes of the edge are associated with different nodes in the PRAG (e.g., any edge whose two nodes are represented by the same region node in the PRAG can be omitted from the PRAG).

[0155] Once a PRAG has been computed for each tile, all such PRAGs can be merged together, resulting in a RAG containing only region nodes and the edges coupling them. To do this efficiently, each pair of adjacent tiles can have an overlap of one pixel row or one pixel column, as appropriate. This allows matching two adjacent PRAGs in linear time at the expense of maintaining a boundary list containing indices of regions / trees shared between the two tiles. Equivalent nodes can be connected only by zero-weight edges, rather than replacing the nodes of the PRAG with their replicas.

[0156] Although the disclosure herein primarily describes various embodiments as implementing minimum spanning trees and minimum spanning forests, for ease of explanation, these are merely non-limiting examples. It should be understood that various embodiments described herein may alternatively be facilitated by using maximum spanning trees or maximum spanning forests instead.

[0157] Note that the terms "pixel adjacency map" and "pixel region adjacency map" are used herein regardless of whether image 304 is composed of pixels or voxels. This is for ease of explanation. It should be understood that, where appropriate, a "pixel adjacency map" can alternatively be referred to as a "voxel adjacency map." Similarly, it should be understood that, where appropriate, a "pixel region adjacency map" can alternatively be referred to as a "voxel region adjacency map."

[0158] In various embodiments, the execution component 318 can electronically calculate or compute the amount of computer memory consumed by the creation of the RAG 802. Specifically, the inventors used C++ to practice one or more embodiments.

[0159] In this practice, boundaries are stored as labels to reduce memory usage. The six reserved values ​​for label are as follows: 0 = intersection, 1 = east boundary, 2 = west boundary, 3 = north boundary, 4 = south boundary, and 5 = background. This labeling scheme avoids having to store boundaries in a separate array or table. Additionally, instead of storing a label for each edge, edges can be categorized by label. In practice, some edges have different source and destination labels and can therefore be assigned label 0, meaning that such edges are the intersection between two different labels. By categorizing edges in this way, counts for each label can be stored instead of an extended array that explicitly identifies the corresponding label for each edge. For example, the following two values ​​can be stored: labels[0] = 123, and labels[1] = 223. These can be interpreted to mean that the first 123 edges have label 0, and the next 100 edges have label 1. Using this technique, the memory consumption associated with label tracking can be greatly compressed or reduced.

[0160] In this practice, the pipeline responsible for the creation and processing of tiles is defined with two parameters in order to have fine control over memory consumption: tileSize and tileBatching. The pipeline is multi-threaded and uses a thread pool for tile processing tasks. Specifically, tileBatching represents the number of tiles that will be processed in parallel and then merged. As an example, if there are 12 threads available, tileBatching can default to 11, and the twelfth thread can merge the 11 PRAGs created by the first 11 threads respectively. Thus, if tileSize is set to 1024, 11 tiles of size 1024×1024 pixels can be processed in parallel, and when all those tiles are processed, the merging thread can merge and simplify them. With this type of specific implementation, the maximum theoretical size of memory consumption can be defined as follows:

[0161] sizeof(ExtendedEdge)*tileSize2*tileBatching+inputTileImage*tileBatching+inputSeedsImage*tileBatching

[0162] The ExtendedEdge can be defined as follows:

[0163]

[0164] / / labels

[0165] LABEL_TYPE sl; / / source label

[0166] LABEL_TYPE tl; / / target label

[0167] / / tile indexes

[0168] TILE_TYPE sti; / / source tile index

[0169] TILE_TYPE tti; / / target tile index

[0170] / / weight

[0171] WEIGHT_TYPE w;

[0172] }

[0173] Where inputTileImage can be the in-memory size of the tile, and where inputSeedImage can be the in-memory size of any seed image associated with the tile (e.g., any larger image from which the tile is cut or extracted). Thus, based on the input parameters, the maximum memory consumption can be customized or trimmed by adjusting the parameters (e.g., tileSize, tileBatching) according to the memory or processing power of the user's computerized workstation. The inventors have found that for an image of size 20,000×20,000 pixels, a tile size of 1024×1024 pixels for a total of 12 threads minimizes memory consumption.

[0174] The scientific instrument systems, methods, or techniques disclosed herein may include (e.g., Figure 33 The user local computing device 3320 discussed herein interacts with a human user. These interactions may include providing information to the user (e.g., about scientific instruments such as Figure 33 information about the operation of a scientific instrument such as a scientific instrument 3310, information about samples being analyzed or other tests or measurements being performed by the scientific instrument, information retrieved from a local or remote database, or other information) or provide the user with the option of inputting commands (e.g., controlling a scientific instrument such as Figure 33 In some embodiments, these interactions may be performed via a graphical user interface (GUI) that includes a display device (e.g., a graphical user interface such as a display device such as a computer program product 3310, a graphics card, or a graphics card). Figure 32 3210) that provides output to the user and / or prompts the user (e.g., via the herein referenced Figure 32 Input may be provided by one or more input devices, such as a keyboard, mouse, trackpad, or touch screen, included in the other I / O devices 3212 discussed. The scientific instrument systems, methods, or techniques disclosed herein may include any GUI suitable for interacting with a user.

[0175] Figure 31 An example graphical user interface 3100 (hereinafter referred to as "GUI 3100") is depicted that can be used to perform some or all of the supporting methods or techniques disclosed herein, according to various embodiments. In various aspects, GUI 3100 can be provided on a scientific instrument support system (e.g., as described herein with reference to Figure 33 The computing device of the scientific instrument support system 3300 discussed herein (e.g., Figure 32 Any suitable electronic display (e.g., the computing device 3200 discussed herein) Figure 32The display device 3210 discussed herein) and the user or technician may use any suitable input device (e.g., Figure 32 The user interface 3102 may interact with the GUI 3100 using any of the other I / O devices 3212 discussed herein and input technologies (e.g., cursor movement, motion capture, facial recognition, gesture detection, voice recognition, button activation).

[0176] GUI 3100 may include a data display area 3102 , a data analysis area 3104 , a scientific instrument control area 3106 , and a settings area 3108 . Figure 31 The specific number and arrangement of regions depicted are merely exemplary, and any number and arrangement of regions (including any desired features) may be included in other embodiments of GUI 3100.

[0177] The data display area 3102 may display data generated by a scientific instrument (e.g., Figure 33 Data generated by the scientific instrument 3310 in question.

[0178] The data analysis area 3104 can display any suitable data analysis results (e.g., the results of analyzing the data illustrated in the data display area 3102 or other data). In some embodiments, the data display area 3102 and the data analysis area 3104 can be combined in the GUI 3100 (e.g., including the data output from the scientific instrument and some analysis of the data in a common graph or area).

[0179] The scientific instrument control area 3106 may include options that allow a user or technician to control the scientific instrument (e.g., Figure 33 For example, the scientific instrument control area 3106 may include configurable parameters for controlling the operation of such a scientific instrument (e.g., a configurable parameter for controlling voltage or current of the scientific instrument, a configurable parameter for controlling the internal temperature of the scientific instrument, or a configurable parameter for controlling the flow rate of a fluid of the scientific instrument).

[0180] The settings area 3108 may include options that allow the user or technician to control any features or functions of the GUI 3100 (or other GUIs) or to perform common computational operations with respect to the data display area 3102 and the data analysis area 3104 (e.g., saving data to a storage device (such as a computer program described herein)). Figure 32 The storage device 3204 in question), sending the data to another user, marking the data).

[0181] As described above, the scientific instrument module 102 may be implemented by one or more computing devices. Figure 32is a block diagram of a computing device 3200 that can perform some or all of the scientific instrument support methods or techniques disclosed herein, according to various embodiments. In some embodiments, the scientific instrument module 102 can be implemented by a single instance of the computing device 3200 or multiple instances of the computing device 3200. In addition, as discussed below, the computing device 3200 (or multiple instances of the computing device) that implements the scientific instrument module 102 can be Figure 33 Part of one or more of scientific instrument 3310, user local computing device 3320, service local computing device 3330 or remote computing device 3340.

[0182] The computing device 3200 is illustrated as having multiple components, but any one or more of these components may be omitted or duplicated depending on the application and settings. In some embodiments, some or all of the components included in the computing device 3200 may be attached to one or more motherboards and enclosed in a housing (e.g., comprising plastic, metal, or other materials). In some embodiments, some of these components may be constructed onto a single system on a chip (SoC) (e.g., the SoC may include one or more instances of the processing device 3202 and one or more instances of the storage device 3204). Additionally, in various embodiments, the computing device 3200 may omit the processor. Figure 32 One or more of the illustrated components may include interface circuitry (not shown) for coupling to one or more omitted 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, computing device 3200 may omit display device 3210, but may include display device interface circuitry (e.g., a connector and driver circuitry) to which display device 3210 may be coupled.

[0183] The computing device 3200 may include a processing device 3202 (e.g., one or more processing devices). As used herein, the term "processing device" may refer to any device or portion of a device that processes electronic data from a register or memory to convert the electronic data into other electronic data that can be stored in the register or memory. The processing device 3202 may 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 in hardware), server processors, or any other suitable processing devices.

[0184] The computing device 3200 may include a storage device 3204 (e.g., one or more storage devices). The storage device 3204 may 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), a hard drive-based memory device, a solid-state memory device, a networked drive, a cloud drive, or any combination of memory devices. In some embodiments, the storage device 3204 may include memory that shares a die with the processing device 3202. In such embodiments, the memory may function as a cache memory and may include, for example, embedded dynamic random access memory (eDRAM) or spin-transfer torque magnetic random access memory (STT-MRAM). In some embodiments, the storage device 3204 may include a non-transitory computer-readable medium having instructions thereon that, when executed by one or more processing devices (e.g., processing device 3202), cause the computing device 3200 to perform any appropriate method or portion of the methods disclosed herein.

[0185] The computing device 3200 may include an interface device 3206 (e.g., one or more instances of the interface device 3206). The interface device 3206 may include one or more communication chips, connectors, or other hardware and software to manage communications between the computing device 3200 and other computing devices. For example, the interface device 3206 may include circuitry for managing wireless communications for transferring data to and from the computing device 3200. The term "wireless" and its derivatives may be used to describe circuits, devices, systems, methods, techniques, and communications channels that can transmit data through a non-solid medium using modulated electromagnetic radiation. The term does not imply that the associated device does not contain any wires, although in some embodiments, it may not. The circuitry included in the interface device 3206 for managing wireless communications may implement any of a variety of wireless standards or protocols, including but not limited to Institute of Electrical and Electronics Engineers (IEEE) standards, including Wi-Fi (IEEE 802.11 series), IEEE 802.16 standards (e.g., IEEE 802.16-2005 amendments), Long Term Evolution (LTE) projects, and any amendments, updates, and / or revisions (e.g., LTE-Advanced projects, Ultra Mobile Broadband (UMB) projects (also known as "3GPP2")). In some embodiments, the circuitry included in the interface device 3206 for managing wireless communications may operate according to Global System for Mobile Communications (GSM), General Packet Radio Service (GPRS), Universal Mobile Telecommunications System (UMTS), High Speed ​​Packet Access (HSPA), Evolved HSPA (E-HSPA), or LTE networks. In some embodiments, the circuitry included in the interface device 3206 for managing wireless communications may operate in accordance with Enhanced Data for GSM Evolution (EDGE), GSM EDGE Radio Access Network (GERAN), Universal Terrestrial Radio Access Network (UTRAN), or Evolved UTRAN (E-UTRAN). In some embodiments, the circuitry included in the interface device 3206 for managing wireless communications may operate in accordance with Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), Digital Enhanced Cordless Telecommunications (DECT), Evolution-Data Optimized (EV-DO), and their derivatives, as well as any other wireless protocols designated as 3G, 4G, 5G, and higher. In some embodiments, the interface device 3206 may include one or more antennas (e.g., one or more antenna arrays) to receive and / or transmit wireless communications.

[0186] In some embodiments, interface device 3206 may include a circuit for managing wired communication, such as electrical communication protocol, optical communication protocol or any other suitable communication protocol. For example, interface device 3206 may include a circuit supporting communication according to Ethernet technology. In some embodiments, interface device 3206 may support both wireless and wired communication, or may support multiple wired communication protocols or multiple wireless communication protocols. For example, a first group of circuits of interface device 3206 may be dedicated to shorter-range wireless communication such as Wi-Fi or Bluetooth, while a second group of circuits of interface device 3206 may be dedicated to longer-range wireless communication such as global positioning system (GPS), EDGE, GPRS, CDMA, WiMAX, LTE, EV-DO, etc. In some embodiments, a first group of circuits of interface device 3206 may be dedicated to wireless communication, while a second group of circuits of interface device 3206 may be dedicated to wired communication.

[0187] The computing device 3200 may include a battery / power circuit 3208. The battery / power circuit 3208 may include one or more energy storage devices (e.g., batteries or capacitors) or circuits for coupling components of the computing device 3200 to an energy source separate from the computing device 3200 (e.g., AC line power).

[0188] Computing device 3200 may include a display device 3210 (e.g., multiple display devices). Display device 3210 may include any visual indicator, such as a heads-up display, a computer monitor, a projector, a touch screen display, a liquid crystal display (LCD), a light-emitting diode display, or a flat panel display.

[0189] The computing device 3200 may include other input / output (I / O) devices 3212. For example, the other I / O devices 3212 may include one or more audio output devices (e.g., speakers, headphones, earbuds, alarms), one or more audio input devices (e.g., microphones or microphone arrays), a positioning device (e.g., a GPS device that communicates with a satellite-based system to receive the location of the computing device 3200), an audio codec, a video codec, a printer, sensors (e.g., thermocouples or other temperature sensors, humidity sensors, pressure sensors, vibration sensors, accelerometers, gyroscopes), an image capture device such as a camera, a keyboard, a cursor control device such as a mouse, stylus, trackball, or touchpad, a barcode reader, a Quick Response (QR) code reader, or a Radio Frequency Identification (RFID) reader.

[0190] The computing device 3200 may have any suitable form factor suitable for its applications and settings, such as a handheld or mobile computing device (e.g., a cell phone, a smartphone, a mobile internet device, a tablet computer, a laptop computer, a netbook computer, an ultrabook computer, a personal digital assistant (PDA), an ultra-mobile personal computer), a desktop computing device, or a server computing device or other networked computing component.

[0191] One or more computing devices implementing any of the scientific instrument modules, methods, or techniques disclosed herein may be part of a scientific instrument support system. Figure 33 is a block diagram of an example scientific instrument support system 3300 in which some or all of the scientific instrument support methods disclosed herein may be performed, according to various embodiments. The scientific instrument modules, methods, or techniques disclosed herein (e.g., scientific instrument module 102, computer-implemented method 200, system 306) may be implemented by one or more of a scientific instrument 3310, a user local computing device 3320, a service local computing device 3330, or a remote computing device 3340 of the scientific instrument support system 3300.

[0192] Any of the scientific instrument 3310, the user local computing device 3320, the service local computing device 3330, or the remote computing device 3340 may include any of the implementations of the computing device 3200, and any of the scientific instrument 3310, the user local computing device 3320, the service local computing device 3330, or the remote computing device 3340 may take the form of any appropriate implementation of the implementation of the computing device 3200.

[0193] Scientific instrument 3310, user local computing device 3320, service local computing device 3330, or remote computing device 3340 may each include a processing device 3302, a storage device 3304, and an interface device 3306. Processing device 3302 may take any suitable form, including any form of processing device 3202, and processing devices 3302 included in different devices among scientific instrument 3310, user local computing device 3320, service local computing device 3330, or remote computing device 3340 may take the same form or different forms. Storage device 3304 may take any suitable form, including any form of storage device 3204, and storage devices 3304 included in different devices among scientific instrument 3310, user local computing device 3320, service local computing device 3330, or remote computing device 3340 may take the same form or different forms. The interface device 3306 may take any suitable form, including any form of the interface device 3206, and the interface devices 3306 included in different devices in the scientific instrument 3310, the user local computing device 3320, the service local computing device 3330, or the remote computing device 3340 may take the same form or different forms.

[0194] The scientific instrument 3310, the user local computing device 3320, the service local computing device 3330, and the remote computing device 3340 can communicate with other elements of the scientific instrument support system 3300 via a communication path 3308. The communication path 3308 can communicatively couple the interface device 3306 of different ones of the elements of the scientific instrument support system 3300, 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 device 3206). Figure 33 The particular scientific instrument support system 3300 depicted includes communication paths between each pair of devices in the scientific instrument 3310, the user local computing device 3320, the service local computing device 3330, and the remote computing device 3340, but this "fully connected" implementation is merely illustrative, and in various embodiments, various of the communication paths 3308 may not be present. For example, in some embodiments, the service local computing device 3330 may lack a direct communication path 3308 between its interface device 3306 and the interface device 3306 of the scientific instrument 3310, but may instead communicate with the scientific instrument 3310 via the communication path 3308 between the service local computing device 3330 and the user local computing device 3320, as well as the communication path 3308 between the user local computing device 3320 and the scientific instrument 3310.

[0195] Scientific instrument 3310 may include any suitable scientific instrument, such as scientific instrument 302 .

[0196] User-local computing device 3320 can be a computing device local to the user of scientific instrument 3310 (e.g., according to any of the embodiments of computing device 3200). In some embodiments, user-local computing device 3320 can also be local to scientific instrument 3310, but this is not necessarily the case; for example, user-local computing device 3320 in a user's home or office can be remote from scientific instrument 3310 but in communication with the scientific instrument so that the user can use user-local computing device 3320 to control or access data from scientific instrument 3310. In some embodiments, user-local computing device 3320 can be a laptop, smartphone, or tablet device. In some embodiments, user-local computing device 3320 can be a portable computing device.

[0197] The service local computing device 3330 can be a computing device local to the entity serving the scientific instrument 3310 (e.g., according to any of the embodiments of the computing device 3200). For example, the service local computing device 3330 can be a device local to the manufacturer of the scientific instrument 3310 or to a third-party service company. In some embodiments, the service local computing device 3330 can communicate (e.g., via a direct communication path 3308 or via multiple "indirect" communication paths 3308, as discussed above) with the scientific instrument 3310, the user local computing device 3320, or the remote computing device 3340 to receive data regarding the operation of the scientific instrument 3310, the user local computing device 3320, or the remote computing device 3340 (e.g., self-test results of the scientific instrument 3310, calibration coefficients used by the scientific instrument 3310, measurements of sensors associated with the scientific instrument 3310). In some embodiments, the service local computing device 3330 can communicate with the scientific instrument 3310, the user local computing device 3320, or the remote computing device 3340 (e.g., via a direct communication path 3308 or via multiple "indirect" communication paths 3308, as discussed above) to transfer data to the scientific instrument 3310, the user local computing device 3320, or the remote computing device 3340 (e.g., to update programming instructions (such as firmware) in the scientific instrument 3310, to initiate execution of a test or calibration sequence in the scientific instrument 3310, to update programming instructions (such as software) in the user local computing device 3320 or the remote computing device 3340). A user of the scientific instrument 3310 can utilize the scientific instrument 3310 or the user local computing device 3320 to communicate with the service local computing device 3330 to report problems with the scientific instrument 3310 or the user local computing device 3320, to request a technician visit to improve the operation of the scientific instrument 3310, to order consumables or replacement parts associated with the scientific instrument 3310, or for other purposes.

[0198] Remote computing device 3340 can be a computing device remote from scientific instrument 3310 or user local computing device 3320 (e.g., according to any of the embodiments of computing device 3200 discussed herein). In some embodiments, remote computing device 3340 can be included in a data center or other large-scale server environment. In some embodiments, remote computing device 3340 can include a network attached storage device (e.g., as part of storage device 3304). Remote computing device 3340 can store data generated by scientific instrument 3310, perform analysis on data generated by scientific instrument 3310 (e.g., according to programming instructions), facilitate communication between user local computing device 3320 and scientific instrument 3310, or facilitate communication between service local computing device 3330 and scientific instrument 3310.

[0199] In some embodiments, the Figure 33 One or more of the illustrated elements of the scientific instrument support system 3300. Additionally, in some embodiments, Figure 33 Multiple of the various elements of the scientific instrument support system 3300 may be present. For example, the scientific instrument support system 3300 may include multiple user-local computing devices 3320 (e.g., different user-local computing devices 3320 associated with different users or located in different locations). As another example, the scientific instrument support system 3300 may include multiple scientific instruments 3310, all of which communicate with a service local computing device 3330 and / or a remote computing device 3340; in such an embodiment, the service local computing device 3330 may monitor these multiple scientific instruments 3310, and the service local computing device 3330 may cause updates or other information to be "broadcasted" to multiple scientific instruments 3310 simultaneously. The different scientific instruments 3310 in the scientific instrument support system 3300 may be close to each other (e.g., in the same room) or far away from each other (e.g., on different floors of a building, in different buildings, in different cities, etc.). In some embodiments, the scientific instrument 3310 can be connected to an Internet of Things (IoT) stack that allows the scientific instrument 3310 to be directed and controlled through a web-based application, a virtual or augmented reality application, a mobile application, or a desktop application. Any of these applications can be accessed by a user operating a user-local computing device 3320 that communicates with the scientific instrument 3310 through an intermediary remote computing device 3340. In some embodiments, the scientific instrument 3310 can be sold by a manufacturer along with one or more associated user-local computing devices 3320 as part of a local scientific instrument computing unit 3312.

[0200] In some embodiments, the different scientific instruments 3310 included in the scientific instrument support system 3300 can be different types of scientific instruments 3310; for example, one scientific instrument 3310 can be a mass spectrometer, while another scientific instrument 3310 can be a chromatograph or an autosampler. In some such embodiments, the remote computing device 3340 or the user's local computing device 3320 can combine data from the different types of scientific instruments 3310 included in the scientific instrument support system 3300.

[0201] In various instances, the machine learning algorithm or model can be implemented in any suitable manner to facilitate any suitable aspect described herein. To facilitate some of the above-mentioned machine learning aspects of the various embodiments, consider the following discussion of artificial intelligence (AI). The various embodiments described herein can employ artificial intelligence to facilitate the automation of one or more features or functions. These components can employ various AI-based schemes to perform the various embodiments / examples disclosed herein. In order to provide or assist in the numerous determinations described herein (e.g., determining, ascertaining, inferring, computing, predicting, prognosing, estimating, deriving, forecasting, detecting, calculating), the components described herein can examine all or a subset of the data to which they are granted access rights, and can provide inferences or determinations of the state of a system or environment from a set of observations such as those captured via events or data. For example, determinations can be employed to identify a specific context or action, or a probability distribution of a state can be generated. These determinations can be probabilistic; that is, a probability distribution of a state of interest is calculated based on a consideration of data and events. Determination can also refer to the techniques employed to compose higher-level events from a collection of events or data.

[0202] Such determination can result in constructing new events or actions from a collection of observed events or stored event data, regardless of whether the events are closely related in time and whether the events and data come from one or several event and data sources. The components disclosed herein can employ various classification (explicitly trained (e.g., via training data) as well as implicitly trained (e.g., via observing behavior, preferences, historical information, receiving external information, etc.)) schemes or systems (e.g., support vector machines, neural networks, expert systems, Bayesian belief networks, fuzzy logic, data fusion engines, etc.) in connection with performing automatic or determined actions related to the claimed subject matter. Thus, the classification scheme or system can be used to automatically learn and perform multiple functions, actions, or determinations.

[0203] The classifier can take the input attribute vector z=(z1,z2,z3,z4,z n) is mapped to the confidence that the input belongs to a certain class, such as f(z) = confidence(class). This classification can use probabilistic or statistical-based analysis (for example, taking into account the utility and cost of the analysis) to determine the action to be automatically performed. Support vector machines (SVM) can be an example of a classifier that can be used. SVM operates by finding a hypersurface in the space of possible inputs, where the hypersurface attempts to separate triggering criteria from non-triggering events. Intuitively, this makes the classification correct for test data that is close to but not the same as the training data. Other directed and non-directed model classification methods include, for example, naive Bayes, Bayesian networks, decision trees, neural networks, fuzzy logic models, or probabilistic classification models that provide different independent patterns, any of which can be used. The classification used in this article also includes statistical regression for developing priority models.

[0204] To provide additional context for the various embodiments described herein, Figure 34 The following discussion is intended to provide a brief, general description of a suitable computing environment 3400 in which various embodiments of the embodiments described herein may be implemented. Although the embodiments have been described above in the general context of computer-executable instructions that may be executed on one or more computers, those skilled in the art will recognize that the embodiments may also be implemented in conjunction with other program modules or as a combination of hardware and software.

[0205] Generally, program modules include routines, programs, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Moreover, those skilled in the art will appreciate that the methods of the present invention can be practiced with other computer system configurations, including single-processor or multi-processor computer systems, minicomputers, mainframe computers, Internet of Things (IoT) devices, distributed computing systems, as well as personal computers, handheld computing devices, microprocessor-based or programmable consumer electronics, etc., each of which is operatively coupled to one or more associated devices.

[0206] The embodiments shown herein can also 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 may be located in both local and remote memory storage devices.

[0207] Computing devices typically include various media, which may include computer-readable storage media, machine-readable storage media, or communication media, as used herein differently, as shown below. A computer-readable storage medium or machine-readable storage medium can be any available storage medium that can be accessed by a computer, and includes volatile and non-volatile media, removable and non-removable media. By way of example and not limitation, a computer-readable storage medium or machine-readable storage medium can be implemented in conjunction with any method or technology for storing information, such as computer-readable or machine-readable instructions, program modules, structured data, or unstructured data.

[0208] Computer-readable storage media may include, but are not limited to, random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, compact disc read-only memory (CD ROM), digital versatile disc (DVD), Blu-ray disc (BD) 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 other tangible or non-transitory media that can be used to store the desired information. In this regard, the terms "tangible" or "non-transitory" as applied to storage, memory, or computer-readable media herein should be understood as excluding only the propagation of transient signals themselves as a modifier and not as a disclaimer of all standard storage, memory, or computer-readable media that are not merely propagation of transient signals themselves.

[0209] Computer-readable storage media can be accessed by one or more local or remote computing devices, eg, via access requests, queries, or other data retrieval protocols, for various operations regarding the information stored by the media.

[0210] 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, such as a carrier wave or other transport mechanism), and includes any information delivery or transmission media. The term "modulated data signal" or signal refers to a signal that has one or more of its characteristics set or changed so as to encode information in one or more signals. 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).

[0211] Reference again Figure 34, an example environment 3400 for implementing various embodiments of various aspects described herein includes a computer 3402 including a processing unit 3404, a system memory 3406, and a system bus 3408. The system bus 3408 couples system components including, but not limited to, the system memory 3406 to the processing unit 3404. The processing unit 3404 can be any of a variety of commercially available processors. Dual microprocessors and other multi-processor architectures can also be used as the processing unit 3404.

[0212] The system bus 3408 can be any of several types of bus structures and can further be interconnected with a memory bus (with or without a memory controller), a peripheral bus, and a local bus using any of a variety of commercially available bus architectures. The system memory 3406 includes ROM 3410 and RAM 3412. A basic input / output system (BIOS), containing the basic routines that help transfer information between elements within the computer 3402, such as during startup, can be stored in a nonvolatile memory such as ROM, erasable programmable read-only memory (EPROM), or EEPROM. RAM 3412 can also include high-speed RAM, such as static RAM for caching data.

[0213] Computer 3402 also includes an internal hard disk drive (HDD) 3414 (e.g., EIDE, SATA), one or more external storage devices 3416 (e.g., a magnetic floppy disk drive (FDD) 3416, a memory stick or flash drive reader, a memory card reader, etc.), and a drive 3420 (e.g., such as a solid-state drive, an optical drive) that can read from or write to a disk 3422 (such as a CD-ROM disk, a DVD, a BD, etc.). Alternatively, in the case of a solid-state drive, disk 3422 would not be included unless it is separate. Although internal HDD 3414 is illustrated as being located within computer 3402, internal HDD 3414 can also be configured for use externally in a suitable chassis (not shown). In addition, although not shown in environment 3400, a solid-state drive (SSD) can be used in addition to or in place of HDD 3414. The HDD 3414, external storage device 3416, and drive 3420 can be connected to the system bus 3408 via an HDD interface 3424, an external storage interface 3426, and a drive interface 3428, respectively. The interface 3424 for an external drive implementation may include at least one or both of Universal Serial Bus (USB) and Institute of Electrical and Electronics Engineers (IEEE) 1394 interface technologies. Other external drive connection technologies are also contemplated by the embodiments described herein.

[0214] The drives and their associated computer-readable storage media provide non-volatile storage of data, data structures, computer-executable instructions, and the like. For computer 3402, the drives and storage media accommodate the storage of any data in a suitable digital format. Although the above description of computer-readable storage media refers to corresponding types of storage devices, those skilled in the art will appreciate that other types of storage media (whether currently existing or developed in the future) that can be read by a computer may also be used in the example operating environment, and further, any such storage media may contain computer-executable instructions for performing the methods described herein.

[0215] A number of program modules may be stored in the drives and RAM 3412, including an operating system 3430, one or more application programs 3432, other program modules 3434, and program data 3436. All or portions of the operating system, application programs, modules, or data may also be cached in RAM 3412. The systems and methods described herein may be implemented using various commercially available operating systems or combinations of operating systems.

[0216] Computer 3402 may optionally include emulation technology. For example, a hypervisor (not shown) or other middleware may emulate the hardware environment for operating system 3430, and the emulated hardware may optionally be different from the hardware of the operating system. Figure 34 34. The illustrated hardware. In this embodiment, operating system 3430 may comprise one of multiple virtual machines (VMs) hosted at computer 3402. In addition, operating system 3430 may provide a runtime environment, such as a Java runtime environment or a .NET framework, for application 3432. A runtime environment is a consistent execution environment that allows application 3432 to run on any operating system that includes a runtime environment. Similarly, operating system 3430 may support containers, and application 3432 may be in the form of containers, which are lightweight, standalone, executable software packages that include, for example, the application's code, runtime, system tools, system libraries, and settings.

[0217] Furthermore, computer 3402 may 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 in time and waits for the hash to match a secure value before loading the next boot component. This process can be performed at any layer in the code execution stack of computer 3402, for example, at the application execution level or the operating system (OS) kernel level, thereby achieving security for code execution at any level.

[0218] A user can enter commands and information into the computer 3402 through one or more wired / wireless input devices (e.g., a keyboard 3438, a touch screen 3440, and a pointing device such as a mouse 3442). Other input devices (not shown) may include a microphone, an infrared (IR) remote control, a radio frequency (RF) remote control, or other remote control, a joystick, a virtual reality controller or headset, a game controller, 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 input device (e.g., a fingerprint or iris scanner), and the like. These and other input devices are typically connected to the processing unit 3404 through an input device interface 3444, which can be coupled to the system bus 3408, but may also be connected through other interfaces such as a parallel port, an IEEE 1394 serial port, a game port, a USB port, an IR port, a memory card ... Interface, etc.

[0219] A monitor 3446 or other type of display device may also be connected to the system bus 3408 via an interface, such as a video adapter 3448. In addition to the monitor 3446, computers typically include other peripheral output devices (not shown), such as speakers, printers, and the like.

[0220] Computer 3402 can operate in a networked environment using logical connections to one or more remote computers, such as remote computer 3450, via wired or wireless communications. Remote computer 3450 can be a workstation, server computer, router, personal computer, portable computer, microprocessor-based entertainment device, peer device, or other common network node, and typically includes many or all of the elements described with respect to computer 3402, with only memory / storage device 3452 being illustrated for simplicity. The depicted logical connections include wired / wireless connections to a local area network (LAN) 3454 or a larger network, such as a wide area network (WAN) 3456. Such LAN and WAN networking environments are common in offices and companies and facilitate the establishment of enterprise-wide computer networks, such as intranets, all of which can be connected to a global communications network, such as the Internet.

[0221] When used in a LAN networking environment, the computer 3402 can be connected to the local network 3454 through a wired or wireless communication network interface or adapter 3458. The adapter 3458 can facilitate wired or wireless communication with the LAN 3454, which can also include a wireless access point (AP) provided thereon for communicating with the adapter 3458 in a wireless mode.

[0222] When used in a WAN networking environment, the computer 3402 may include a modem 3460 or may be connected to a communication server on the WAN 3456 via other means for establishing communications over the WAN 3456 (such as over the Internet). The modem 3460 may be connected to the system bus 3408 via the input device interface 3444 and may be internal or external and may be a wired or wireless device. In a networked environment, program modules depicted relative to the computer 3402 or portions thereof may be stored in the remote memory / storage device 3452. It will be appreciated that the network connections shown are exemplary and that other means for establishing a communications link between the computers may be used.

[0223] When used in a LAN or WAN networking environment, computer 3402 can access cloud storage systems or other network-based storage systems, such as, but not limited to, network virtual machines that provide one or more aspects of storage or processing of information, in addition to or as an alternative to external storage devices 3416 as described above. Typically, a connection between computer 3402 and a cloud storage system can be established over LAN 3454 or WAN 3456, for example, via adapter 3458 or modem 3460, respectively. When computer 3402 is connected to an associated cloud storage system, external storage interface 3426 can manage the storage provided by the cloud storage system with the assistance of adapter 3458 or modem 3460, similar to other types of external storage. For example, external storage interface 3426 can be configured to provide access to cloud storage sources as if they were physically connected to computer 3402.

[0224] The computer 3402 is operable to communicate with any wireless device or entity that is operatively arranged to communicate wirelessly (e.g., printers, scanners, desktop or portable computers, portable data assistants, communication satellites, any equipment or location associated with a wirelessly detectable tag (e.g., information kiosks, newsstands, store shelves, etc.), and telephones). This may include Wireless Fidelity (Wi-Fi) and Wireless technology. Therefore, the communication can be a predefined structure like a traditional network or an ad hoc communication between at least two devices.

[0225] Figure 35is a schematic block diagram of a sample computing environment 3500 with which the disclosed subject matter can interact. Sample computing environment 3500 includes one or more clients 3510. Clients 3510 can be hardware or software (e.g., threads, processes, computing devices). Sample computing environment 3500 also includes one or more servers 3530. Servers 3530 can also be hardware or software (e.g., threads, processes, computing devices). For example, servers 3530 can accommodate threads to perform transformations by employing one or more embodiments described herein. One possible communication between clients 3510 and servers 3530 can take the form of data packets suitable for transmission between two or more computer processes. Sample computing environment 3500 includes a communication framework 3550 that can be used to facilitate communication between clients 3510 and servers 3530. Clients 3510 are operably connected to one or more client data repositories 3520 that can be used to store information local to clients 3510. Similarly, servers 3530 are operably connected to one or more server data repositories 3540 that can be used to store information local to servers 3530.

[0226] Various embodiments can be systems, methods, devices, or computer program products at any possible level of technical detail integration. A computer program product can include a computer-readable storage medium (or medium) having computer-readable program instructions thereon for causing a processor to execute various aspects of the various embodiments. A computer-readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. A computer-readable storage medium can be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer-readable storage media can also include the following: a portable computer disk, 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 mechanical encoding device (such as a punched card with instructions recorded on it or a raised structure in a groove), and any suitable combination of the foregoing. Computer-readable storage media as used herein should not be construed as transient signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., light pulses transmitted through fiber optic cables), or electrical signals transmitted through wires.

[0227] Computer-readable program instructions as described herein can be downloaded to corresponding computing / processing equipment from a computer-readable storage medium or downloaded to an external computer or external storage device via a network (for example, the Internet, local area network, wide area network or wireless network).The network may include copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers or edge servers.Network adapter cards or network interfaces in each computing / processing equipment receive computer-readable program instructions from the network, and forward computer-readable program instructions to be stored in the computer-readable storage medium in the corresponding computing / processing equipment.The computer-readable program instructions for performing the operation of various embodiments can be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-related instructions, microcode, firmware instructions, state setting data, configuration data of an integrated circuit, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages ​​(such as, Smalltalk, C++ etc.) and procedural programming languages ​​(such as " C " programming language or similar programming languages). Computer readable program instructions can be executed entirely on the user's computer, partially on the user's computer, as an independent software package, partially on the user's computer, partially on a remote computer, or entirely on a remote computer or server. In the latter case, the remote computer can be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or can be connected to an external computer (for example, using an internet service provider via the internet). In some embodiments, the electronic circuit includes, for example, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA), and the electronic circuit can be personalized by utilizing the state information of the computer readable program instructions, thereby executing the computer readable program instructions, to perform various aspects.

[0228] Various aspects are described herein with reference to the flowchart illustration or block diagram of the method, device (system) and computer program product according to various embodiments.It should be understood that the combination of each frame in the flowchart illustration or block diagram and the frame in the flowchart illustration or block diagram can be realized by computer-readable program instructions.These computer-readable program instructions can be provided to the processor of a general-purpose computer, a special-purpose computer or other programmable data processing device to produce a machine so that the instruction executed via the processor of a computer or other programmable data processing device creates a component for implementing the function / action specified in one or more frames of a flowchart or block diagram.These computer-readable program instructions can also be stored in a computer-readable storage medium, which can guide a computer, a programmable data processing device or other equipment to run in an ad hoc manner, and the computer-readable storage medium storing instructions includes manufacturing products, which includes instructions for implementing the various aspects of the function / action specified in one or more frames of a flowchart or block diagram.Computer-readable program instructions can also be loaded onto a computer, other programmable data processing devices or other equipment so that a series of operational actions are performed on a computer, other programmable devices or other equipment, thereby producing a computer-implemented process so that the instruction executed on a computer, other programmable devices or other equipment implements the function / action specified in one or more frames of a flowchart or block diagram.

[0229] The flow chart and block diagram in the figure illustrate the architecture, function and operation of the possible specific implementation of the system, method and computer program product according to various embodiments. In this regard, each box in the flow chart or block diagram can represent a module, segment or partial instruction, which contains one or more executable instructions for implementing a specified logical function. In some alternative specific implementations, the function marked in the box may not occur in the order marked in the figure. For example, two blocks shown in succession can actually be performed substantially simultaneously, or sometimes can be performed in the opposite order, depending on the function involved. It should also be noted that each box in the block diagram or flow chart and the combination of boxes in the block diagram or flow chart can be implemented by a dedicated hardware system that performs a specified function or action or performs a combination of dedicated hardware and computer instructions.

[0230] Although subject matter has been described above in the general context of computer-executable instructions of a computer program product running on a computer, those skilled in the art will recognize that the present disclosure may also or may be implemented in combination with other program modules. Typically, a program module includes routines, programs, components, data structures, etc. that perform specific tasks or implement specific abstract data types. In addition, those skilled in the art will recognize that various aspects can be put into practice using other computer system configurations, including single-processor or multi-processor computer systems, small computing devices, mainframe computers, and computers, handheld computing devices (e.g., PDAs, phones), microprocessor-based or programmable consumer or industrial electronics, etc. The illustrated aspects can also be put into practice in a distributed computing environment, where tasks are performed by a remote processing device connected through a communication network. However, some aspects of the present disclosure (if not all aspects) can be put into practice on a stand-alone computer. In a distributed computing environment, program modules can be located in both a local memory storage device and a remote memory storage device.

[0231] The terms "component", "system", "platform", "interface" and the like used in this application may refer to or include computer-related entities or entities related to an operating machine having one or more specific functions. The entities disclosed herein may be hardware, a combination of hardware and software, software, or software in execution. For example, a component may be, but is not limited to, a process, a processor, an object, an executable program, a thread of execution, a program, or a computer running on a processor. As an example, both an application running on a server and the server may be components. One or more components may reside within a process or thread of execution, and a component may be located on a single computer or distributed between two or more computers. As another example, corresponding components may be executed from various computer-readable media having various data structures stored thereon. These components may communicate via local or remote processes, such as according to signals having one or more data packets (for example, data from one component interacts with another component in a local system, a distributed system via signals, or interacts with other systems via a network such as the Internet). As another example, a component may be a device having a specific function provided by a mechanical part operated by an electrical or electronic circuit, which is operated by a software or firmware application executed by a processor. In such cases, the processor may be inside or outside the device and may execute at least a portion of the software or firmware application. As another example, a component can be a device that provides a specific functionality without mechanical parts through electronic components, where the electronic components may include a processor or other means for executing software or firmware that at least partially imparts the functionality of the electronic components. In one aspect, the component can emulate the electronic components via a virtual machine within a cloud computing system, for example.

[0232] 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 the context, "X employs A or B" is intended to mean any natural inclusive permutation. 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 examples. As used herein, the term "and / or" is intended to have the same meaning as "or". In addition, unless specified otherwise, or clear from the context to refer to a singular form, the articles "a" and "an" as used in this specification and the drawings should generally be interpreted to mean "one or more". As used herein, the terms "example" or "exemplary" are used to mean serving as an example, instance, or illustration. For the avoidance of doubt, the subject matter disclosed herein is not limited to such examples. In addition, any aspect or design described herein as "example" or "exemplary" is not necessarily to be construed as preferred or advantageous over other aspects or designs, nor is it meant to exclude equivalent exemplary structures and techniques known to those of ordinary skill in the art.

[0233] The content disclosed herein describes non-limiting examples. For ease of description or explanation, the various parts disclosed herein use the terms "each," "each," or "all" when discussing various examples. The usage of terms such as "each," "each," or "all" is not restrictive. In other words, when the content disclosed herein provides a description of "each," "all," or "all" applicable to a particular object or component, it should be understood that this is only a non-limiting example, and it should also be understood that in various other examples, such a description may be applicable to less than "each," "all," or "all" of the particular object or component.

[0234] As used in this specification, the term "processor" may refer to substantially any computational processing unit or device, including but not limited to a single-core processor; a single processor with software multi-threaded execution capability; a multi-core processor; a multi-core processor with software multi-threaded execution capability; a multi-core processor with hardware multi-threading technology; a parallel platform; and a parallel platform with distributed shared memory. In addition, a processor may 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), discrete gate or transistor logic components, discrete hardware components, or any combination thereof, designed to perform the functions described herein. Furthermore, the processor may utilize nanoscale architectures, such as (but not limited to) molecular and quantum dot-based transistors, switches, and gates, to optimize space usage or enhance the performance of user equipment. The processor may also be implemented as a combination of computational processing units. In this disclosure, terms such as "repository," "storage device," "data repository," "data storage device," "database," and substantially any other information storage component related to the operation and functionality of the component are used to refer to a "memory component," an entity embodied in "memory," or a component that includes memory. It should be understood that the memory and / or memory components can be volatile memory or non-volatile memory, or can include both volatile memory and non-volatile memory. By way of example and not limitation, non-volatile memory can include read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable ROM (EEPROM), flash memory, or non-volatile random access memory (RAM) (e.g., ferroelectric RAM (FeRAM)). Volatile memory can include RAM, which can, for example, act as external cache memory. By way of example and not limitation, RAM takes many forms, 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 Rambus dynamic RAM (RDRAM). In addition, the memory components of the systems or computer-implemented methods disclosed herein are intended to include, but are not limited to, these and any other suitable types of memory.

[0235] The foregoing includes only examples of systems and computer-implemented methods. Of course, it is not possible to describe every conceivable combination of components or computer-implemented methods for purposes of describing the present disclosure, but many further combinations and permutations of the present disclosure are possible. Furthermore, with respect to the use of the terms "including," "having," "having," and the like in the detailed description, claims, appendices, and drawings, these terms are intended to be inclusive in a manner similar to the way the term "comprising" is interpreted when used as a transitional word in a claim.

[0236] The descriptions of various embodiments have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments disclosed herein. Many modifications and variations are apparent without departing from the scope and spirit of the described embodiments. The terminology used herein was chosen to best explain the principles of the embodiments, practical applications, or technical improvements over commercially available technologies, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.

[0237] Various non-limiting aspects are described in the following examples.

[0238] Embodiment 1: A system may include: a processor that executes a computer-executable component stored in a non-transitory computer-readable memory, wherein the computer-executable component includes: an access component that is capable of accessing an image generated by a scientific instrument; and an execution component that is capable of performing marker-based watershed segmentation on a region adjacency graph of the image, wherein the region adjacency graph is capable of being constructed from a plurality of pixel region adjacency graphs that respectively correspond to a plurality of tiles of the image.

[0239] Embodiment 2: The system according to any of the preceding embodiments can be implemented, wherein the computer-executable components further comprise: a tile component, which is capable of decomposing the image into the plurality of tiles.

[0240] Embodiment 3: The system according to any of the foregoing embodiments can be implemented, wherein the computer executable component further includes: a graph component, which can generate multiple pixel adjacency graphs based on the multiple tiles, wherein for a first pixel adjacency graph corresponding to a first tile, the nodes of the first pixel adjacency graph can represent corresponding pixels or voxels of the first tile.

[0241] Embodiment 4: The system according to any of the preceding embodiments can be implemented, wherein the graph component can generate multiple minimum spanning forests based on the multiple pixel adjacency graphs, wherein for a first minimum spanning forest corresponding to the first pixel adjacency graph, the first minimum spanning forest can include one or more boundary trees and one or more internal trees.

[0242] Embodiment 5: The system according to any preceding embodiment can be implemented, wherein the graph component can generate the plurality of minimum spanning forests by executing Boruvka's algorithm.

[0243] Embodiment 6: The system according to any of the preceding embodiments can be implemented, wherein the graph component can generate the multiple pixel region adjacency graphs based on the multiple minimum spanning forests, wherein for a first pixel region adjacency graph corresponding to the first minimum spanning forest, the first pixel region adjacency graph can include one or more boundary regions corresponding to the one or more boundary trees respectively and a region-by-region node set into which the one or more internal trees are compressed.

[0244] Example 7: The system according to any of the preceding embodiments can be implemented, wherein the graph component can merge the multiple pixel region adjacency graphs into the region adjacency graph by coupling boundary regions of adjacent tiles, relabeling the boundary tree as new internal regions, and compressing the new internal regions into new region-by-region nodes.

[0245] Embodiment 8: The system according to any preceding embodiment can be implemented, wherein the execution component is capable of calculating the memory consumption involved in creating the region adjacency graph.

[0246] In various embodiments, any one or more combinations of Examples 1 to 8 can be implemented.

[0247] Example 9: A computer-implemented method may include: accessing an image generated by a scientific instrument by a device operatively coupled to a processor; and performing, by the device, a marker-based watershed segmentation on a region adjacency graph of the image, wherein the region adjacency graph may be constructed from a plurality of pixel region adjacency graphs corresponding respectively to a plurality of tiles of the image.

[0248] Embodiment 10: The computer-implemented method according to any preceding embodiment can be implemented, further comprising: decomposing, by the device, the image into the plurality of tiles.

[0249] Example 11: The computer-implemented method according to any of the preceding embodiments can be implemented to further include: the device generating multiple pixel adjacency graphs based on the multiple tiles, wherein for a first pixel adjacency graph corresponding to a first tile, the nodes of the first pixel adjacency graph can represent corresponding pixels or voxels of the first tile.

[0250] Example 12: The computer-implemented method according to any of the preceding embodiments can be implemented to further include: generating, by the device, multiple minimum spanning forests based on the multiple pixel adjacency graphs, wherein for a first minimum spanning forest corresponding to the first pixel adjacency graph, the first minimum spanning forest can include one or more boundary trees and one or more internal trees.

[0251] Embodiment 13: The computer-implemented method of any preceding embodiment can be implemented wherein the device generates the plurality of minimum spanning forests via executing Boruvka's algorithm.

[0252] Example 14: The computer-implemented method according to any of the preceding embodiments can be implemented to further include: the device generating the multiple pixel region adjacency graphs based on the multiple minimum spanning forests, wherein for a first pixel region adjacency graph corresponding to the first minimum spanning forest, the first pixel region adjacency graph can include one or more boundary regions corresponding to the one or more boundary trees respectively and a region-by-region node set into which the one or more internal trees are compressed.

[0253] Example 15: The computer-implemented method according to any of the preceding embodiments can be implemented to further include: the device merging the multiple pixel region adjacency graphs into the region adjacency graph by coupling boundary regions of adjacent tiles, remarking the boundary regions as new internal regions, and compressing the new internal regions into new region-by-region nodes.

[0254] Embodiment 16: The computer-implemented method according to any preceding embodiment can be implemented, wherein the image can be an electron tomography image, an X-ray tomography image, or a confocal microscopy image.

[0255] In various embodiments, any one or more combinations of Examples 9 to 16 can be implemented.

[0256] Embodiment 17: A computer program product for facilitating computation of a tiled region adjacency graph via a pixel region adjacency graph can include a non-transitory computer-readable memory containing program instructions. In various aspects, the program instructions are executable by a processor to cause the processor to: access an image captured by a charged particle microscope; and construct a region adjacency graph for the image in a tile-by-tile manner based on a plurality of pixel region adjacency graphs.

[0257] Embodiment 18: The computer program product according to any of the preceding embodiments can be implemented, wherein the program instructions are further executable to cause the processor to: decompose the image into a plurality of tiles; generate a plurality of pixel adjacency graphs based on the plurality of tiles, wherein for a first pixel adjacency graph corresponding to a first tile, the nodes of the first pixel adjacency graph represent corresponding pixels or voxels of the first tile; generate a plurality of minimum spanning forests based on the plurality of pixel adjacency graphs, wherein for a first minimum spanning forest corresponding to the first pixel adjacency graph, the first minimum spanning forest includes one or more boundary trees and one or more internal trees; generate the plurality of pixel region adjacency graphs based on the plurality of minimum spanning forests, wherein for a first pixel region adjacency graph corresponding to the first minimum spanning forest, the first pixel region adjacency graph includes one or more boundary regions corresponding to the one or more boundary trees, respectively, and a set of region-wise nodes into which the one or more internal trees are compressed; and merge the plurality of pixel region adjacency graphs into the region adjacency graph by coupling boundary regions of adjacent tiles, relabeling the boundary regions as new internal regions, and compressing the new internal regions into new region-wise nodes.

[0258] Embodiment 19: The computer program product of any preceding embodiment can be implemented, wherein the program instructions are further executable to cause the processor to segment the image based on the region adjacency graph.

[0259] Embodiment 20: The computer program product according to any preceding embodiment can be implemented wherein the processor is capable of segmenting the image via marker-based watershed segmentation.

[0260] In various embodiments, any one or more combinations of Examples 17 to 20 can be implemented.

[0261] In various embodiments, any one or more combinations of Examples 1 to 20 can be implemented.

Claims

1. A system comprising: a processor that executes computer-executable components stored in a non-transitory computer-readable memory, wherein the computer-executable components include: an access component that accesses images generated by a scientific instrument; and An execution component performs a marker-based watershed segmentation on a region adjacency graph of the image, wherein the region adjacency graph is constructed from a plurality of pixel region adjacency graphs respectively corresponding to a plurality of patches of the image.

2. The system of claim 1 , wherein the computer executable component further comprises: A tile component decomposes the image into the plurality of tiles.

3. The system of claim 2, wherein the computer executable components further comprise: A graph component is configured to generate a plurality of pixel adjacency graphs based on the plurality of tiles, wherein for a first pixel adjacency graph corresponding to a first tile, nodes of the first pixel adjacency graph represent corresponding pixels or voxels of the first tile.

4. The system of claim 3 , wherein the graph component generates a plurality of minimum spanning forests based on the plurality of pixel adjacency graphs, wherein for a first minimum spanning forest corresponding to the first pixel adjacency graph, the first minimum spanning forest includes one or more boundary trees and one or more interior trees. The system of claim 4 , wherein the graph component generates the plurality of minimum spanning forests via executing Boruvka's algorithm.

6. The system of claim 4 , wherein the graph component generates the plurality of pixel region adjacency graphs based on the plurality of minimum spanning forests, wherein for a first pixel region adjacency graph corresponding to the first minimum spanning forest, the first pixel region adjacency graph includes one or more boundary regions corresponding to the one or more boundary trees, respectively, and a region-by-region node set into which the one or more internal trees are compressed.

7. The system of claim 6, wherein the graph component merges the plurality of pixel region adjacency graphs into the region adjacency graph by coupling boundary regions of adjacent tiles, relabeling the boundary regions as new interior regions, and compressing the new interior regions into new region-by-region nodes.

8. The system of claim 1, wherein the execution component calculates memory consumption involved in creating the region adjacency graph.

9. A computer-implemented method comprising: accessing, by a device operatively coupled to the processor, an image generated by the scientific instrument; as well as The device performs a marker-based watershed segmentation on a region adjacency graph of the image, wherein the region adjacency graph is constructed from a plurality of pixel region adjacency graphs respectively corresponding to a plurality of patches of the image.

10. The computer-implemented method of claim 9, further comprising: The image is decomposed into the plurality of tiles by the device.

11. The computer-implemented method of claim 10 , further comprising: A plurality of pixel adjacency graphs are generated by the device based on the plurality of tiles, wherein for a first pixel adjacency graph corresponding to a first tile, nodes of the first pixel adjacency graph represent corresponding pixels or voxels of the first tile.

12. The computer-implemented method of claim 11 , further comprising: A plurality of minimum spanning forests are generated by the device based on the plurality of pixel adjacency graphs, wherein for a first minimum spanning forest corresponding to the first pixel adjacency graph, the first minimum spanning forest includes one or more boundary trees and one or more interior trees.

13. The computer-implemented method of claim 12, wherein the device generates the plurality of minimum spanning forests via execution of a Boruvka algorithm.

14. The computer-implemented method of claim 12, further comprising: The device generates the multiple pixel region adjacency graphs based on the multiple minimum spanning forests, wherein for a first pixel region adjacency graph corresponding to the first minimum spanning forest, the first pixel region adjacency graph includes one or more boundary regions corresponding to the one or more boundary trees respectively and a region-by-region node set into which the one or more internal trees are compressed.

15. The computer-implemented method of claim 14, further comprising: The device merges the plurality of pixel region adjacency graphs into the region adjacency graph by coupling boundary regions of adjacent tiles, relabeling the boundary regions as new interior regions, and compressing the new interior regions into new region-by-region nodes.

16. The computer-implemented method of claim 9, wherein the image is an electron tomography image, an X-ray tomography image, or a confocal microscopy image.

17. A computer program product for facilitating computation of a block region adjacency graph via a pixel region adjacency graph, the computer program product comprising a non-transitory computer readable memory having program instructions embodied therein, the program instructions executable by a processor to cause the processor to: accessing images captured by a charged particle microscope; and A region adjacency map of the image is constructed in a block-by-block manner based on a plurality of pixel region adjacency maps.

18. The computer program product of claim 17, wherein the program instructions are further executable to cause the processor to: decomposing the image into a plurality of tiles; generating a plurality of pixel adjacency graphs based on the plurality of tiles, wherein for a first pixel adjacency graph corresponding to a first tile, nodes of the first pixel adjacency graph represent corresponding pixels or voxels of the first tile; generating a plurality of minimum spanning forests based on the plurality of pixel adjacency graphs, wherein for a first minimum spanning forest corresponding to the first pixel adjacency graph, the first minimum spanning forest includes one or more boundary trees and one or more interior trees; generating the plurality of pixel region adjacency graphs based on the plurality of minimum spanning forests, wherein, for a first pixel region adjacency graph corresponding to the first minimum spanning forest, the first pixel region adjacency graph includes one or more boundary regions corresponding to the one or more boundary trees, respectively, and a region-by-region node set into which the one or more interior trees are compressed; as well as The plurality of pixel region adjacency graphs are merged into the region adjacency graph by coupling boundary regions of adjacent tiles, relabeling the boundary regions as new interior regions, and compressing the new interior regions into new region-by-region nodes.

19. The computer program product of claim 18, wherein program instructions are further executable to cause the processor to segment the image based on the region adjacency graph.

20. The computer program product of claim 19, wherein the processor segments the image via marker-based watershed segmentation.