A method, apparatus and device for ultrasound blood flow imaging

By filtering and mapping the three-dimensional coordinates of blood flow vertices in ultrasound blood flow imaging, a three-dimensional blood flow mesh is established and rendered, solving the problem of poor performance of traditional ultrasound color blood flow imaging technology in identifying complex three-dimensional vascular structures, and achieving clearer three-dimensional blood flow imaging.

CN118476825BActive Publication Date: 2025-11-28QINGDAO HISENSE MEDICAL EQUIP
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202310108331.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-02-10
Publication Date
2025-11-28
Estimated Expiration
2043-02-10

AI Technical Summary

Technical Problem

Traditional ultrasound color flow imaging technology suffers from poor recognition results when displaying complex three-dimensional vascular structures due to low contrast of blood flow in different directions and weak sense of blood flow filling in two-dimensional color flow images.

Method used

Blood flow vertices are selected based on two-dimensional hemodynamic information, their three-dimensional coordinates are mapped, a three-dimensional blood flow mesh is established, and the three-dimensional coordinates of the blood flow vertices are used for rendering and coloring to achieve three-dimensional imaging.

Benefits of technology

It improves the recognition of complex three-dimensional vascular structures and enhances the contrast and fullness of blood flow images.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118476825B_ABST
    Figure CN118476825B_ABST
Patent Text Reader

Abstract

The application provides an ultrasonic blood flow imaging method, device and equipment, the method comprising: screening blood flow vertices with non-zero blood flow velocity based on two-dimensional blood flow dynamics data of pixel points of a region of interest (ROI); traversing the blood flow vertices in a blood flow vertex template according to a set sampling interval, mapping the two-dimensional positions of the blood flow vertices into x and y coordinates in three-dimensional coordinates after normalization; mapping the blood flow energy and the average value of energy variance of the blood flow vertices into z coordinates in three-dimensional coordinates after normalization, and constructing a three-dimensional blood flow grid based on the three-dimensional coordinates of the blood flow vertices; rendering and coloring the three-dimensional blood flow grid by sampling color values of different positions of a two-dimensional texture picture; and the two-dimensional texture picture is a picture obtained by mapping the blood flow velocities of the blood flow vertices at different two-dimensional positions into a color table to determine corresponding color values. The ultrasonic blood flow imaging method provided by the application improves the recognition effect on complex three-dimensional blood vessel structures.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of image processing, and in particular to an ultrasonic blood flow imaging method, device and equipment. BACKGROUND

[0002] The ultrasonic color blood flow imaging technology utilizes the Doppler effect to detect the reflection echo signals of different frequencies generated by the ultrasonic wave source emitting ultrasonic waves into the blood flowing at different speeds, and extracts the blood vessel information such as blood vessel distribution, blood vessel radius, blood vessel direction, blood flow velocity, blood flow energy, blood flow variance, and dynamically and real-timely displays the two-dimensional color blood flow image corresponding to the hemodynamic information of the region of interest (ROI) to make a judgment on the abnormal blood flow in the blood vessel.

[0003] The traditional ultrasonic color blood flow imaging technology mainly includes color flow mapping (CFM). The CFM mainly encodes different colors for different blood flow velocity information to obtain the color image of the blood flow in the human body. Different colors respectively represent the direction towards the probe and the direction away from the probe, and different intensity color tones are used to represent the size of the blood flow velocity.

[0004] However, the two-dimensional color blood flow image presented by the CFM has the disadvantages of low contrast of blood flow in different directions and weak blood flow filling sensation, and the recognition effect of the complex three-dimensional blood vessel structure is low. SUMMARY

[0005] The present application provides an ultrasonic blood flow imaging method, device and equipment, which performs three-dimensional imaging on the blood flow based on two-dimensional hemodynamic information, and improves the recognition effect of the complex three-dimensional blood vessel structure.

[0006] In a first aspect, the present application provides an ultrasonic blood flow imaging method, comprising:

[0007] Based on the two-dimensional hemodynamic data of the pixel points of the region of interest (ROI), the blood flow vertexes are screened out to obtain a blood flow vertex template, wherein the two-dimensional hemodynamic data includes the two-dimensional position, blood flow velocity, blood flow energy and energy variance of the blood flow vertexes, and the pixel points include the blood flow vertexes with non-zero blood flow velocity and the non-blood flow vertexes with zero blood flow velocity;

[0008] The blood flow vertexes in the blood flow vertex template are traversed according to a set sampling interval, and the two-dimensional positions corresponding to the blood flow vertexes are normalized and mapped into the x coordinate and y coordinate in the corresponding three-dimensional coordinates;

[0009] normalizing the blood flow energy corresponding to the blood flow vertex and the average of the energy variance, and mapping the normalized blood flow energy into a z coordinate in the corresponding three-dimensional coordinate, and constructing a three-dimensional blood flow grid based on the three-dimensional coordinates of the blood flow vertex;

[0010] sampling color values at different positions of a two-dimensional texture picture, and rendering and coloring the three-dimensional blood flow grid based on the sampled color values;

[0011] The two-dimensional texture picture is a picture obtained by determining corresponding color values of blood flow velocities of blood flow vertices at different two-dimensional positions according to a color table, and the color table is used to map corresponding color values of different blood flow velocities.

[0012] In one or more embodiments, sampling color values at different positions of a two-dimensional texture picture comprises:

[0013] Based on the three-dimensional coordinates of the blood flow vertex, the horizontal coordinate of the two-dimensional texture coordinate corresponding to the blood flow vertex is configured as x, and the vertical coordinate is configured as 1-y;

[0014] Based on the two-dimensional texture coordinate, a color value is sampled from the two-dimensional texture picture.

[0015] In one or more embodiments, constructing a three-dimensional blood flow grid based on the three-dimensional coordinates of the blood flow vertex comprises:

[0016] Based on the coordinate adjacency of the two-dimensional positions of the blood flow vertex, the blood flow vertex with configured three-dimensional coordinates is bound as a triangular facet;

[0017] Using a mesh subdivision algorithm, a new blood flow vertex is inserted to each edge of the current triangular facet in an iterative manner, and the new blood flow vertices in the same triangular facet are connected two by two to form four new triangular facets;

[0018] When the number of iterations is determined to be reached, a three-dimensional blood flow grid is obtained based on the current triangular facet.

[0019] In one or more embodiments, before the three-dimensional blood flow grid is constructed based on the three-dimensional coordinates of the blood flow vertex, the method further comprises:

[0020] Traversing all blood flow vertices, updating the three-dimensional coordinates of the traversed blood flow vertex based on the three-dimensional coordinates of the traversed blood flow vertex and the three-dimensional coordinates of a predetermined number of pixel points around the traversed blood flow vertex, and performing weighted summation according to a predetermined weight value;

[0021] The three-dimensional coordinates of the non-blood flow vertex are calculated in the following manner:

[0022] After normalizing the two-dimensional position corresponding to the non-blood flow vertex, the normalized two-dimensional position is mapped into x and y coordinates in the corresponding three-dimensional coordinates, and the z coordinate of the three-dimensional coordinates of the non-blood flow vertex is 0.

[0023] In one or more embodiments, the three-dimensional coordinates of the blood flow vertex being traversed and the three-dimensional coordinates of the set number of pixel points around the blood flow vertex being traversed are weighted and summed according to a preset weight value, and the result is used to update the three-dimensional coordinates of the blood flow vertex being traversed, including:

[0024] When the blood flow vertex being traversed is a non-boundary blood flow vertex, the three-dimensional coordinates of the blood flow vertex being traversed and the three-dimensional coordinates of the set number of pixel points around the blood flow vertex being traversed are weighted and summed according to a preset weight value for the purpose of smoothly transitioning the height of the non-boundary blood flow vertex, and the result is used to update the three-dimensional coordinates of the blood flow vertex being traversed;

[0025] When the blood flow vertex being traversed is a boundary blood flow vertex, the three-dimensional coordinates of the blood flow vertex being traversed and the three-dimensional coordinates of the set number of pixel points around the blood flow vertex being traversed are weighted and summed according to a preset weight value for the purpose of weakening the sawtooth effect of the blood flow boundary, and the result is used to update the three-dimensional coordinates of the blood flow vertex being traversed;

[0026] The set number of pixel points around the boundary blood flow vertex includes the non-blood flow vertex, and the set number of pixel points around the non-boundary blood flow vertex does not include the non-blood flow vertex.

[0027] In one or more embodiments, the rendering and coloring of the three-dimensional blood flow mesh includes:

[0028] Traverse the blood flow vertices in the three-dimensional blood flow mesh, and assign the three-dimensional coordinates and two-dimensional texture coordinates of the blood flow vertices in the three-dimensional blood flow mesh to a pre-defined vertex structure and add them to a vertex structure array;

[0029] Add the two-dimensional positions of the blood flow vertices corresponding to each triangular facet in the three-dimensional blood flow mesh to an index structure array, wherein the triangular facet is configured based on the coordinate adjacency of the two-dimensional positions of the blood flow vertices;

[0030] Input the three-dimensional coordinates and two-dimensional texture coordinates of each blood flow vertex in the vertex structure array as vertex attributes to a pre-compiled shader program unit;

[0031] Call the shader program unit to determine the blood flow vertices belonging to the same triangular facet based on the index structure array, and perform rendering and coloring on the triangular facet according to the vertex attributes of the blood flow vertices belonging to the same triangular facet.

[0032] In one or more embodiments, the pre-compiled shader program unit includes a vertex shader and a fragment shader;

[0033] The calling of the shader program unit determines blood flow vertices belonging to the same triangular patch based on the index structure body array, and renders and colors the triangular patch according to the vertex attributes of the blood flow vertices belonging to the same triangular patch, including:

[0034] The three-dimensional coordinates of each blood flow vertex are converted into corresponding screen coordinates by the vertex shader based on a pre-set coordinate transformation matrix, and the screen coordinates and the two-dimensional texture coordinates are input into the fragment shader;

[0035] The fragment shader determines blood flow vertices belonging to the same triangular patch based on the index structure body array, and finds the color values corresponding to the two-dimensional texture coordinates of the blood flow vertices belonging to the same triangular patch;

[0036] The fragment shader inputs the found color values corresponding to the blood flow vertices on the same triangular patch, the vertex normal vector, the pre-set incident direction of the light source, and the pre-set observation direction of the camera into a pre-set lighting model to calculate the color value of the same triangular patch;

[0037] The fragment shader renders and colors the triangular patch based on the calculated color value of the same triangular patch.

[0038] In one or more embodiments, the method further includes:

[0039] A slope adaptive identification algorithm is used to identify the slope of the z coordinate in the three-dimensional coordinates of all blood flow vertices;

[0040] The flat area and the steep area of the three-dimensional blood flow mesh are determined according to the identified slope;

[0041] The flat area of the three-dimensional blood flow mesh is subjected to highlight suppression, and the steep area of the three-dimensional blood flow mesh is subjected to ambient light and diffuse reflection brightening by adjusting the parameters of the lighting model.

[0042] In a second aspect, the present application provides an ultrasonic blood flow imaging device, the device comprising:

[0043] A blood flow template construction module is configured to filter out blood flow vertices based on two-dimensional blood flow dynamics data of pixel points in a region of interest (ROI) to obtain a blood flow vertex template, wherein the two-dimensional blood flow dynamics data includes two-dimensional positions, blood flow velocities, blood flow energies, and energy variances of the blood flow vertices, and the pixel points include blood flow vertices with non-zero blood flow velocities and non-blood flow vertices with zero blood flow velocities.

[0044] The coordinate mapping module is configured to traverse blood flow vertexes in the blood flow vertex template according to a set sampling interval, normalize two-dimensional positions corresponding to the blood flow vertexes, and map the two-dimensional positions into x coordinates and y coordinates in corresponding three-dimensional coordinates.

[0045] The three-dimensional blood flow grid construction module is configured to normalize blood flow energy corresponding to the blood flow vertexes and an average value of energy variance, map the blood flow energy into z coordinates in corresponding three-dimensional coordinates, and construct a three-dimensional blood flow grid based on the three-dimensional coordinates of the blood flow vertexes.

[0046] The rendering coloring module is configured to sample color values of different positions of a two-dimensional texture picture, and render and color the three-dimensional blood flow grid according to the sampled color values.

[0047] The two-dimensional texture picture is a picture obtained by determining corresponding color values of blood flow vertexes at different two-dimensional positions according to a color table, and the color table is configured to map color values corresponding to different blood flow speeds.

[0048] In a third aspect, the present application provides an electronic device for ultrasonic blood flow imaging, comprising at least one processor, and a memory in communication connection with the at least one processor; wherein the memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to execute the method for ultrasonic blood flow imaging according to any one of the first aspect.

[0049] The present application provides a method, device and equipment for ultrasonic blood flow imaging, which at least has the following beneficial effects:

[0050] After the blood flow vertexes are screened and the three-dimensional coordinates of the blood flow vertexes are mapped based on two-dimensional blood flow dynamics information, the three-dimensional blood flow grid is established by using the three-dimensional coordinates of the blood flow vertexes, and the three-dimensional blood flow grid is colored based on the two-dimensional blood flow dynamics information, so that the three-dimensional imaging corresponding to the blood flow is obtained, and the recognition effect of complex three-dimensional blood vessel structures is improved. BRIEF DESCRIPTION OF DRAWINGS

[0051] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings needed in the embodiment description will be briefly introduced. Obviously, the drawings in the following description are only some embodiments of the present application, and other drawings can be obtained by those skilled in the art without creative labor.

[0052] Figure 1 The method flowchart for ultrasonic blood flow imaging provided by the embodiments of the present application is provided.

[0053] Figure 2 The flowchart for generating a blood flow vertex template provided by the embodiments of the present application is provided.

[0054] Figure 3 A method schematic diagram for mapping the x coordinate and y coordinate of the blood flow vertex provided by the embodiment of the present application;

[0055] Figure 4 A method schematic diagram for mapping the x coordinate and y coordinate of the blood flow vertex provided by the embodiment of the present application;

[0056] Figure 5 A flow schematic diagram for configuring the two-dimensional texture coordinate of the blood flow vertex provided by the embodiment of the present application;

[0057] Figure 6 A flow schematic diagram for updating the three-dimensional coordinate of the blood flow vertex provided by the embodiment of the present application;

[0058] Figure 7 A flow schematic diagram for updating the three-dimensional coordinate of the non-boundary blood flow vertex provided by the embodiment of the present application;

[0059] Figure 8 A flow schematic diagram for updating the three-dimensional coordinate of the boundary blood flow vertex provided by the embodiment of the present application;

[0060] Figure 9 A flow schematic diagram for constructing the three-dimensional blood flow mesh provided by the embodiment of the present application;

[0061] Figure 10 A flow schematic diagram for storing the blood flow vertex data according to the set position provided by the embodiment of the present application;

[0062] Figure 11 A flow schematic diagram for rendering the color of each triangular facet of the three-dimensional blood flow mesh provided by the embodiment of the present application;

[0063] Figure 12 A flow schematic diagram for the vertex shader running provided by the embodiment of the present application;

[0064] Figure 13 A flow schematic diagram for the fragment shader running provided by the embodiment of the present application;

[0065] Figure 14 A flow schematic diagram for processing the flat area and steep area of the three-dimensional blood flow mesh provided by the embodiment of the present application;

[0066] Figure 15 A functional unit schematic diagram of the ultrasound blood flow imaging provided by the embodiment of the present application;

[0067] Figure 16 An ultrasound blood flow imaging device schematic diagram provided by the embodiment of the present application;

[0068] Figure 17The device schematic diagram of the ultrasonic blood flow imaging provided by the embodiment of the present application. DETAILED DESCRIPTION

[0069] The technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the drawings in the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, and not all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by a person of ordinary skill in the art without creative work fall within the protection scope of the present application.

[0070] In order to better understand the present application, some processes and terms involved will be described below:

[0071] 1. Color flow mapping (CFM):

