Imaging Concepts

How medical images are acquired, oriented, windowed, compressed, and displayed — from raw DICOM pixel data to the multi-planar reconstructions radiologists read every day.

Anatomical Planes

Medical images are described relative to three standard anatomical planes of the body. Every DICOM instance encodes its orientation using the ImageOrientationPatient (0020,0037) tag — six cosines defining the row and column directions in patient space — so software can reconstruct which plane a slice belongs to without any additional metadata.

AXIALsup → inf
Axial
Transverse / Transaxial
SAGITTALL→R
Sagittal
Lateral
CORONALant → post
Coronal
Frontal

Axial (Transverse / Transaxial)

Horizontal plane dividing the body into superior (top) and inferior (bottom) portions. The most common acquisition plane — CT and most MR sequences acquire axially by default.

Orientation Vector
Normal: Z-axis (0, 0, 1) — pointing head-to-foot
Image orientation:
Row direction: left→right (1,0,0) | Col direction: anterior→posterior (0,1,0)
Clinical Use Cases
  • CT of chest, abdomen, pelvis
  • Brain MRI (all sequences)
  • Orbital, temporal bone, spine CT
Anatomy seenCircular cross-sections of bowel, vessels, organ lobes
Scroll directionSuperior → Inferior (head to foot)
DICOM tagImageOrientationPatient (0020,0037) = 1\0\0\0\1\0

Sagittal (Lateral)

Vertical plane dividing the body into left and right halves. The mid-sagittal (midsagittal) plane passes through the midline. Excellent for spinal cord, knee, shoulder, and brain midline structures.

Orientation Vector
Normal: X-axis (1, 0, 0) — pointing left-to-right
Image orientation:
Row direction: anterior→posterior (0,1,0) | Col direction: superior→inferior (0,0,-1)
Clinical Use Cases
  • Spine MRI (disc, cord, canal)
  • Knee MRI (ACL/PCL, menisci)
  • Shoulder MRI (rotator cuff)
  • Brain corpus callosum, pituitary
Anatomy seenProfile view — skull base, spine, sternum, great vessels
Scroll directionLeft → Right (or Right → Left)
DICOM tagImageOrientationPatient (0020,0037) = 0\1\0\0\0\-1

Coronal (Frontal)

Vertical plane dividing the body into anterior (front) and posterior (back) portions. Ideal for evaluating bilateral symmetry, renal anatomy, hip joints, and brain cortex.

Orientation Vector
Normal: Y-axis (0, 1, 0) — pointing anterior-to-posterior
Image orientation:
Row direction: left→right (1,0,0) | Col direction: superior→inferior (0,0,-1)
Clinical Use Cases
  • Renal / adrenal MRI
  • Hip and pelvis MRI
  • MRCP (bile ducts, pancreatic duct)
  • Chest X-ray equivalent view in CT
  • Brain cortical mapping
Anatomy seenFrontal view — bilateral kidneys, lungs, hip joints side-by-side
Scroll directionAnterior → Posterior (front to back)
DICOM tagImageOrientationPatient (0020,0037) = 1\0\0\0\0\-1
OBLIQUEDouble-Oblique & Curved Planes

Any plane tilted relative to the three standards. Achieved by rotating the ImageOrientationPatient vectors. Double-oblique planes are tilted in two axes simultaneously — essential for structures that don't align with cardinal planes (e.g. aortic valve, rotator cuff).

# How a viewer computes the slice position for oblique MPR:
# Given: source volume voxels in patient coordinates
# Target: arbitrary plane defined by:
#   Origin (x0, y0, z0) = centre of the reformatted slice
#   RowDir    = (r1, r2, r3)  — unit vector along image rows
#   ColDir    = (c1, c2, c3)  — unit vector along image columns
#
# For each output pixel (u, v):
#   patient_coords = origin + u*PixelSpacing*RowDir + v*PixelSpacing*ColDir
#   → trilinear interpolation of voxel at patient_coords

Synchronised Multi-Planar Views

Modern DICOM viewers display all three planes simultaneously in a 2×2 or 1×3 layout, with a 3D localiser or VRT rendering in the fourth quadrant. All views are linked — a radiologist clicks any point in any plane and all other planes immediately reformat to show the same anatomical location.

