Digital Healthcare, Augmented Reality, Mobile Apps and more! Andreas Jakl is a professor @ St. Pölten University of Applied Sciences, Microsoft MVP for Windows Development and Amazon AWS Educate Cloud Ambassador.
In the previous blog posts, we’ve used a simple grayscale threshold to define the model surface for visualizing an MRI / CT / Ultrasound in 3D. In many cases, you need to have more control over the 3D model generation, e.g., to only visualize the brain, a tumor, or a specific part of the scan.
In this blog post, I’ll demonstrate how to segment the brain of an MRT image; but the same method can be used for any segmentation. For example, you can also build a model of the skull based on a CT by following the steps below.
So far, we’ve created a volume rendering of an MRI / CT / Ultrasound scan. This is based on Voxels. For 3D printing and highly performant visualization in AR / VR scenarios, we need to create and export a polygon-based model. For the first step, we will use the Grayscale Model Maker and export the 3D Model as .stl to further prepare the model.
To create a 3D model, we have two main options in 3D Slicer:
Grayscale Model Maker: directly uses grayscale values from the image data. A threshold defines the surfaces. The model maker also takes care of smoothing the surfaces and reducing the polygon count.
Model Maker: this requires labels or discrete data to build a 3D model, meaning you have to segment the image data.
As a first step, we will use the Grayscale Model Maker, and later explore the more advanced options offered by segmentation and the Model Maker.
After importing the MRI / CT / Ultrasound data into 3D Slicer in part 1, we’re ready for the first 3D visualization inside the medical software through 3D Volume Rendering. This is a major step to export the 3D model to Unity for visualization through Google ARCore or Microsoft HoloLens, or for 3D printing.
Slices in 3D View
After optimizing brightness and contrast of the image data, the easiest way of showing the data in 3D is to visualize the three visible slices (planes: axial / top / red; sagittal / side / yellow; coronal / frontal / green view) in the 3D view. This gives a good overview of the position and the relation of the slices to each other.
Some of the best showcases of Mixed Reality / VR / AR include 3D visualizations of MRI (magnetic resonance imaging), CT (computer tomography) or ultrasound scans. 3D brings tremendous advantages for analyzing the scanned images compared to only viewing 2D slices. Additionally, a good visualization brings value to patients who can gain a better understanding if they can easily explore their own body.
As part of the 3D information visualization lecture at the FH St. Pölten, I’m giving an overview of the process of converting an MRI / CT / ultrasound scan into a hologram that you can view on the Microsoft HoloLens or with Google ARCore. This blog post series explains the hands-on parts, so that you can easily re-create the same results using freely available tools.
The Windows 10 Fall Creators Update brings an impressive array of new features for developers. At the Windows Developer Day, the Microsoft engineering teams will introduce the latest news for developers.
One of the most exciting is Windows Mixed Reality as a feature of the base operating system, bringing Virtual Reality to the masses with reasonably priced VR headsets. Additional topics include Xamarin, .NET Standard 2.0 and the XBox Live Creators Program.
Lately, the underlying platforms have evolved, and now the library has adapted. The main NFC library has now been ported to .NET Standard, which is a common baseline that makes the library compatible to even more different platforms. The new version 4.1.0 is now available under the open source LGPL license on GitHub, as well as on NuGet.
In addition to running on Windows, the library now fully supports all platforms that support .NET Core (like Linux and Mac), as well as Xamarin for Android and iOS. This makes it significantly easier to provide NFC functionality across different platforms – especially now that the iPhone also finally supports the open NDEF standard within NFC through the Apple Core NFC framework.
A few days ago, Microsoft has released .NET Standard 2.0, which is the new dreams-come-true platform for libraries. Additionally, Portable Class Libraries (PCL) have since also been deprecated. Therefore, it’s about time to port my existing libraries.
Setting up a Raspberry Pi with Windows 10 IoT Core turned out to be more difficult than expected. In the end, there was a successful workaround – here’s how to get it running (even on non-supported SD cards).
At the Microsoft Build Tour in Vienna, I had the opportunity to present an enhanced version of the Bluetooth Beacon talk. With the Windows 10 Creators Update, Microsoft released a massive update to the Bluetooth LE capabilities of the OS. This finally allows developers to use the full potential of modern Bluetooth scenarios, including sensors, wearables and beacons.
At Build 2017, Microsoft released three new sessions explaining the capabilities of the new APIs:
Even though the sessions reference example code and blog posts that should have been released together with the session recordings, still none of that is available so far. That gave me the opportunity to explore the new APIs based on the short documentation overview page and the videos.