Skip to content

Visual examples

Hal Clark edited this page Mar 13, 2024 · 11 revisions

This page documents the functionality of DICOMautomaton through visual examples. This page also helps track how functionality evolves over time, and what functionality currently is (or is not) available.

Basic functionality (6bf6c9d), October 8, 2021

Main view with images, meshes, and plots active:

SDL viewer

Contouring and image adjustment options:

SDL viewer

Script writing, compiling, and execution:

SDL viewer

Some operations to be added into scripts or run via command line:

SDL viewer

Scripts are plain text files!

SDL viewer

Drawing / image editing interface:

SDL viewer

Real-time plotting, row- and column-profiles at the current mouse position:

SDL viewer

Mesh viewing, wireframe:

SDL viewer

Mesh viewing, solid:

SDL viewer

Terminal viewer, October 8, 2021

The terminal viewer can provide rudimentary visualization in headless scenarios, including over ssh or on systems not without OpenGL capabilities.

Using ansi and unicode:

Terminal viewer

Without ansi support and using ASCII (great for ssh viewing in linux built-in terminal!):

Terminal viewer

Handles anisotropic pixel width/height, more-or-less displaying the correct aspect ratio

Terminal viewer

Same as above, but with Gaussian noise added using PerturbPixels operation:

Terminal viewer

Web interface, October 8, 2021

The web interface exposes many of the operations available on the command line and interactive viewers, but on a remote server. Operations must be performed sequentially in a modal fashion.

Web interface

Web interface

Web interface

Android/Termux, October 8, 2021

DICOMautomaton CI binaries can be run on an Android phone (armv7) via Termux! It also works on similar emulated shells and the Android shell too. Static continuous integration builds are powered by musl libc and generally run without issues, though not all functionality is included.

Terminal viewer

Frame rate stress tests, October 18, 2021

A stress test of the SDL-based viewer with a mesh composed of 19 million triangles maintained a rate of 52 fps. The test mesh was extracted from an image array containing random noise using marching cubes. Exporting the mesh file in PLY format makes a 700 MB file. I couldn't find another program that would even open it. (EDIT: Meshlab can also open it, but only gets 1.5 fps!)

Polygon stress test

Animation example, October 19, 2021

Here are animation examples showing the image auto-advance mechanism in the SDL viewer:

Animation 1

Animation 2

Deformation field visualization, October 29, 2021

Inspecting a spatial deformable registration vector field that was converted to both a mesh representation and an image array:

SDL viewer

Constructive solid geometry (06112d7d), December 3, 2021

Constructive-solid geometry using signed-distance functions. Basic shapes, Boolean operations, and some 'finishing' effects like edge rounding (erosion) are present.

SDL viewer

Animation example, March 13, 2024

Another example showing how the SDL viewer auto-advance feature can be used for animation (MR Angiography):

Animation