About me

Melbourne, Australia

Bio: Electrical & Computer Engineer with an MSc in Telecommunications and a PhD in Biomedical Engineering. Strong knowledge and experience in computational algorithm development, high-performance computing, multi-physics simulations, big-data analysis, and medical imaging/therapy modalities. Extensive experience in collaborating with medical & technical personnel, researchers, and industrial partners in large international projects such as, safety evaluation of medical devices, treatment planning & optimization of therapeutic modalities, and development of next-generation simulation platforms.

View complete profile


12 thoughts on “About me

  1. I have just found your excellent link about python and dicom. We are trying to extract a poly mesh from a dicom file created by a 3D ultrasound sonograph. Our aim is to use our colleges 3D printers to make a physical model of a fetus (12 to 16 weeks old). Do you have any experience of extracting a mesh from an ultrasound scan?
    Malcolm Kesson
    Dept. Visual Effects
    Savannah College of Art and Design


    • Hey Malcolm, while I haven’t done such a surface extraction before I doubt it would be too hard πŸ™‚

      That being said, you’re gonna have a lot of noise in your image data (specks, holes, imaging artifacts) which you would likely want to ‘clean’ prior to extracting your surface so I would suggest a basic smoothing and segmentation with SimpleITK and then surface extraction with VTK. I take you’ve read my corresponding posts on those topics?

      Are we talking several planar cross-sections of the fetus or the kind of dataset used to extract fetus models in a 3D B-mode scan?


  2. Hi!

    I just wanted to thank you for your excellent work! I am a MSc student in Biomedical Engineering and your posts are extremely helpful ant time savers, since I am focusing my work on volume rendering and surface extraction from head CT scans.

    Thank you very much!


  3. Great posts about SimpleITK for processing DICOMs.

    When you do brain segmentation between grey and white matter, you specify that you’re limiting yourself to just 2D segmentation within a given slice because the 3D segmentation is more computationally expensive.

    If I wanted to perform the 3D segmentation, would I just simply pass the entire SimpleITK object in and use a 3D point for the seed? Is there any other trick or does SimpleITK know how to handle the operations for 3D?



    • Hey Tony, you’re sorta posting this on the wrong page mate πŸ™‚

      But, to answer your question, yeah doing the operations in 3D is entirely straightforward. You may have noticed that we explicitly sliced the originally 3D image to a 2D one in the post and all you gotta do is not do that πŸ™‚


  4. Hi !
    Thanks a lot for posting about Python and DICOM, which gives me a knowledge about it. Currently I’m working on my project (BRAIN TUMOR DETECTION USING MRI AND MACHINE LEARNING TECHNIQUES) in this i’m using DICOM MRI BRAIN Images. My project goes under following steps: 1. Preprocessing 2. Segementation (i thought to apply R-CNN technique) 3. Classification ( thought to apply CNN technique)
    I’m trying to do it as per your posts but it doesn’t work for it.
    Can you please share the code of the problem which I asked if you have (with any ML algorithms)?
    mail ID: sai4vanam@gmail.com

    Thanks in Advance ! πŸ™‚


  5. Extra good wonderful are not enought wolds to describe what you are sharing in your posts.
    Thanks a lot
    I dont know if i m in the right place for asking you some help please forgive me if not
    I m dentist from Morocco’ and i m working on a blender addon to load dcm cbct data to blender using vtk library
    I can read dcm data using vtkImageDicomReader convert it to numpy.array and plot 2D orthogonal slices from np.array slices.
    My first problem is : computing time performance :
    Everytime a change the slices i should run all script trought the entire pipeline : reader –> image data –> point data –> array –> np.array –> slices -> pyplot
    I foud a partial solution for now : save np.array in a .npy file and load it in a 2nd script–> slice–> pyplot
    But my goal is to make diagonal slices which in my modest opinion i could not achieve trought np.array slicing , i found some articles talking about vtkReslice function wich lead to get me to the long pipeline above.
    Do you think i should in some pipline level save a vtk object and load it in a 2nd script for vtk reslice update?
    Yet i m not shure how could i do it ?
    Could you help me please i m stuck in this project no progress for 2 months untill i read your posts…thank you man.


    • Hi there! Thanks for the kind words!

      As far as performance goes I’m not sure there’s much you can do, the two slowest bits are gonna be (a) reading from disk so a good SSD would speed that right up and (b) rendering out so maybe pyplot isn’t the best tool for the job.
      Now I haven’t worked much with Blender but since it has VTK couldn’t you use that to plot out the slices? VTK is C++ and bound to be faster than PyPlot.

      As for diagonal slices you certainly can achieve that through NumPy and interpolation (eg through SciPy) but as you have probably figured out it’s not the best tool for the job. vtkImageReslice (https://vtk.org/doc/nightly/html/classvtkImageReslice.html#details) is gonna be faster for sure.

      So the questions you should be asking are:
      1) Can I remove Python modules (numpy, scipy, etc) from the equation and work exclusively with VTK (through Python of course)?
      2) Do you need to write the image-data out in order to use the 2nd script? Can you not keep them in memory?

      As for using vtkImageReslice the VTK examples page (https://lorensen.github.io/VTKExamples/site/Cxx/ImageData/ImageReslice/) is your friend. Always make sure to check the C++ examples and translate those to Python as they’re far more examples in C++ than other languages.

      Hope this helps a little!



Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s