[0072] CFM technology utilizes the Doppler effect to detect different frequency reflection echo signals generated by the ultrasonic wave emitted by the ultrasonic wave source to the blood flowing at different speeds in the region of interest (ROI), and extracts two-dimensional blood flow dynamics information such as blood vessel distribution, blood vessel radius, blood vessel direction, blood flow velocity, blood flow energy, energy variance, etc. from the reflection echo signals. CFM technology represents the direction towards the probe and the direction away from the probe with different colors, respectively, and represents the size of the blood flow velocity with different intensity color tones, and obtains the two-dimensional color flow image of the blood flow in the human body by encoding different colors for different flow velocity information. The two-dimensional color flow image corresponding to the ROI is dynamically and real-timely displayed, and the abnormal blood flow is judged.

[0073] 2. Blood flow vertex:

[0074] When generating the two-dimensional color flow image by using the CFM technology, the reflection echo signals obtained are not completely composed of the flowing blood, and there are many other reflection sources in the human body, such as blood vessel walls, muscles and tissues, etc. The signals reflected by the organs or tissues with very slow motion speed have the characteristics of low frequency and large amplitude, and can be considered as 0 speed. Therefore, the two-dimensional blood flow dynamics information of the ROI is composed of the blood flow vertex with non-zero blood flow velocity and the non-blood flow vertex with zero blood flow velocity.

[0075] 3. Two-dimensional texture picture

[0076] Two-dimensional texture images are a common technique in rendering. They are two-dimensional graphics used to represent the details of an object's surface, also known as texture mapping. By passing a specified two-dimensional texture image to the GPU (Graphics Processing Unit) and defining the texture coordinates of each pixel, the two-dimensional texture image can be sampled based on these coordinates and mapped onto the object's surface, making the object appear more realistic. This process is called texture mapping. Texture mapping is a technique that allows us to assign image data to triangles, resulting in a more detailed and realistic improvement in the visual effect of objects.

[0077] Related technologies are based on the principle of emitting ultrasound waves from an ultrasound source into blood flowing at different speeds, generating reflected echo signals of different frequencies, from which blood flow information such as vessel distribution, vessel radius, vessel direction, blood flow velocity, blood flow energy, and blood flow variance are extracted. Traditional ultrasound color flow mapping (CFM) technology mainly obtains a two-dimensional color blood flow image of the human body by encoding different blood flow velocity information with different colors and using different intensities of color hues to represent the magnitude of blood flow velocity. The blood flow information of the Region of Interest (ROI) is displayed through this two-dimensional color blood flow image to identify abnormal blood flow in the vessels.

[0078] However, the two-dimensional color blood flow images presented by CFM have shortcomings such as low contrast of blood flow in different directions and weak sense of blood flow filling, resulting in poor recognition of complex three-dimensional vascular structures.

[0079] In view of the above problems, this application provides a method, apparatus and device for ultrasound blood flow imaging. Based on the three-dimensional coordinates of the mapped blood flow vertices, a three-dimensional blood flow mesh is established using the three-dimensional coordinates of the blood flow vertices, and the three-dimensional blood flow mesh is colored based on two-dimensional blood flow dynamics information to obtain a three-dimensional image corresponding to the blood flow, thereby improving the recognition effect for complex three-dimensional vascular structures.

[0080] like Figure 1 The diagram shown is a flowchart of an ultrasound blood flow imaging method provided in an embodiment of this application. The method includes:

[0081] S101, based on the two-dimensional hemodynamic data of the pixels of the region of interest (ROI), blood flow vertices are filtered to obtain a blood flow vertex template. The two-dimensional hemodynamic data includes the two-dimensional position of the blood flow vertex, blood flow velocity, blood flow energy, and energy variance. The pixels include blood flow vertices with non-zero blood flow velocity and non-blood flow vertices with zero blood flow velocity.

[0082] After obtaining the two-dimensional hemodynamic data of the pixel points of the region of interest (ROI) from the front end of the ultrasound system, all blood flow vertices of the ROI are screened according to the blood flow velocities corresponding to the pixel points, and a blood flow vertex template is generated based on all the blood flow vertices of the ROI.

[0083] The implementation process of generating the blood flow vertex template is as follows: the entire region of interest is traversed, and whether a certain pixel point is a blood flow vertex or a non-blood flow vertex is determined according to whether the blood flow velocity of the pixel point is zero, and a blood flow vertex template can be obtained by processing all the blood flow vertices through an edge tracking algorithm.

[0084] As a feasible implementation manner, the region of interest is traversed at a set sampling interval, and different sampling intervals are used for blood flow structures of different parts, that is, a large interval can be used for sampling for a coarse blood vessel with a large amount of data, and a small interval can be used for sampling for a fine blood vessel with a small amount of data.

[0085] By setting different sampling intervals, the data processing amount can be reduced to improve the processing speed, and various blood flow structures of different parts can be more flexibly adapted to obtain ideal stereoscopic imaging effects.

[0086] As shown in FIG. 1, Figure 2 the flowchart for generating the blood flow vertex template provided by the embodiment of the present application, the steps for generating the blood flow vertex template include:

[0087] S201, the entire region of interest is traversed at a set sampling interval, and whether a certain pixel point is a blood flow vertex is determined according to whether the blood flow velocity of the pixel point is zero;

[0088] S202, a blood flow vertex template is generated based on all the screened blood flow vertices.

[0089] After obtaining the blood flow vertex template, each blood flow vertex in the blood flow vertex template needs to be configured.

[0090] S102, the blood flow vertices in the blood flow vertex template are traversed at a set sampling interval, and the two-dimensional positions corresponding to the blood flow vertices are normalized and then mapped into x coordinates and y coordinates in the corresponding three-dimensional coordinates;

[0091] S103, the blood flow energy corresponding to the blood flow vertices is normalized and then mapped into z coordinates in the corresponding three-dimensional coordinates, and a three-dimensional blood flow grid is constructed based on the three-dimensional coordinates of the blood flow vertices.

[0092] After obtaining the blood flow vertex template, when configuring each blood flow vertex in the blood flow vertex template, first, the two-dimensional blood flow dynamics data of each blood flow vertex needs to be mapped into corresponding three-dimensional coordinates, and then the two-dimensional texture coordinates of each blood flow vertex are configured according to the three-dimensional coordinates corresponding to each blood flow vertex.

[0093] The way of configuring the three-dimensional coordinates and the two-dimensional texture coordinates of each blood flow vertex is given below.

[0094] 1) x coordinate and y coordinate of blood flow vertex

[0095] As a feasible implementation manner, the two-dimensional position corresponding to the blood flow vertex is normalized and mapped into the x coordinate and y coordinate in the corresponding three-dimensional coordinates according to the set sampling interval traversing the blood flow vertex in the blood flow vertex template.

[0096] The two-dimensional position can be understood as the pixel point corresponding to the blood flow vertex, the row and column value in the two-dimensional blood flow dynamics data. For example, if the two-dimensional blood flow dynamics data is 2 rows and 2 columns, a total of 4 sets of two-dimensional blood flow dynamics data, and the 4 sets of two-dimensional blood flow dynamics data all correspond to one blood flow vertex, the two-dimensional coordinates of the blood flow vertex A11 in the first row and the first column are (1, 1), the two-dimensional coordinates of the blood flow vertex A12 in the first row and the second column are (1, 2), the two-dimensional coordinates of the blood flow vertex A21 in the second row and the first column are (2, 1), and the two-dimensional coordinates of the blood flow vertex A22 in the second row and the second column are (2, 2). Therefore, the x coordinate of the two-dimensional coordinates of A11 normalized and mapped into the corresponding three-dimensional coordinates is 1 / 3, and the y coordinate is 1 / 3.

[0097] Based on the above description, as shown in Figure 3 The schematic diagram of mapping the x coordinate and the y coordinate of the blood flow vertex provided by the embodiment of the application includes the following steps:

[0098] S301, traversing the blood flow vertex in the blood flow vertex template according to the set sampling interval;

[0099] S302, after normalizing the two-dimensional position corresponding to the blood flow vertex, mapping into the x coordinate and the y coordinate in the corresponding three-dimensional coordinates.

[0100] 2) z coordinate of blood flow vertex

[0101] In the embodiment of the application, the blood flow energy and the energy variance of each blood flow vertex in the two-dimensional blood flow dynamics data of the region of interest obtained from the front end of the ultrasonic system are selected, and are converted into the height value of each blood flow vertex, that is, the z coordinate, according to the set mapping logic.

[0102] As a feasible implementation, the blood flow energy corresponding to the blood flow vertex and the average value of the energy variance are normalized and mapped into the z coordinate in the corresponding three-dimensional coordinate.

