Tuesday, October 30, 2012

Surface rendering examples

Sample images. Surface rendering of CT image data


Just a few more sample images created with a wxPython OpenGL rendering application...

Thursday, October 25, 2012

Removing duplicate vertices; equivalencing vertices at the same location

Triangulated surface after removing duplicate vertices.

In medical imaging one can run into following problem: After creating a triangulated surface  (e.g. with the Marching Cubes algorithm), duplicated vertices exist at the same location. Why is that a problem? Well it is not really a problem but processing duplicated (=same location at x,y,z coordinate) requires more memory and is more expensive on the graphic processing unit (GPU). The simplest way to find vertices at the same location is to compare each vertex with all existing vertices. This can be implemented with loops and is usually ridiculous slow! Another method is to use a "look-up table", a three dimensional array that will hold the number of the according vertex. A vertex pointer (x,y,z coordinate of vertex) is used to fill the according index in the look-up table; if an index is already filled then the vertex already exists. I've implemented such an algorithm in Python. I tested the algorithm with a data set that had originally 707190 vertices and after equivalenving only 117300 (83% reduction!). The total CPU time for this process was 2.899 seconds.

The function can be found at: 


Tuesday, October 16, 2012

HIFU Symposium, Washington DC


HIFU symposium in Washington DC

What a great conference! High intensity focused ultrasound, or HIFU, is a non-surgical treatment cancer. It offers possibility to eliminate cancer and maintaining quality of life.

Links:
http://www.internationalhifu.com/?gclid=CK7NlKnfhrMCFREx4Aodw2YAOQ

Friday, October 12, 2012

Red Bull Stratos, approximation of balloon volume

Image of Red Bull Stratos project ad take of. The vlume of the helium baloon was about 1884.3 m3.
Red Bull's Stratos project is an exciting mission where Felix Baumgartner attempts a parachute jump from the stratosphere. A balloon made of polyethylene will transport Felix and his capsule into a height of more than 36000 meters. How much helium is required to achieve this? Red bull states that "The team will insert about 180,000 cubic feet / 5,097 cubic meters of helium at launch.". The above image shows the balloon at the failed launch on Oct. 9. 2012. I was interested and created a Python application to approximate the balloon volume. In order to estimate real dimensions I used the height of person (assumed to be 175 cm) right next to the balloon as reference length. Linear distance relationships within the picture were assumed (I know,...a very rough estimation). The total volume was approximated with:



where V (m3) is the volume, R (m) is the radius of spherical part of the balloon and H (m) is the height of the conical part of the balloon (from balloon bottom to center of spherical part). the which approximates. The total balloon volume in this picture is 1884.3 m3 and is just a rough approximation. That means the balloon had about 37 percent of its final launch volume.
Links:
REd Bull Stratos - http://www.redbullstratos.com/
The Pythonapplication to calculate the volume - http://dl.dropbox.com/u/41416749/Stratus/CalculateVolume.py

Thursday, October 11, 2012

Calculating thermal cell injury

Calculation of temperature dependent the cell survival rate next to radiofrequency electrode
The Arrhenius formulation can be used to calculate time dependent thermal damage in biological tissues:
 
where S (%) is the cell survival, T (K) is the heating temperature, t (s) is the time k is the injury rate, E_a (kJ mol-1) is the activation energy, A (s-1) is the frequency factor and R (8.314 J mole-1K-1) is the universal gas constant.  The image above is from a project where I calculated cell survival fraction during a radiofrequency treatment in liver tissue. It shows one time frame of the recorded temperature via infrared camera (left) and the calculated survival rate as well as the temperature history at the marked area next to the electrode (right).
The Python script to calculate cell survival can be found at:

Tuesday, October 9, 2012

3D CAD software FreeCAD

Screen shot of the 3D modeling software FreeCAD
Today I tested the CAD software FreeCAD. It is a free, open-source modelling software to design industrial and mechanical parts. It does not provide all fancy design features that can be found in CATIA or ProEngineer but simple parts can be created. This is a great tool for someone who wants to make their first experiences with 3D modeling software! Tutorials of how to get started can be found on youtube.

Links:

Monday, October 8, 2012

3D modeling with CAD

Image of 3D modeling process with CAD software

Computer-aided design (CAD) uses computer systems to create designs of industrial parts. CAD models nowadays often involve more than just one part. Assemblies consisting of more than a thousand parts can be created, modified, analyzed and optimized with commercial available CAD tools. Generations of a single part starts with a two-dimensional sketch. The user must enter planar dimensions of an object and extrude, revolve or sweep the sketch along a path to create a three-dimensional structure. Additional operations, such as cutting or splitting are used to modify the structure until a designer obtains the final design. The image shows a project, where I used a free 3-D sample data (weldment structure) to analyze the fatigue behavior under different load conditions

Links: