DCDISP(1)

NAME
dcdisp - ACR/NEMA DICOM PS3 ... Display file on X window

SYNOPSIS

dcdisp [ -v|verbose ] [ -h|help ] [ -showwithhelp ] [ -noattributes ] [ -nodisplayloop ] [ -windowwidth n -windowlevel n ] [ -ignorewindow ] [ -invertedgray ] [ -[signed|unsigned] ] [ -ignorepadvalue ] [ -showoverlays ] [ -writeimage >pgmfile ]

DESCRIPTION

dcdisp reads the named dicom input file and displays its contents, using the barest minimum of X Windows features. Does its best to guess missing image pixel modules attributes in order to support older ACR/NEMA or SPI images.

Once displayed, for those photometric interpretations supporting window level and width (ie. 9-16 bit monochrome), the left/right/up/down arrow keys, or the dragging the mouse with the left button depressed, can be used to alter the window width and level. The unit of change is 1 normally, 10 if the shift key is simultaneously depressed, 100 if the control key is simultaneously depressed, and 1000 if both are depressed.

Typing q, Q, x, X, Return or Escape quits.

OPTIONS
The attribute and verbose output goes to standard error.

The basic switches are described in dcintro(1). Options specific to this program are:

-h|-help
    Display help information on standard error, without displaying image.

-showwithhelp
    Display help information on standard error, as well as displaying image (useful when called as an external application from a browser)

-noattributes
    Suppress the default description of important image attributes.

-nodisplayloop
    Parse the input, map the display, but don't hang around, automatically exits, useful only for automated testing.

-windowwidth  n -windowlevel  n
    Use the specified values, rather than trying to guess them from the image statistics or using the attributes in the dataset. Values are specified in so-called displayed values (ie. after rescaling with rescale intercept and rescale slope and taking into account the unsigned or signed pixel representation) rather than stored values.

-ignorewindow
    Ignore any window level/width attributes in the image object and instead try to guess them from the image statistics. Useful if the values in the object are wrong or screwy. Implied if window level and width are explicitly specified on the command line.

-invertedgray
    Invert the image grayscale.

-[signed|unsigned]
    Force the pixel representation to be signed or unsigned.

-ignorepadvalue
    Ignore the Pixel Padding Value, i.e. don't exclude it when computing image statistics for automatic window center and width.

-showoverlays
    Display any overlays present in the image object by default (may be toggled on and off with the "o" or "O" keys. regardless of whether or not this command line option is specified).

-writeimage
    On exit, write an 8 bit version of the displayed image with the last window level/width used, as a raw 8 bit PGM file to stdout. The range of grayscale used in the 8 bits will depend on the colormap used to display the image, and may be less than expected on wierd hardware or if some other application has been hogging the colormap. Color images will be written as 8 bit index values, not RGB PPM files. Multiframe images will be really long and thin.

ENVIRONMENT

EXAMPLES

% dcdisp test.dc3
Read ...
 Rows = 512
 Columns = 512
 NumberOfFrames = 0
 PhotometricInterpretation = MONOCHROME2
 SamplesPerPixel = 1
 BitsAllocated = 16
 BitsStored = 16
 HighBit = 15
 PixelRepresentation = 1
 PlanarConfiguration = 0x0
 RescaleIntercept = 0
 RescaleSlope = 1
 PixelData Value Length = 0x80000
Using ...
 Rows = 512
 Columns = 512
 NumberOfFrames = 1
 PhotometricInterpretation = MONOCHROME2
 SamplesPerPixel = 1
 BitsAllocated = 16
 BitsStored = 16
 HighBit = 15
 PixelRepresentation = 1
 PlanarConfiguration = 0x0
 RescaleIntercept = 0
 RescaleSlope = 1

FILES

SEE ALSO
dcintro(1)

AUTHOR
Copyright (c) 1993-2022, David A. Clunie DBA PixelMed Publishing. All rights reserved.

BUGS
Only handles 8-16 bit monochrome, palette color, and rgb photometric interpretations (with color-by-pixel planar configuration) only.

Multiple frames are handled in the sense that one big (long) image is built, which may exceed available memory, and is certainly hard to pull around the screen.

If necessary resorts to a private color map which makes for terrible flashing. Even when using the default color map, if invoked twice, the same colors are not shared.

Window level/width support involves remapping the entire pixel array which is a little (sic) slow. Palette animation for previewing is not yet implemented.

Overlay display is restricted to the (60xx,3000) group, and may fail under various circumstances.

VOI LUT currently ignores Rescale Slope/Intercept :(.