[0103] The blood flow energy and the energy variance of each blood flow vertex obtained from the front end of the ultrasound system are values ranging from 0 to 255. According to the mapping logic, the blood flow energy of a certain blood flow vertex is 60, the energy variance is 100, the average value of the two is 80, and the normalized value is 0.314 after being divided by 255, which is the height value of the blood flow vertex.

[0104] Based on the above description, as shown in the schematic diagram of mapping the x coordinate and the y coordinate of the blood flow vertex provided by the embodiment of the application, the method comprises the following steps: Figure 4

[0105] S401, traverse the blood flow vertex in the blood flow vertex template according to a set sampling interval;

[0106] S402, after the blood flow energy corresponding to the blood flow vertex and the average value of the energy variance are normalized, the blood flow energy is mapped into the z coordinate in the corresponding three-dimensional coordinate.

[0107] It should be noted that in addition to the above-mentioned embodiment of the application based on two-dimensional blood flow dynamics data to map the three-dimensional coordinates of each blood flow vertex, other mapping logic can be selected based on the two-dimensional blood flow dynamics data of each blood flow vertex to obtain the corresponding three-dimensional coordinates, which is not limited by the application.

[0108] 3) Two-dimensional texture coordinates of the blood flow vertex

[0109] After traversing the blood flow vertex in the blood flow vertex template according to a set sampling interval, the three-dimensional coordinates corresponding to the traversed blood flow vertex are obtained, and the two-dimensional texture coordinates of the traversed blood flow vertex need to be configured.

[0110] The two-dimensional texture coordinates are used to sample the two-dimensional texture picture to obtain the color value corresponding to the traversed blood flow vertex. The two-dimensional texture picture is obtained by determining the corresponding color value of the blood flow velocity of the blood flow vertex at different two-dimensional positions according to a color table. The color table is used to map the color value corresponding to different blood flow velocities.

[0111] As a feasible implementation, based on the three-dimensional coordinates corresponding to the blood flow vertex, the horizontal coordinate of the two-dimensional texture coordinates corresponding to the blood flow vertex is configured as x, and the vertical coordinate is configured as 1-y. The two-dimensional texture coordinates are configured in this way because the picture will be reversed when sampling the texture picture later, resulting in the y axis being in the opposite direction.

[0112] Based on the above description, as shown in the schematic diagram of mapping the x coordinate and the y coordinate of the blood flow vertex provided by the embodiment of the application, the method comprises the following steps:​Figure 5 Fig. 1 shows a flow diagram for configuring two-dimensional texture coordinates for blood flow vertices according to an embodiment of the present application, including the following steps:

[0113] S501, traversing blood flow vertices in a blood flow vertex template according to a set sampling interval;

[0114] S502, based on the three-dimensional coordinates corresponding to the traversed blood flow vertices, configuring the traversed blood flow vertices with two-dimensional texture coordinates with the horizontal coordinate x and the vertical coordinate 1-y.

[0115] In some embodiments, after traversing all blood flow vertices in the blood flow template and configuring the three-dimensional coordinates and the two-dimensional texture coordinates, in order to improve the blood flow imaging effect, on the one hand, the smoothness of the transition between the blood flow vertices of the blood flow boundary needs to be improved to reduce the sawtooth effect of the blood flow boundary; on the other hand, the smoothness of the height transition between the blood flow vertices in the blood flow interior needs to be improved to reduce the ruggedness of the blood flow interior.

[0116] Therefore, in order to improve the blood flow imaging effect, after traversing all blood flow vertices in the blood flow template and configuring the three-dimensional coordinates and the two-dimensional texture coordinates, based on the purpose of smoothing the three-dimensional coordinates of all blood flow vertices in the blood flow template, the three-dimensional coordinates of all blood flow vertices in the blood flow template need to be updated according to a certain strategy.

[0117] As a feasible implementation, when updating the three-dimensional coordinates of all blood flow vertices in the blood flow template according to a certain strategy, the three-dimensional coordinates of the blood flow vertices that need to be updated and the three-dimensional coordinates of a certain number of pixel points around the blood flow vertices that need to be updated are weighted and summed according to a preset weight, and the three-dimensional coordinates of the blood flow vertices that need to be updated are updated according to the weighted sum result.

[0118] Among them, the certain number of pixel points around the blood flow vertices that need to be updated may include blood flow vertices or non-blood flow vertices, and the way to obtain the three-dimensional coordinates of non-blood flow vertices and calculate the three-dimensional coordinates of blood flow vertices is similar. It can be considered that the blood flow energy and energy variance of non-blood flow vertices are 0. As a feasible implementation, the three-dimensional coordinates of non-blood flow vertices are calculated as follows:

[0119] After normalizing the two-dimensional positions corresponding to the non-blood flow vertices, they are mapped into the x coordinate and the y coordinate in the corresponding three-dimensional coordinates, and the z coordinate in the three-dimensional coordinates of the non-blood flow vertices is 0.

[0120] Based on the above description, Fig. 2 shows a flow diagram for updating the three-dimensional coordinates of blood flow vertices according to an embodiment of the present application, including the following steps: Figure 6

[0121] ​S601, traversing a blood flow vertex in a blood flow vertex template;

[0122] S602, based on the three-dimensional coordinates of the traversed blood flow vertex and the three-dimensional coordinates of a set number of pixel points around the traversed blood flow vertex, performing weighted summation according to a preset weight value;

[0123] S603, updating the three-dimensional coordinates of the traversed blood flow vertex according to the result of the weighted summation.

[0124] As described above, when smoothing the three-dimensional coordinates of all blood flow vertices in the blood flow template according to a certain strategy, the three-dimensional coordinates of the non-boundary blood flow vertices and the boundary blood flow vertices inside the blood flow are updated based on different smoothing purposes. For the non-boundary blood flow vertices, the three-dimensional coordinates are updated for the purpose of weakening the ruggedness inside the blood flow. For the boundary blood flow vertices, the three-dimensional coordinates are updated for the purpose of weakening the jaggedness of the blood flow boundary.

[0125] It should be noted that the outermost blood flow vertex in the embodiments of the present application is the blood flow boundary. The essence of updating the three-dimensional coordinates of the blood flow vertex of the blood flow boundary is to adjust the blood flow boundary to weaken the jaggedness, that is, to adjust the outward convexity back and the inward concave outward. The neighborhood of the blood flow vertex of the blood flow boundary includes non-blood flow vertices, i.e., points with position information (x, y, 0), while the neighborhood of the blood flow vertex inside the blood flow, i.e., the non-boundary blood flow vertex, does not include non-blood flow vertices. The essence of updating the three-dimensional coordinates of the non-boundary blood flow vertex is to adjust the height value of the blood flow vertex inside the blood flow to weaken the ruggedness.

[0126] Therefore, when updating the position of each original vertex in the blood flow template according to a certain strategy, the update strategies for the non-boundary and boundary blood flow vertices are different.

[0127] In one or more embodiments, when updating the three-dimensional coordinates of the traversed blood flow vertex based on the result of the weighted summation of the three-dimensional coordinates of the traversed blood flow vertex and the three-dimensional coordinates of a set number of pixel points around the traversed blood flow vertex according to a preset weight value, the following two update strategies are included:

[0128] Update strategy one: when traversing to a non-boundary blood flow vertex, the three-dimensional coordinates of the traversed non-boundary blood flow vertex and the three-dimensional coordinates of a set number of pixel points around the traversed non-boundary blood flow vertex are weighted and summed according to the preset weight value for the purpose of smoothing the height of the traversed non-boundary blood flow vertex, and the three-dimensional coordinates of the traversed non-boundary blood flow vertex are updated according to the result of the weighted summation. The set number of pixel points around the boundary blood flow vertex includes the non-blood flow vertices, and the set number of pixel points around the non-boundary blood flow vertex does not include the non-blood flow vertices.

[0129] As a feasible implementation, in order to weaken the roughness inside the blood flow, when updating the three-dimensional coordinates of the non-boundary blood flow vertex being traversed according to the result of weighted summation, the height value, that is, the z coordinate, of the three-dimensional coordinates of the non-boundary blood flow vertex being traversed can be adjusted by setting the weight proportion of the three-dimensional coordinates of the non-boundary blood flow vertex being traversed.

