This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2015-197834, filed on Oct. 5, 2015, the entire contents of which are incorporated herein by reference.
The embodiments discussed herein are related to display of three-dimensional data.
Three-dimensional data that varies with time is displayed.
Related art techniques are disclosed in Japanese Laid-open Patent Publication No. 2003-334189.
According to an aspect of the embodiments, an information processing method includes: acquiring, by a computer, three-dimensional data in which a value that varies based on an elapsed time from a start of a simulation is arranged; acquiring a value of a cross section of the three-dimensional data at each of the elapsed time; arranging the values of the cross section in chronological order in three-dimensional spacetime; and displaying arranged values as a three-dimensional image.
The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention, as claimed.
For example, in some cases, it is difficult to understand the variations of a cross section of three-dimensional data.
For example, a method by which it is possible to understand the variations of a cross section of three-dimensional data may be provided.
In the description given below, the horizontal, vertical, and depth directions are indicated by arrows arranged at the bottom of each drawing. FIG. 1 illustrates an example of a hardware group of an Information processing apparatus 1. The information processing apparatus includes a central processing unit (CPU) 11, a storage unit 12, a random access memory (RAM) 13, an input unit 14, a display unit 15, a communication unit 16, and a clocking unit 17.
The CPU 11 is coupled to each unit of hardware via a bus. The CPU 11 may include, for example, one or a plurality of CPUs, a multi-core CPU, or the like. The CPU 11 controls each unit of hardware in accordance with a program 12P stored in the storage unit 12.
The storage unit 12 may be, for example, a hard disk, a large memory, or the like. In the storage unit 12, various kinds of data that are to be used when the CPU 11 executes a process, a simulation DB 121, a rendering DB 122, and the program 12P are stored.
The RAM 13 may be, for example, static random access memory (SRAM), dynamic random access memory (DRAM), flash memory, or the like. The RAM 13 functions as a storage unit and temporarily stores various kinds of data that are produced when the CPU 11 executes various kinds of programs.
The input unit 14 is an input device such as a mouse or a keyboard, and transmits received operation information to the CPU 11. The display unit 15 displays image data transmitted from the CPU 11. The display unit 15 may be, for example, a liquid crystal screen. The communication unit 16 may be, for example, a wireless local area network (LAN) card, a cellular-phone communication module, or the like, and transmits and receives various kinds of information to and from other information processing apparatuses over a communication network N. The clocking unit 17 docks, for example, time at the current time point and, in response to a request of the CPU 11, outputs the docked result to the CPU 11.
The CPU 11 stores, in the simulation DB 121, simulation data (hereinafter referred to as three-dimensional data in some cases) in which element values that vary with time are arranged. The simulation data, for example, may be data that reproduces the motion of liquid, a heart, or the like. By operating the simulation data, the CPU 11 calculates a variation in physical quantity such as temperature or a pressure value generated by liquid, a heart, or the like at each elapsed time.
When a user wants, for example, to examine the distribution of pressure values of a wall surface with which tsunami waves have collided, the CPU 11 performs the following processing. The CPU 11 acquires pressure values on the wall surface of simulation data. The CPU 11 arranges the acquired pressure values on the wall surface in chronological order so as to generate a three-dimensionally rendered image, where the horizontal direction is the X-axis direction, the vertical direction is the Y-axis direction, and the depth direction represents time. The CPU 11 displays the generated rendered image in the display unit 15. Thus, the CPU 11 is able to display pressure values on the wall surface of simulation data in chronological order.
The CPU 11 calculates the values of pressure exerted on particles in the liquid 31 by the wall surface 34 or other particles (hereinafter referred to as element values in some cases). The CPU 11 places the calculated pressure values at the simulation coordinates where the particles are situated. The CPU 11 stores the pressure values, the simulation coordinates where the particles are situated, and elapsed times at which the pressure values are generated, in association with one another, in the simulation DB 121.
In the Information processing system, the user inputs the Z-coordinate=50 with the input unit 14. The CPU 11 receives input of the Z-coordinate=50. The CPU 11 generates a cross section to be measured for measuring element values, in the wall surface 34 where the Z-coordinate is set to 50 and the X-coordinate and the Y-coordinate are at an arbitrary point.
The CPU 11 reads simulation data at t=1. The CPU 11 acquires an element value 1 at simulation coordinates (1,1,50,1). The CPU 11 acquires an element value 2 at simulation coordinates (1,2,50,1). The CPU 11 acquires an element value 3 at simulation coordinates (1,3,50,1). The CPU 11 places the element values 1, 2, and 3 at rendering coordinates 411, 421, and 431, respectively. Then, similar processing is performed for all the X-coordinates and Y-coordinates within the coordinate plane at t=1. The CPU 11 adds 1 second to the amount of the elapsed time t and reads simulation data at the elapsed time t=2. The CPU 11 acquires an element value 2 at the simulation coordinates (1,1,50,1), an element value 2 at the simulation coordinates (1,2,50,1), and an element value 3 at the simulation coordinates (1,3,50,1). The CPU 11 places the element values 2, 2, and 3 at the rendering coordinates 412, 422, and 432, respectively. Then, similar processing is performed for all the X-coordinates and Y-coordinates within the coordinate plane at t=2. The CPU 11 adds 1 second to the amount of the elapsed time t and reads simulation data at the elapsed time t=3. The CPU 11 acquires an element value 2 at the simulation coordinates (1,1,50,1). The CPU 11 acquires an element value 3 at the simulation coordinates (1,2,50,1). The CPU 11 acquires an element value 3 at the simulation coordinates (1,3,50,1). The CPU 11 places the element values 2, 3, and 3 at rendering coordinates 413, 423, and 433, respectively. Then, similar processing is performed for all the X-coordinates and Y-coordinates within the coordinate plane at t=3. The CPU 11 repeatedly performs similar processing until the completion time. The completion time may be an elapsed time at which rendering is completed.
The CPU 11 further performs interpolation processing. In the simulation data, element values are calculated every 1 second; however, there may be many cases where highly visible rendering is not achieved by calculation performed at a time interval of every 1 second. Therefore, the CPU 11 may calculate element values at a time interval shorter than the time interval of the simulation data.
After placing element values at rendering coordinates, the CPU 11 performs interpolation of element values at an elapsed time t=1.5 between the elapsed times t=1 and t=2. Interpolation of element values is calculated based on an interpolation function. The interpolation function is a function to interpolate values between elapsed times. The interpolation function may be, for example, a linear function with which values are uniquely determined based on the elapsed times before and after the target elapsed time and the element values.
As depicted in
Next, the CPU 11 performs interpolation of element values at an elapsed time t=2.5 between the elapsed times t=2 and t=3. As depicted in
The CPU 11 acquires the largest value and the smallest value from among element values. The CPU 11 divides the element values based on the largest value and the smallest value. For example, the CPU 11 divides the element values based on the sizes of values. For example, when the largest value among element values is 5 and the smallest value is 1, the CPU 11 acquires the largest value 5 and the smallest value 1. The CPU 11 divides element values between the element value 1 and the element value 5 into n equal parts. For example, the CPU 11 calculates a difference between the largest value and the smallest value. The CPU 11 divides the calculated difference into n equal parts. The CPU 11 adds, to the smallest value, a value obtained by division of the difference into n equal parts, so that element values between the largest value and the smallest value are divided into n equal parts. For example, the CPU 11 divides the element values into parts “1 to 1.9”, “2 to 2.9”, “3 to 3.9”, and “4 to 5”.
The CPU 11 classifies the divided element values by color. The CPU 11, for example, assigns red to the element values “1 to 1.9”. The CPU 11 assigns reddish purple to the element values “2 to 2.9”. The CPU 11 assigns purple to the element values “3 to 3.9”. The CPU 11 assigns violet to the element values “4 to 5”. The CPU 11 creates a rendered image 6 obtained by performing rendering based on the element values classified by color, and displays the created rendered image 6 on the display unit 15.
The CPU 11 acquires element values in the cross section to be measured (operation S14). The CPU 11 places the element values at rendering coordinates (operation S15). The CPU 11 adds the time interval u to the amount of the elapsed time t (operation S16). The CPU 11 determines whether or not the elapsed time t is the completion time (operation S17). If the CPU 11 determines that the elapsed time t is not the completion time (operation S17: No), the process returns to operation S13, where the process is repeatedly executed until the elapsed time t equals the completion time. If the CPU 11 determines that the elapsed time t is the completion time (operation S17: Yes), the CPU 11 sets the elapsed time t to the start time (operation S18).
The CPU 11 determines whether or not the element values of the cross section to be measured, at the elapsed time t, have already been acquired (operation S19). If the CPU 11 determines that the element values of the cross section to be measured, at the elapsed time t, have already been acquired (operation S19: Yes), the process proceeds to operation S22. If the CPU 11 determines that the element values of the cross section to be measured, at the elapsed time t, have not been acquired (operation S19: No), the CPU 11 calculates element values of the cross section to be measured, at the elapsed time t, based on an interpolation function (operation S20). The CPU 11 places the element values at rendering coordinates (operation S21). After completion of operation S19 or S21, the CPU 11 adds the divided time period v to the amount of the elapsed time t (operation S22). For example, the CPU 11 adds the divided time period v to the amount of elapsed time t in one case.
The CPU 11 determines whether or not the elapsed time t is the completion time (operation S23). If the CPU 11 determines that the elapsed time t is not the completion time (operation S23: No), the process returns to operation S19, where the process is repeatedly executed until the elapsed time t equals the completion time. If the CPU 11 determines that the elapsed time t is the completion time (operation S23: Yes), the CPU 11 acquires the largest value and the smallest value from among element values at rendering coordinates (operation S24).
The CPU 11 divides element values based on the largest value and the smallest value (operation S25). The CPU 11 classifies the divided element values by color (operation S26). For example, the CPU 11 associates the divided element values with colors based on the sizes of the element values. The CPU 11 renders the element values on the screen (operation S27), and the process is completed. For example, the CPU 11 displays element values as a three-dimensional image on the display unit 15.
According to one aspect, the variations of a cross section of three-dimensional data may be understood.
According to one aspect, calculating element values at the elapsed time t based on an interpolation function may lead to displaying the smooth rendered image 6.
According to one aspect, divided element values are classified by color, which may help to further understand the variations of the cross section.
According to one aspect, acquiring the largest value and the smallest value may lead to performing immediate appropriate division.
For example, three-dimensional data that simulates the motion of a heart may be used. In three-dimensional data, the shape of a heart is varied, and therefore the locations of element values arranged in the three-dimensional data also vary. Accordingly, when the user continues to acquire element values from the cross section to be measured at the cross-section location input by the user, the user may acquire element values that are different from the element values that the user desires to acquire. In order to acquire appropriate element values in accordance with variations in the three-dimensional data, the CPU 11 performs the following processing. When element values in the cross section to be measured and element values adjacent to the cross section to be measured are within a given range at each elapsed time, the CPU 11 regenerates a cross section to be measured so that the regenerated cross section to be measured includes adjacent locations representing the locations of the adjacent element values. The given range may be, for example, “0.5”. The CPU 11 acquires element values in the regenerated cross section to be measured to acquire the locations of appropriate element values in accordance with the shape of a heart. Hereinafter, configurations and operations other than the configurations and operations described in particular may be equivalent to the configurations and operations illustrated in
The CPU 11 calculates pressure values (hereinafter referred to as element values in some cases) of cardiac muscle. The CPU 11 places the calculated pressure values at simulation coordinates where cardiac muscle is present. The CPU 11 stores the pressure values, the simulation coordinates where cardiac muscle is present, and the elapsed times at which the pressure values are generated, in association with one another, in the simulation DB 121.
The user inputs a Z-coordinate=50 with the input unit 14 so as to specify the vicinity of the center of a heart as a cross-section location. The CPU 11 receives input of the cross-section location at the Z-coordinate=50. The CPU 11 generates a cross section to be measured for measuring the cross section of element values in the vicinity of the center of the heart. As depicted in
For example, when the cross-section coordinates do not match the simulation coordinates, element values may be arranged on the cross section to be measured in accordance with the motion of three-dimensional data. Accordingly, the CPU 11 may perform processing as follows. The CPU 11 generates a joining line that joins simulation coordinates. When the cross section to be measured 4 intersects the joining line, the CPU 11 acquires element values of the simulation coordinates located at both ends of the joining line. The CPU 11 arranges, at the intersection between the cross section to be measured and the joining line, a value obtained by adding together a plurality of acquired element values and dividing the sum by 2. For example, the element value placed at the simulation coordinates 751 at the elapsed time t=1 may be 1, and the element value placed at the simulation coordinates 752 at the elapsed time t=1 may be 2. In this case, the CPU 11 places an element value 1.5 at the cross-section coordinates 411 located at the middle point of the simulation coordinates 751 and 752.
When the shape of a heart varies at each elapsed time as depicted in A to D of
The CPU 11 generates a joining line that joins simulation coordinates (operation S33). The CPU 11 acquires element values at both ends of the joining line that intersects the cross section to be measured (operation S34). The CPU 11 calculates an element value at the Intersection between the cross section to be measured and the joining line (operation S35). For example, the CPU 11 calculates a value by adding together a plurality of acquired element values and dividing the sum by 2. The CPU 11 places the element value at the cross-section coordinates of the Intersection (operation S36). The CPU 11 acquires an element value in the cross section to be measured (operation S37). The CPU 11 acquires an element value adjacent to the cross section to be measured (operation S38).
The CPU 11 determines whether or not the element value in the cross section to be measured and the element value adjacent to the cross section to be measured are within the given range (operation S39). If the CPU 11 determines that the element values are not within the given range (operation S39: No), the process proceeds to operation S41. If the CPU 11 determines that the element values are within the given range (operation S39: Yes), the CPU 11 stores the adjacent location in the cross-section-to-be-measured DB 123 (operation S40).
The CPU 11 places the element values of the cross-section coordinates at rendering coordinates (operation S41), and the process proceeds to operation S17.
According to one aspect, tracing element values within the given range may lead to displaying the appropriate rendered image 6.
For example, the rendered image 6 in which contour lines are drawn may be displayed. Hereinafter, configurations and operations other than the configurations and operations described in particular may be equivalent to the configurations and operations illustrated in
After classifying the divided element values by color, the CPU 11 extracts the largest value, the smallest value, and the value that is in the middle of the largest and smallest values, from the rendering DB 122. The CPU 11 assigns yellow to the coordinates of the largest value. The CPU 11 assigns yellow green to the coordinates of the value that is in the middle of the largest and smallest values. The CPU 11 assigns green to the coordinates of the smallest value. Colors may be assigned in any manner. The CPU 11 renders the element values on a screen.
According to one aspect, drawing contour lines may help to understand the spatial distribution of equal values.
For example, applying a filter may lead to displaying a rendered image in which the distribution is made smooth. Hereinafter, configurations and operations other than the configurations and operations described in particular are substantially equivalent to the configurations or the process illustrated in
The particle 81 may be, for example, spherical. There are overlapping portions of each of the particles 81. In an actual pressure distribution, the pressure of a portion where the particles 81 overlap is larger than the pressure of a portion where the particles 81 do not overlap. Therefore, the CPU 11 smoothens simulation data to make the pressure distribution appropriate. For example, the CPU 11 smoothens element values by applying the filter 82 to element values placed at the coordinates 80 within the filter 82. The filter 82 is a Gaussian filter, and forms an ellipse that is longer in the X-direction than in the Y-direction. The standard deviation in the Y-direction in the filer 82 is smaller than the standard deviation in the X-direction.
An element value is associated with each of the particles 81. The CPU 11 acquires the element values of the particles 81. The CPU 11, for example, multiplies the element value at the cross-section coordinates 801 by one third, the element value at the cross-section coordinates 802 by two third, the element value at the cross-section coordinates 803 by two third, and the element value at the cross-section coordinates 804 by one third, thus applying the filter 82 to the element values. The CPU 11 then performs similar processing to the cross-section coordinates 80 within the filter 82. The CPU 11 places the element values to which the filter 82 has been applied, at the cross-section coordinates.
According to one aspect, applying a filter may lead to placing suitable element values, in accordance with the density of particles, at rendering coordinates.
A program for causing the information processing apparatus 1 to operate may be obtained by causing the reading unit 18, such as a disk drive, to read a portable recording medium 18A, such as a compact disc read-only memory (CD-ROM), a digital versatile disc (DVD), a memory card, or a universal serial bus (USB) memory, and be stored in the storage unit 12. The semiconductor memory 18B, such as flash memory, in which the program is stored may be mounted within the information processing apparatus 1. The communication unit 16 may be, for example, a wireless local-area network (LAN) card, a cellular-phone communication module, or the like, and is coupled over the communication network N to another server. The program may be downloaded from another server (not illustrated) coupled over the communication network N, such as the Internet, by the communication unit 16.
All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although the embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2015-197834 | Oct 2015 | JP | national |