AXIALTop-down view
CORONALFront view
SAGITTALSide view
3D / VRTVolume render
Standard 2×2 MPR layout. Coloured lines represent the reference plane of the other view. Clicking any point recentres all views.
Crosshair / Reference Lines
A coloured line overlaid on each of the three views indicates the exact position of the other two planes. Moving the crosshair in any view instantly re-centres all views on that anatomical point.
Linked Scrolling
Scrolling through slices in one view automatically scrolls the other views to the corresponding anatomical position using the Image Position Patient (0020,0032) tag.
Stack Position Synchronisation
Multiple series (e.g. pre- and post-contrast CT) can be locked together so scrolling through one series simultaneously scrolls the other to the matching slice position.
Zoom / Pan / Window Sync
Window center/width, zoom level, and pan offset can be synchronised across all linked viewports so adjusting contrast in one view applies to all.
Oblique Reformatting Handles
The reference line in the localiser view has drag handles — rotating or tilting the line live-updates the reformatted oblique slice in the viewer, enabling double-oblique views aligned to anatomy.
DICOM Spatial Localiser
The Localiser (or Scout) image is a low-dose overview scan. Reference lines from the full diagnostic series are projected onto it using the Image Orientation and Position tags, giving radiologists anatomical context.

How Crosshair Position is Computed

# Given: user clicks pixel (px, py) in the Axial viewport
# DICOM tags used:
#   ImagePositionPatient  (0020,0032) = slice origin in mm [x, y, z]
#   ImageOrientationPatient (0020,0037) = [Rx,Ry,Rz, Cx,Cy,Cz]
#   PixelSpacing (0028,0030) = [row_spacing, col_spacing] in mm

patient_x = origin_x + px * col_spacing * Rx + py * row_spacing * Cx
patient_y = origin_y + px * col_spacing * Ry + py * row_spacing * Cy
patient_z = origin_z + px * col_spacing * Rz + py * row_spacing * Cz

# → (patient_x, patient_y, patient_z) in mm in DICOM Patient Coordinate System
# The sagittal viewer scrolls to the slice where ImagePositionPatient.x ≈ patient_x
# The coronal viewer scrolls to the slice where ImagePositionPatient.y ≈ patient_y

MPR & 3D Rendering Modes

Beyond simple slice viewing, modern PACS workstations offer a spectrum of reconstruction modes — from thin MPR slices to full volume renders — each suited to different clinical questions.

MPRMulti-Planar Reconstruction

Reformats a 3D volumetric dataset (acquired in one plane) into arbitrary orthogonal or oblique 2D slices in real time. Requires isotropic or near-isotropic voxels for best quality.

  • Requires a contiguous stack of axial slices with no gap
  • Voxel size should ideally be ≤1mm in all directions (isotropic)
  • The three views (axial, sagittal, coronal) are always in sync — moving a crosshair in one updates the slice position in all others
  • Oblique MPR: rotate the reformatting plane to any angle (e.g. aligned to a vessel or joint)
  • Curved MPR: the reformatting plane follows a user-drawn curved path (e.g. along the aorta or dental arch)
MIPMaximum Intensity Projection

Projects the maximum voxel value encountered along each ray through the volume onto the 2D image. Dense structures (contrast-enhanced vessels, bones, calcifications) appear bright.

  • Standard tool for CT angiography and MR angiography
  • Thin-slab MIP (5–30 mm) preserves depth cues better than full-volume MIP
  • Calcifications and bones can obscure vessels — bone subtraction MIP solves this
  • Time-resolved MIP (4D MIP) shows contrast bolus timing
MinIPMinimum Intensity Projection

Projects the minimum voxel value along each ray. Air-filled structures appear dark and stand out. Used for airways and MRCP.

  • Tracheobronchial tree visualisation (virtual bronchoscopy companion)
  • MRCP: bile ducts and pancreatic duct appear bright (high T2) against low-signal background
  • Emphysema quantification
VRTVolume Rendering Technique

Assigns opacity and color transfer functions to every voxel value to produce a semi-transparent 3D rendering. Used for surgical planning, patient communication, and complex fracture assessment.

  • Transfer function maps HU values to (color, opacity) pairs
  • Lighting model (ambient, diffuse, specular) adds 3D depth perception
  • Cinematic Rendering is a photorealistic variant using physically-based global illumination
  • GPU-accelerated in modern PACS — real-time rotation at 60 fps
SSDShaded Surface Display

Extracts a surface at a fixed HU threshold and renders it with Gouraud shading. Predecessor to VRT — simpler but less flexible.

  • Threshold typically 150–200 HU for bone
  • Fast to compute but misses structures with similar density
  • Largely replaced by VRT in clinical practice

Windowing & Display LUT

Raw DICOM pixel values in CT span −1000 to +3000+ HU — far more than the 256 grey levels a monitor can display. Windowing maps a chosen range of HU values to the full 0–255 display scale, discarding values outside the window. The two parameters are Window Center (WC) and Window Width (WW).