[0130] Based on the above description, as shown in Figure 7 The flowchart for updating the three-dimensional coordinates of the non-boundary blood flow vertex provided by the embodiments of the present application includes the following steps:

[0131] S701, traversing the blood flow vertices in the blood flow vertex template;

[0132] S702, when traversing to a non-boundary blood flow vertex, performing weighted summation on the three-dimensional coordinates of the non-boundary blood flow vertex being traversed and the three-dimensional coordinates of a set number of pixel points around the non-boundary blood flow vertex being traversed according to the preset weight value for the purpose of smoothly transitioning the height of the non-boundary blood flow vertex;

[0133] S703, updating the three-dimensional coordinates of the non-boundary blood flow vertex being traversed according to the result of weighted summation.

[0134] The second update strategy is: when traversing to a boundary blood flow vertex, updating the three-dimensional coordinates of the boundary blood flow vertex being traversed according to the result of weighted summation on the three-dimensional coordinates of the boundary blood flow vertex being traversed and the three-dimensional coordinates of a set number of pixel points around the boundary blood flow vertex being traversed according to the preset weight value for the purpose of weakening the sawtooth feeling of the blood flow boundary; wherein the set number of pixel points around the boundary blood flow vertex includes the non-blood flow vertex, and the set number of pixel points around the non-boundary blood flow vertex does not include the non-blood flow vertex.

[0135] As a feasible implementation, in order to weaken the sawtooth feeling of the blood flow boundary, when updating the three-dimensional coordinates of the boundary blood flow vertex being traversed according to the result of weighted summation, the x coordinate and the y coordinate of the three-dimensional coordinates of the boundary blood flow vertex being traversed can be adjusted by setting the weight proportion of the three-dimensional coordinates of the boundary blood flow vertex being traversed.

[0136] Based on the above description, as shown in Figure 8 The flowchart for updating the three-dimensional coordinates of the non-boundary blood flow vertex provided by the embodiments of the present application includes the following steps:

[0137] S801, traversing the blood flow vertices in the blood flow vertex template;

[0138] S802, when a blood flow vertex of a boundary is traversed, performing weighted summation on the three-dimensional coordinates of the blood flow vertex of the traversed boundary and the three-dimensional coordinates of a number of pixel points around the blood flow vertex of the traversed boundary according to a preset weight value for the purpose of weakening the sawtooth effect of the blood flow boundary;

[0139] S803, updating the three-dimensional coordinates of the blood flow vertex of the traversed boundary according to the result of the weighted summation.

[0140] In the embodiments of the present application, after the three-dimensional positions of all the blood flow vertices in the blood flow template are updated according to a certain strategy, the blood flow vertices with three-dimensional coordinates are bound into triangular facets based on the coordinate adjacency of the two-dimensional positions of the blood flow vertices, and a three-dimensional blood flow mesh is established based on all the triangular facets.

[0141] As a feasible implementation, when the blood flow vertices with three-dimensional coordinates are bound into triangular facets based on the coordinate adjacency of the two-dimensional positions of the blood flow vertices, the blood flow vertices with subscripts (i, j), (i, j-1), (i-1, j) and (i-1, j), (i, j-1), (i-1, j-1) are bound into triangular facets according to the coordinate adjacency of the two-dimensional positions of the blood flow vertices.

[0142] In some embodiments, after the blood flow vertices with three-dimensional coordinates are bound into triangular facets to establish a three-dimensional blood flow mesh based on the coordinate adjacency of the two-dimensional positions of the blood flow vertices, it is necessary to increase the number of vertices and triangular facets on the mesh surface according to certain rules to make the mesh surface smoother, so that a more ideal lighting effect is obtained in subsequent rendering and a better three-dimensional effect is presented.

[0143] As a feasible implementation, the Loop mesh subdivision algorithm is adopted in the embodiments of the present application, a new blood flow vertex is inserted into each edge of the current triangular facet in an iterative manner, the new blood flow vertices in the same triangular facet are connected two by two to form four new triangular facets, and when the process of inserting new vertices to generate new triangular facets reaches a preset iteration number, a three-dimensional blood flow mesh is obtained based on all the triangular facets.

[0144] Based on the above description, as shown in Figure 9 the flowchart for constructing a three-dimensional blood flow mesh provided by the embodiments of the present application includes the following steps:

[0145] S901, binding the blood flow vertices with three-dimensional coordinates into triangular facets based on the coordinate adjacency of the two-dimensional positions of the blood flow vertices;

[0146] S902, using a mesh subdivision algorithm, inserting a new blood flow vertex to each edge of the current triangular facet in an iterative manner, and connecting the new blood flow vertices in the same triangular facet to form four new triangular facets;

[0147] S903, determining that the iteration number is reached, obtaining the three-dimensional blood flow mesh based on the current triangular facet.

[0148] It should be noted that the blood flow vertices added by the mesh subdivision algorithm also interpolate their respective three-dimensional coordinates and two-dimensional texture coordinates, and the system also interpolates the corresponding color values at the corresponding positions on the two-dimensional texture picture, so the added blood flow vertices can also sample the two-dimensional texture picture using their respective two-dimensional texture coordinates to obtain the corresponding color values.

[0149] S104, sampling the color values of different positions of the two-dimensional texture picture, and rendering and coloring the three-dimensional blood flow mesh according to the sampled color values.

[0150] After constructing the three-dimensional blood flow mesh based on all the triangular facets, it is necessary to sample the two-dimensional texture picture and render and color the three-dimensional blood flow mesh according to the sampled color values.

[0151] In the embodiments of the present application, after obtaining the three-dimensional coordinates and two-dimensional texture coordinates of all the blood flow vertices, the process of rendering and coloring the three-dimensional blood flow mesh includes the following two parts:

[0152] 1) adding the blood flow vertex data to the pre-defined vertex structure array and index structure array;

[0153] In the process of rendering and coloring the three-dimensional blood flow mesh, in order to facilitate the use of corresponding data, the data of all blood flow vertices need to be stored in the corresponding positions.

[0154] In the embodiments of the present application, the blood flow vertex data is added to the pre-defined vertex structure array and index structure array. The vertex structure array is used to store the three-dimensional coordinates and two-dimensional texture coordinates of the blood flow vertices, and the index structure array is used to store the two-dimensional positions of the blood flow vertices corresponding to each triangular facet. Through the index structure array, the three-dimensional coordinates and two-dimensional texture coordinates of the three blood flow vertices corresponding to each triangular facet can be found in the vertex structure array.

[0155] In one or more embodiments, adding the blood flow vertex data to the pre-defined vertex structure array and index structure array includes the following two parts:

[0156] ① traversing the blood flow vertices in the three-dimensional blood flow mesh, and assigning the three-dimensional coordinates and two-dimensional texture coordinates of the blood flow vertices in the three-dimensional blood flow mesh to the pre-defined vertex structure and adding them to the vertex structure array;

[0157] S1003, adding the two-dimensional position of the blood flow vertex corresponding to each triangular facet in the three-dimensional blood flow mesh to the index structure body array.

[0158] Based on the above description, as shown in Figure 10 the flowchart provided by the embodiment of the present application for storing blood flow vertex data according to a set position includes the following steps:

[0159] S1001, traversing the blood flow vertex in the three-dimensional blood flow mesh;

[0160] S1002, assigning the three-dimensional coordinates and two-dimensional texture coordinates of the blood flow vertex in the three-dimensional blood flow mesh to the pre-defined vertex structure body and adding it to the vertex structure body array;

[0161] S1003, adding the two-dimensional position of the blood flow vertex corresponding to each triangular facet in the three-dimensional blood flow mesh to the index structure body array.

[0162] 2) running the shader program unit to render coloring on the three-dimensional blood flow mesh.

[0163] The shader program unit is a program running on the GPU. When rendering, the vertex structure body array and the index structure body array obtained in 1) are copied to the vertex buffer object and the index buffer object in the video memory. By opening the corresponding memory in the video memory to store the specified data, the data does not need to be transmitted from the CPU, and the vertex attribute data of the vertex can be directly taken from the vertex buffer object, so that the processing efficiency is higher.