Window Formula
# Linear windowing formula:
# WC = Window Center (0028,1050)
# WW = Window Width  (0028,1051)

lo = WC - WW / 2
hi = WC + WW / 2

display_value =
  if pixel_value <= lo → 0   (black)
  if pixel_value >= hi → 255 (white)
  else → (pixel_value - lo) / WW × 255

# After Rescale (CT modality LUT):
HU = pixel_value × RescaleSlope + RescaleIntercept
# RescaleIntercept (0028,1052) is typically -1024 for CT
# RescaleSlope     (0028,1053) is typically 1
Sigmoid / Non-linear LUT

The DICOM standard also supports non-linear LUTs via the VOI LUT Sequence (0028,3010). Sigmoid mapping preserves more contrast at both ends of the window, reducing clipping of very bright or very dark structures.

# Sigmoid windowing (DICOM PS 3.3 C.7.6.3.1.5):
# e = (pixel_value - WC + 0.5) / (WW + 1)
# display = 255 / (1 + e^(-4 × e / 1))

Clinical Window Presets

PresetWC (HU)WW (HU)RangePurpose
Brain4080080Grey/white matter differentiation
Subdural75200-25175Haemorrhage detection
Stroke3282836Subtle early ischaemia
Bone4001800-5001300Cortical and trabecular detail
Lung-6001500-1350150Pulmonary parenchyma, airways
Mediastinum40400-160240Vessels, lymph nodes, soft tissue
Liver60160-20140Hepatic lesion detection
Soft Tissue50400-150250Muscles, fat planes, organs
Abdomen60400-140260General abdominal survey
Spine50200-50150Disc and cord detail
Angio3006000600Contrast-enhanced vessels
PET SUV3606Standardised uptake value scale

Hounsfield Unit (HU) Reference

The Hounsfield scale is a linear transformation of the linear attenuation coefficient of X-rays. Water = 0 HU, air = −1000 HU by definition. Each tissue has a characteristic HU range that allows identification on CT.

Air
-1000 HU
Lung (parenchyma)
-900 to -500 HU
Fat
-200 to -50 HU
Water
0 HU
Soft tissue
20 to 80 HU
Blood (unclotted)
30 to 45 HU
Haematoma
50 to 90 HU
Contrast-enhanced
100 to 400 HU
Bone (cancellous)
400 to 700 HU
Cortical bone
700 to 3000 HU
−1000 HU (Air)0 HU (Water)+3000 HU

Pixel Data Encoding

Pixel data lives in tag (7FE0,0010). How those bytes are interpreted depends on several companion tags.

(0028,0010)
Rows
Number of rows (height) in the image matrix.
(0028,0011)
Columns
Number of columns (width) in the image matrix.
(0028,0100)
Bits Allocated
Memory allocated per sample: 8, 16, or 32 bits.
(0028,0101)
Bits Stored
Actual significant bits ≤ Bits Allocated. CT uses 12 or 16 bits stored in 16 allocated.
(0028,0102)
High Bit
Index of the most significant bit (= Bits Stored − 1 for unsigned).
(0028,0103)
Pixel Representation
0 = unsigned integer, 1 = two's complement signed (CT uses signed for negative HU).
(0028,0002)
Samples per Pixel
1 for grayscale (CT, MR), 3 for colour (US, RGB).
(0028,0004)
Photometric Interpretation
MONOCHROME1/2, RGB, YBR_FULL, PALETTE COLOR.

Photometric Interpretations

ValueMeaningModalities
MONOCHROME1Grayscale — minimum value is WHITE (used in X-ray). Pixel value 0 = white.CR, DX, MG
MONOCHROME2Grayscale — minimum value is BLACK. Most common. Pixel value 0 = black.CT, MR, PT, NM
PALETTE COLOREach pixel value indexes into a colour LUT (Red, Green, Blue lookup tables embedded in tags 0028,1101–1103).NM, US (colour maps)
RGB3 samples per pixel in R, G, B order. 24-bit colour.US, SC, pathology WSI
YBR_FULLLuminance-chrominance. Y = luma, Cb/Cr = colour difference. Better JPEG compression.US (after JPEG compression)
YBR_FULL_4224:2:2 chroma subsampled YBR. Halves chrominance bandwidth.US video
YBR_ICTIrreversible Colour Transform — used with JPEG 2000 lossy.After JPEG 2000 compression
YBR_RCTReversible Colour Transform — used with JPEG 2000 lossless.After JPEG 2000 lossless

Pixel Data Encapsulation (Compressed)