[0164] The process of rendering coloring on the three-dimensional blood flow mesh can be considered as the process of the shader program unit traversing each triangular facet and coloring each triangular facet.

[0165] During the running of the shader program unit, the three-dimensional coordinates and two-dimensional texture coordinates of each blood flow vertex in the vertex structure array are input as vertex attributes to the pre-compiled shader program unit. Then, the shader program unit determines the blood flow vertices belonging to the same triangular facet based on the index structure body array, and renders coloring on the triangular facet according to the vertex attributes of the blood flow vertices belonging to the same triangular facet.

[0166] Based on the above description, as shown in Figure 11 the flowchart provided by the embodiment of the present application for rendering coloring on each triangular facet of the three-dimensional blood flow mesh includes the following steps:

[0167] S1101, inputs the three-dimensional coordinates and two-dimensional texture coordinates of each blood flow vertex in the vertex structure array as vertex attributes into the pre-compiled shader program unit;

[0168] S1102, the shader program unit is called to traverse all triangles based on the index structure array and determine the blood flow vertices belonging to the same triangle;

[0169] S1103, render and color the traversed triangles based on the vertex attributes of the blood flow vertices belonging to the same triangle.

[0170] In this embodiment of the application, when the shader program unit colors each triangular facet in the three-dimensional blood flow mesh, it needs to convert each triangular facet in the three-dimensional blood flow mesh to the screen space of the final image display. Therefore, when the shader program unit colors each triangular facet in the three-dimensional blood flow mesh, it first needs to determine the screen coordinates of the blood flow vertices on each triangular facet in the screen space, and then it needs to determine the color value of each triangular facet before coloring each triangular facet.

[0171] To accomplish the tasks of determining screen coordinates and coloring each triangular facet, the shader program unit includes a vertex shader and a fragment shader.

[0172] It should be noted that both the input and output data to the shader unit must be transmitted in a predefined format, following preset variable forms, for the shader unit to function. Therefore, the vertex data input to the shader unit consists of 3D coordinates and 2D texture coordinates input according to a specific vertex attribute format. The input information is also transmitted within the shader unit in a preset variable form from the vertex shader to the fragment shader.

[0173] The role of the vertex shader is to receive vertex attributes, determine the vertex spatial position of each blood flow vertex after the model-view transformation, and then pass the transformed vertex spatial position and other vertex attributes to the fragment shader.

[0174] like Figure 12 The diagram shown is a flowchart illustrating the operation of the vertex shader provided in this embodiment, including the following steps:

[0175] S1201, Receive the vertex attributes of each blood flow vertex, wherein the vertex attributes include three-dimensional coordinates and two-dimensional texture coordinates;

[0176] S1202, based on a pre-set coordinate transformation matrix, converts the three-dimensional coordinates of each blood flow vertex into the corresponding screen coordinates;

[0177] S1203, input the screen coordinates and the two-dimensional texture coordinates into the fragment shader.

[0178] The role of the fragment shader is to receive the vertex attributes passed by the vertex shader, and combine the pre-set light, material and other attributes transmitted by the CPU, calculate the final color value of each triangular patch based on the pre-set light model, and color each triangular patch.

[0179] As shown in FIG. 1, a flowchart of the running process of the fragment shader provided by the embodiment of the present application is shown, including the following steps: Figure 13

[0180] S1301, determining blood flow vertices belonging to the same triangular patch based on the index structure body array, and searching for color values corresponding to the two-dimensional texture coordinates of the blood flow vertices belonging to the same triangular patch;

[0181] S1302, inputting the color values corresponding to the blood flow vertices on the same triangular patch, the vertex normal vectors and the incident direction of the pre-set light source and the observation direction of the camera into the pre-set light model to calculate the color value of the same triangular patch;

[0182] The vertex normal vector of each blood flow vertex is calculated based on the patch normal vectors of all the triangular patches where the blood flow vertex is located, and the specific calculation method is the prior art, which will not be described in detail here.

[0183] The embodiment of the present application uses improved Physically Based Rendering (PBR) technology to simulate and superimpose rendering of real light, so as to improve the contrast of blood flow and enhance the filling sense of blood flow.

[0184] Physically Based Rendering technology is committed to rendering light and shadow effects closer to the real physical world, and constructing a light model based on physical laws for light calculation. The light model based on physical rendering needs to meet the following three conditions: 1. Energy conservation, for a non-self-luminous object, the energy of the outgoing light can never exceed the energy of the incoming light; 2. Microplane-based surface model (at the microscopic scale, any plane can be described by a set of small smooth mirrors); 3. Using a physically based Bidirectional Reflectance Distribution Function (BRDF).

[0185] Calculating color value means using an equation to calculate the outgoing degree along a certain observation direction according to the material properties and light source information, which is called a light model.

[0186] ​The Disney Principled BRDF model is currently the most widely used physically based BRDF lighting model. It is used in many real-time rendering pipelines for material and lighting environments. Based on the original color values ​​of the areas to be colored and the set lighting conditions, it calculates the final color value of the areas to be colored. The Disney Principled BRDF formula is as follows:

[0187]

[0188] Where, ω i ω o Let and n be the vectors representing the camera's viewing direction, the light source's incident direction, and the normal direction, respectively, while h is a vector between ω and n. i and ω o The half-angle vector between, the above ω i ω o , n, and h are all normalized unit vectors; F(ω i ,h)G(ω i ,ω o ,h) and D(h) are the Fresnel reflection equation, geometric function and normal distribution function, respectively.

[0189] Based on the above formula, the fragment shader can calculate the final color value of each blood flow vertex on each triangle and interpolate the color values ​​of the fragments between each blood flow vertex on each triangle, thus obtaining the color value of the entire triangle.

[0190] Using the above lighting model results in undesirable phenomena such as overexposure of highlights in flat areas and underexposure of steep areas. In one or more embodiments, this application modifies the parameters of the lighting model to suppress highlights in flat areas of the three-dimensional blood flow mesh and to brighten steep areas of the three-dimensional blood flow mesh with ambient light and diffuse reflection.

[0191] As a feasible implementation method, a slope adaptive recognition algorithm is used to identify the slope of the z-coordinate in the three-dimensional coordinates of all blood flow vertices, and the flat and steep regions of the three-dimensional blood flow grid are determined based on the identified slope.

[0192] Based on the above explanation, as Figure 14 The diagram shown is a flowchart illustrating the processing of flat and steep regions of a three-dimensional blood flow mesh according to an embodiment of this application, including the following steps:

[0193] S1401 uses a slope adaptive recognition algorithm to identify the slope of the z-coordinate in the three-dimensional coordinates of all blood flow vertices;

[0194] S1402, determine the flat and steep regions of the three-dimensional blood flow grid based on the identified slope;

[0195] S1403, by adjusting the parameters of the lighting model, the flat areas of the three-dimensional blood flow mesh are suppressed for highlights, and the steep areas of the three-dimensional blood flow mesh are brightened for ambient light and diffuse reflection.

[0196] By using an improved Disney Principled BRDF model for lighting rendering, the colors of blood flow in different directions are clearly distinguished, the contrast is improved, and the blood flow has an added highlight band effect, giving people a three-dimensional visual effect and enhancing the fullness of the blood flow.

[0197] S1203, Based on the calculated color value of the same triangular facet, the triangular facet is rendered and colored. By running the pre-set shader program, obtaining the required data and parameters from the specified video memory, and interpolating and coloring each pixel according to the set rules, off-screen rendering can be performed.

[0198] By saving the final off-screen rendered data to a specific video memory, the data can be copied from the GPU to the CPU memory to complete ultrasound blood flow imaging.

[0199] like Figure 15 The diagram shown is a functional unit schematic of ultrasound blood flow imaging provided in the embodiments of this application, including a blood flow template generation unit, a three-dimensional blood flow mesh construction unit, a mesh optimization unit, and a GPU rendering unit.

[0200] The blood flow template generation unit is used to filter out the blood flow vertices of the entire region of interest and map the three-dimensional coordinates and two-dimensional texture coordinates of the blood flow vertices; the three-dimensional blood flow mesh construction unit is used to form triangular facets from each blood flow vertex; the mesh optimization unit is used to update the three-dimensional coordinates of each blood flow vertex according to a preset strategy to achieve the purpose of smoothing the three-dimensional blood flow mesh, and the mesh optimization unit is also used to increase the number of blood flow vertices and triangular facets based on a mesh subdivision algorithm; the GPU rendering unit is used to render and color the three-dimensional blood flow mesh based on an improved lighting model.

[0201] The ultrasound blood flow imaging method provided in this application is based on two-dimensional hemodynamic data to map the three-dimensional coordinates of each blood flow vertex and construct a three-dimensional blood flow mesh. During the rendering and coloring process of the three-dimensional blood flow mesh, realistic lighting is superimposed on the original colors to obtain a realistic three-dimensional blood flow effect, which improves the recognition effect of complex three-dimensional vascular structures.

[0202] Based on the same inventive concept, the application further provides an ultrasound blood flow imaging device, as shown in Figure 16 which comprises:

[0203] a blood flow template construction module 1601 configured to filter out blood flow vertices based on two-dimensional blood flow dynamics data of pixels in a region of interest (ROI), to obtain a blood flow vertex template, wherein the two-dimensional blood flow dynamics data comprises two-dimensional positions, blood flow velocities, blood flow energies, and energy variances of the blood flow vertices, and the pixels comprise blood flow vertices with non-zero blood flow velocities and non-blood flow vertices with zero blood flow velocities;

[0204] a coordinate mapping module 1602 configured to traverse the blood flow vertices in the blood flow vertex template according to a set sampling interval, to normalize the two-dimensional positions of the blood flow vertices, and to map the normalized two-dimensional positions into x coordinates and y coordinates in corresponding three-dimensional coordinates;

[0205] a three-dimensional blood flow grid construction module 1603 configured to normalize average values of blood flow energies and energy variances corresponding to the blood flow vertices, to map the normalized average values into z coordinates in the corresponding three-dimensional coordinates, and to construct a three-dimensional blood flow grid based on the three-dimensional coordinates of the blood flow vertices;

[0206] a rendering coloring module 1604 configured to sample color values of different positions of a two-dimensional texture picture, and to render and color the three-dimensional blood flow grid according to the sampled color values.

[0207] The two-dimensional texture picture is a picture obtained by determining corresponding color values of blood flow velocities of blood flow vertices at different two-dimensional positions according to a color table, and the color table is used to map corresponding color values of different blood flow velocities.

[0208] Based on the same inventive concept, the application further provides an ultrasound blood flow imaging device 1700, as shown in Figure 17 which comprises at least one processor 1702 and a memory 1701 connected with the at least one processor; wherein the memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to perform the method of ultrasound blood flow imaging in any one of the above embodiments.

[0209] The memory 1701 is configured to store programs. Specifically, the programs can include program codes including computer operation instructions. The memory 1701 can be a volatile memory such as a random-access memory (RAM), or a non-volatile memory such as a flash memory, a hard disk drive (HDD) or a solid-state drive (SSD), or a combination of any one or more of the foregoing.

[0210] The processor 1702 can be a central processing unit (CPU), a network processor (NP), or a combination of the CPU and the NP. The processor 1702 can also be a hardware chip. The hardware chip can be an application-specific integrated circuit (ASIC), a programmable logic device (PLD) or a combination of any one of the foregoing.

[0211] Based on the same inventive concept, the embodiment further provides a computer storage medium storing a computer program, where the computer program is used to make a computer execute the method for ultrasonic blood flow imaging.

[0212] The storage medium can be a non-transitory computer readable storage medium, for example, the non-transitory computer readable storage medium can be a ROM, a random access memory (RAM), a CD-ROM, a magnetic tape, a floppy disk, and an optical data storage device, etc.

[0213] The embodiment of the present disclosure further provides a computer program product, which, when running on an electronic device, causes the electronic device to execute the method for ultrasonic blood flow imaging according to any one of the above embodiments.

[0214] In several embodiments provided in the present application, it should be understood that the disclosed system, device and method can be implemented by other manners. For example, the above-described device embodiments are merely illustrative, for example, the division of the modules is merely a logical function division, and actual implementation can have another division manner, for example, a plurality of modules or components can be combined or integrated into another system, or some features can be ignored or not executed. In addition, the shown or discussed mutual coupling or direct coupling or communication connection can be indirect coupling or communication connection through some interfaces, devices or modules, and can be electrical, mechanical or other forms.

[0215] The modules described as separate components can or can not be physically separated, and the components shown as modules can or can not be physical modules, i.e., can be located in one place or distributed to a plurality of network modules. Part or all of the modules can be selected according to actual needs to achieve the purpose of the embodiment.

[0216] In addition, the functional modules in each embodiment of the present application can be integrated into one processing module, or each module can exist physically independently, or two or more modules can be integrated into one module. The integrated module can be realized in the form of hardware or in the form of a software functional module. When the integrated module is realized in the form of a software functional module and sold or used as an independent product, it can be stored in a computer readable storage medium.

[0217] In the above embodiments, all or part can be realized by software, hardware, firmware or any combination thereof. When realized by software, all or part can be realized in the form of a computer program product.