# Uncompressed: (7FE0,0010) OW — raw bytes, length = Rows × Columns × SamplesPerPixel × (BitsAllocated/8)
# Example: 512×512 CT, 16-bit → 512 × 512 × 1 × 2 = 524,288 bytes

# Compressed (encapsulated): VR = OB, length = 0xFFFFFFFF (undefined)
# Format: Item sequence
  (FFFE,E000) Item  length=0  ← Basic Offset Table (may be empty)
  (FFFE,E000) Item  length=N  ← JPEG / JPEG 2000 / RLE bitstream for frame 1
  (FFFE,E000) Item  length=M  ← frame 2 ...
  (FFFE,E0DD) Sequence Delimiter

Transfer Syntaxes & Compression

A Transfer Syntax UID (stored in tag 0002,0010) defines two things: the byte ordering of non-pixel data (little vs big endian) and the compression applied to pixel data. Every DICOM association negotiates a mutually supported Transfer Syntax before data flows.

UIDNameCompressionNotes
1.2.840.10008.1.2Implicit VR Little EndianNoneLegacy default. Being deprecated.
1.2.840.10008.1.2.1Explicit VR Little EndianNoneMost widely used. Recommended for new implementations.
1.2.840.10008.1.2.2Explicit VR Big EndianNoneRetired in DICOM 2016.
1.2.840.10008.1.2.4.50JPEG Baseline (Process 1)Lossy JPEG8-bit. Acceptable for photographic images, not CT/MR.
1.2.840.10008.1.2.4.51JPEG Extended (Process 2 & 4)Lossy JPEG12-bit support.
1.2.840.10008.1.2.4.57JPEG Lossless (Process 14)Lossless JPEGFull fidelity preservation.
1.2.840.10008.1.2.4.70JPEG Lossless (Selection Value 1)Lossless JPEGMost common lossless JPEG in DICOM.
1.2.840.10008.1.2.4.80JPEG-LS LosslessLosslessBetter compression than JPEG Lossless.
1.2.840.10008.1.2.4.81JPEG-LS Near-losslessNear-losslessConfigurable max error.
1.2.840.10008.1.2.4.90JPEG 2000 LosslessLosslessWavelet-based. Supports ROI coding.
1.2.840.10008.1.2.4.91JPEG 2000 (Lossy or Lossless)Lossy/LosslessProgressive decode. Good for large images.
1.2.840.10008.1.2.5RLE LosslessLossless RLERun-length encoding. Rarely used clinically.
1.2.840.10008.1.2.4.100MPEG2 MP@MLLossy videoVideo sequences (echocardiography, endoscopy).
1.2.840.10008.1.2.4.102MPEG-4 AVC/H.264Lossy videoHigher quality video, smaller file.
1.2.840.10008.1.2.4.202High-Throughput JPEG 2000 (HTJ2K) LosslessLosslessNear-lossless decode at full speed. Future standard.

Multiframe DICOM & Enhanced IODs

Traditional DICOM stores one slice per file (Classic IOD). Enhanced DICOM (introduced with PS 3.3 2003) stores all frames of a series in a single file, dramatically reducing the number of files and enabling richer per-frame metadata via Functional Groups.

Classic (1 file = 1 slice)
  • CT series of 500 slices → 500 .dcm files
  • Each file: ImagePositionPatient, ImageOrientationPatient
  • Simple — universally supported
  • High file count strains filesystems and DICOM SCPs
Enhanced (1 file = entire series)
  • CT series of 500 slices → 1 .dcm file (Enhanced CT IOD)
  • Per-frame geometry in Per-Frame Functional Group Sequence (5200,9230)
  • Mandatory for 4D, cardiac CT, dynamic MR, spectroscopy
  • Requires enhanced-capable PACS / viewer

Key Multiframe Tags

TagNameDescription
(0028,0008)Number of FramesTotal number of frames in a multiframe image.
(0028,0009)Frame Increment PointerTag that describes how frames differ (e.g. time, slice position).
(0018,0088)Spacing Between SlicesDistance between slice centres in mm.
(0020,0013)Instance NumberPosition of this instance within its series.
(5200,9229)Shared Functional Group SequenceAttributes common to all frames (Enhanced DICOM).
(5200,9230)Per-Frame Functional Group SequencePer-frame geometry, timing, and exposure (Enhanced DICOM).
(0020,9056)Stack IDGroups frames that form a spatial stack.
(0020,9057)In-Stack Position NumberFrame's position within its stack.
(0020,9128)Temporal Position IdentifierIdentifies the time point of a dynamic/DCE acquisition.