[0218] The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the processes or functions described in the embodiments of the present application are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network or other programmable devices. The computer instructions can be stored in a computer readable storage medium or transferred from one computer readable storage medium to another, for example, the computer instructions can be transferred from one website site, computer, server or data center to another website site, computer, server or data center through wired (such as coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (such as infrared, wireless, microwave, etc.).

[0219] The computer-readable storage medium can be any available medium or data storage that can be used to store the desired computer program code in a manner that is readable by a computer. The computer-readable storage medium can be a magnetic medium, (e.g., a floppy diskette, a hard disk drive, a magnetic tape), an optical medium, (e.g., a Compact Disc (CD), a DVD, an optical tape), a semiconductor medium, (e.g., a solid state disk (SSD)), or the like.

[0220] The above detailed description of the technical solutions provided by the present application is provided, the principles and implementation modes of the present application are described by applying specific examples, the above example description is only for helping to understand the method and core idea of the present application; at the same time, for the general technical personnel in the art, according to the idea of the present application, the specific implementation mode and application range will be changed, and the above description should not be understood as the limitation of the present application.

[0221] Those skilled in the art should understand that the embodiments of the present application can be provided as a method, a system, or a computer program product. Therefore, the present application can adopt a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Moreover, the present application can adopt the form of a computer program product implemented on one or more computer usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer usable program code.

[0222] The present application is described with reference to flowcharts and / or block diagrams according to the methods, devices (systems), and computer program products of the present application. It should be understood that the computer program instructions can be provided by those skilled in the art. The embodiments of the present application can be provided as a method, a system, or a computer program product. Therefore, the present application can adopt a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects.

[0223] Moreover, the present application can adopt the form of a computer program product implemented on one or more computer usable storage media (containing computer usable program code) containing computer usable program code. The computer program instructions can be provided to the processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing device produce a device that implements the functions specified in the flowchart and / or block diagram, and the combination of the flowchart and / or block diagram. The computer program instructions can be provided to the processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing device produce a device that implements the functions specified in the flowchart and / or block diagram, and the combination of the flowchart and / or block diagram. Figure 1 The flowchart and / or block diagram can include one or more flowcharts and / or blocks. Figure 1 The flowchart and / or block diagram can include one or more flowcharts and / or blocks.

[0224] These computer program instructions can also be stored in a computer readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer readable memory produce an article of manufacture including instructions which implement the flow Figure 1 The flow or flows and / or blocks Figure 1 The flow or flows and / or blocks

[0225] These computer program instructions can also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions that execute on the computer or other programmable apparatus provide steps for implementing the flow Figure 1 The flow or flows and / or blocks Figure 1 The flow or flows and / or blocks

[0226] Obviously, numerous modifications and variations of the present application are possible in light of the above teachings. It is therefore to be understood that within the scope of the appended claims and their equivalents, the application can be practiced otherwise than as specifically described.

Claims

1. A method of ultrasound blood flow imaging, characterized by, The method comprises the following steps: obtaining a blood flow vertex template by screening blood flow vertices based on two-dimensional blood flow data of pixels in a region of interest (ROI), wherein the two-dimensional blood flow data comprises two-dimensional positions, blood flow velocities, blood flow energies and energy variances of the blood flow vertices, and the pixels comprise the blood flow vertices with non-zero blood flow velocities and the non-blood flow vertices with zero blood flow velocities; mapping x coordinates and y coordinates in corresponding three-dimensional coordinates by normalizing the two-dimensional positions of the blood flow vertices and traversing the blood flow vertices in the blood flow vertex template according to a set sampling interval; mapping z coordinates in corresponding three-dimensional coordinates by normalizing average values of the blood flow energies and the energy variances corresponding to the blood flow vertices, and constructing a three-dimensional blood flow grid based on the three-dimensional coordinates of the blood flow vertices; rendering and coloring the three-dimensional blood flow grid according to color values of different positions in a two-dimensional texture picture by sampling the color values; the two-dimensional texture picture is obtained by determining corresponding color values according to a color table based on blood flow velocities of blood flow vertices at different two-dimensional positions, and the color table is used to map color values corresponding to different blood flow velocities.

2. The method of claim 1, wherein, The method for sampling color values of different positions in a two-dimensional texture picture comprises the following steps: configuring horizontal coordinates of two-dimensional texture coordinates corresponding to the blood flow vertices as x and vertical coordinates as 1-y based on the three-dimensional coordinates of the blood flow vertices; sampling the two-dimensional texture picture based on the two-dimensional texture coordinates to obtain color values.

3. The method of claim 1, wherein, The method for constructing a three-dimensional blood flow grid based on the three-dimensional coordinates of the blood flow vertices comprises the following steps: binding the blood flow vertices with configured three-dimensional coordinates into triangular facets based on the coordinate adjacency of the two-dimensional positions of the blood flow vertices; inserting a new blood flow vertex into each side of a current triangular facet by using a mesh subdivision algorithm in an iterative manner to form four new triangular facets by connecting the new blood flow vertices in the same triangular facet two by two; determining that the iteration number is reached, and obtaining the three-dimensional blood flow grid based on the current triangular facet.

4. The method of claim 1, wherein, Before the method for constructing a three-dimensional blood flow grid based on the three-dimensional coordinates of the blood flow vertices, the method further comprises the following steps: updating the three-dimensional coordinates of a blood flow vertex being traversed based on a weighted summation result of the three-dimensional coordinates of the blood flow vertex being traversed and the three-dimensional coordinates of a set number of pixels around the blood flow vertex being traversed according to preset weights; wherein the three-dimensional coordinates of the non-blood flow vertices are calculated in the following manner: mapping x coordinates and y coordinates in corresponding three-dimensional coordinates by normalizing the two-dimensional positions of the non-blood flow vertices, and the z coordinates of the three-dimensional coordinates of the non-blood flow vertices are 0.

5. The method of claim 4, wherein, The method for updating the three-dimensional coordinates of the blood flow vertex being traversed based on a weighted summation result of the three-dimensional coordinates of the blood flow vertex being traversed and the three-dimensional coordinates of a set number of pixels around the blood flow vertex being traversed according to preset weights comprises the following steps: When a non-boundary blood flow vertex is traversed, the three-dimensional coordinates of the traversed non-boundary blood flow vertex and the three-dimensional coordinates of a predetermined number of pixel points around the traversed non-boundary blood flow vertex are weighted and summed according to a preset weight value for the purpose of smoothing the height of the non-boundary blood flow vertex, and the three-dimensional coordinates of the traversed non-boundary blood flow vertex are updated; When a boundary blood flow vertex is traversed, the three-dimensional coordinates of the traversed boundary blood flow vertex and the three-dimensional coordinates of a predetermined number of pixel points around the traversed boundary blood flow vertex are weighted and summed according to a preset weight value for the purpose of weakening the sawtooth effect of the blood flow boundary, and the three-dimensional coordinates of the traversed boundary blood flow vertex are updated; The predetermined number of pixel points around the boundary blood flow vertex includes the non-blood flow vertex, and the predetermined number of pixel points around the non-boundary blood flow vertex does not include the non-blood flow vertex.

6. The method of claim 2, wherein, The rendering and coloring of the three-dimensional blood flow mesh includes: Traversing the blood flow vertices in the three-dimensional blood flow mesh, assigning the three-dimensional coordinates and two-dimensional texture coordinates of the blood flow vertices in the three-dimensional blood flow mesh to a predefined vertex structure and adding them to a vertex structure array; Adding the two-dimensional positions of the blood flow vertices corresponding to each triangular facet in the three-dimensional blood flow mesh to an index structure array, wherein the triangular facets are configured based on the coordinate adjacency of the two-dimensional positions of the blood flow vertices; Inputting the three-dimensional coordinates and two-dimensional texture coordinates of each blood flow vertex in the vertex structure array as vertex attributes into a pre-compiled shader program unit; Calling the shader program unit to determine the blood flow vertices belonging to the same triangular facet based on the index structure array, and rendering and coloring the triangular facet based on the vertex attributes of the blood flow vertices belonging to the same triangular facet.

7. The method of claim 6, wherein, The pre-compiled shader program unit includes a vertex shader and a fragment shader; Calling the shader program unit to determine the blood flow vertices belonging to the same triangular facet based on the index structure array, and rendering and coloring the triangular facet based on the vertex attributes of the blood flow vertices belonging to the same triangular facet, includes: Using the vertex shader to convert the three-dimensional coordinates of each blood flow vertex into corresponding screen coordinates based on a pre-set coordinate transformation matrix, and inputting the screen coordinates and the two-dimensional texture coordinates into the fragment shader; Using the fragment shader to determine the blood flow vertices belonging to the same triangular facet based on the index structure array, and according to the corresponding two-dimensional texture coordinates of the blood flow vertices belonging to the same triangular facet, and finding the color values corresponding to the two-dimensional texture coordinates; Using the fragment shader to input the found color values corresponding to the blood flow vertices on the same triangular facet, the vertex normal vector, the pre-set incident direction of the light source, and the pre-set observation direction of the camera into a pre-set lighting model to calculate the color value of the same triangular facet; Using the fragment shader to render and color the triangular facet based on the calculated color value of the same triangular facet.

8. The method of claim 7, wherein, Further comprising: Adopting a slope self-adaptive identification algorithm to identify the slope of the z coordinate in the three-dimensional coordinate of all blood flow vertexes; Determining the flat region and the steep region of the three-dimensional blood flow grid according to the identified slope; By adjusting the parameters of the light model, the highlight of the flat region of the three-dimensional blood flow grid is suppressed, and the ambient light and diffuse reflection of the steep region of the three-dimensional blood flow grid is brightened.

9. An ultrasound blood flow imaging apparatus, characterized by The device comprises: A blood flow template construction module configured to filter out blood flow vertexes based on two-dimensional blood flow dynamics data of pixel points in a region of interest (ROI) to obtain a blood flow vertex template, wherein the two-dimensional blood flow dynamics data comprises two-dimensional positions of blood flow vertexes, blood flow velocities, blood flow energies, and energy variances, and the pixel points comprise blood flow vertexes with non-zero blood flow velocities and non-blood flow vertexes with zero blood flow velocities; A coordinate mapping module configured to traverse blood flow vertexes in the blood flow vertex template according to a set sampling interval, normalize the two-dimensional positions of the blood flow vertexes, and map the two-dimensional positions into corresponding x coordinates and y coordinates in three-dimensional coordinates; A three-dimensional blood flow grid construction module configured to normalize the average values of blood flow energies and energy variances corresponding to the blood flow vertexes, map the average values into corresponding z coordinates in three-dimensional coordinates, and construct a three-dimensional blood flow grid based on the three-dimensional coordinates of the blood flow vertexes; A rendering coloring module configured to sample color values of different positions in a two-dimensional texture picture, and render and color the three-dimensional blood flow grid according to the sampled color values; The two-dimensional texture picture is a picture obtained by determining corresponding color values of blood flow velocities of blood flow vertexes in different two-dimensional positions according to a color table, and the color table is used to map color values corresponding to different blood flow velocities.

10. An apparatus for ultrasound blood flow imaging, characterized by The device comprises at least one processor; and a memory connected to the at least one processor in communication; wherein the memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to perform the steps of the method according to any one of claims 1-8.

Citation Information

Patent Citations

  • Ultrasound diagnostic apparatus

    CN101347342A

  • Method for determining blood flow morphology, ultrasonic device and computer storage medium

    CN114173674A