CLI Tool
The dcmfx CLI tool makes the capabilities of DCMfx available on the command line.
Installation
Select your platform below to see its installation instructions.
Windows
Download the latest version of dcmfx.exe for Windows here.
macOS
Install Homebrew, then install DCMfx using the provided tap:
brew tap dcmfx/tap
brew install dcmfxLinux
For Ubuntu, Debian, Linux Mint, and other Debian-based distributions, an APT repository is provided:
shecho "deb [trusted=yes] https://dcmfx.github.io/apt-repository stable main" | sudo tee /etc/apt/sources.list.d/dcmfx.list sudo apt update sudo apt install dcmfx
For Red Hat, Fedora, Amazon Linux, and other RPM-based distributions, a YUM repository is provided:
shecho -e "[dcmfx]\nname=DCMfx\nbaseurl=http://dcmfx.github.io/yum-repository\nenabled=1\ngpgcheck=0" | sudo tee /etc/yum.repos.d/dcmfx.repo sudo yum makecache sudo yum install dcmfx
For Arch Linux, a package is provided in the Arch User Repository (AUR). Install it with your preferred AUR helper (e.g. Yay):
shyay -S dcmfx
- Alternatively, download the latest binary or package here and install it manually.
Usage
After installation, run dcmfx --help to see the available commands:
$ dcmfx --help
DCMfx is a CLI tool for working with DICOM and DICOM JSON
Usage: dcmfx [OPTIONS] <COMMAND>
Commands:
get-pixel-data Extracts pixel data from DICOM P10 files, writing it to image
and video files
modify Modifies the content of DICOM P10 files
print Prints the content of DICOM P10 files
json-to-dcm Converts DICOM JSON files to DICOM P10 files
dcm-to-json Converts DICOM P10 files to DICOM JSON files
list Lists DICOM P10 files in one or more directories
help Print this message or the help of the given subcommand(s)
Options:
--print-stats Write timing and memory stats to stderr on exit
-h, --help Print help
-V, --version Print versionExamples
INFO
Input and output filenames can be paths to local files, "-" for stdin/stdout, or an object URL on Amazon S3 (s3://), Google Cloud Storage (gs://), or Azure Blob Storage (az://).
Print a DICOM P10 file's data set to stdout:
shdcmfx print input.dcmConvert a DICOM P10 file to a DICOM JSON file:
shdcmfx dcm-to-json input.dcmTo pretty-print the DICOM JSON directly to stdout:
shdcmfx dcm-to-json input.dcm --pretty --output-filename -Convert a DICOM JSON file to a DICOM P10 file:
shdcmfx json-to-dcm input.jsonExtract pixel data from a DICOM P10 file to one image file per frame:
shdcmfx get-pixel-data input.dcmEach frame of pixel data can be converted to PNG, 16-bit PNG, or JPEG images:
shdcmfx get-pixel-data input.dcm --format png dcmfx get-pixel-data input.dcm --format png16 dcmfx get-pixel-data input.dcm --format jpg --jpeg-quality 90For monochrome pixel data, a VOI window center and width and/or a well-known color palette can be specified:
shdcmfx get-pixel-data input.dcm --format png --voi-window 500 2000 \ --color-palette hot-ironThe images can be rotated or flipped by specifying a transform:
shdcmfx get-pixel-data input.dcm --format jpg --transform rotate90 dcmfx get-pixel-data input.dcm --format jpg --transform flip-verticalExtract pixel data from a DICOM P10 file to an MP4 video:
shdcmfx get-pixel-data input.dcm --format mp4Additional options are available to specify the codec, video quality, encoder preset, pixel format, frame rate override, and so on.
Rewrite a DICOM P10 file. This will convert the specific character set to UTF-8, change sequences and items to undefined length, and correct invalid files where possible:
shdcmfx modify input.dcm --output-filename output.dcmModify a DICOM P10 file's transfer syntax:
shdcmfx modify input.dcm --output-filename output.dcm \ --transfer-syntax explicit-vr-little-endianPixel data will be automatically transcoded as appropriate. See the output of
dcmfx modify --helpfor details of supported transfer syntaxes.Anonymize a DICOM P10 file in-place by removing all identifying data elements and private data elements:
shdcmfx modify input.dcm --in-place --anonymizeNote that this does not remove any identifying information baked into pixel data or other binary data elements, however such pixel data may be able to be removed using the
--cropargument.Remove the top-level '(7FE0,0010) Pixel Data' data element and all private data elements from a DICOM P10 file:
shdcmfx modify input.dcm --in-place --delete 7FE00010 --delete-privateMultiple data elements can be deleted by specifying --delete multiple times:
shdcmfx modify input.dcm --in-place --delete 00100010 --delete 00100030Print a list of all DICOM files under the current directory:
shdcmfx list .Print a list of all DICOM files under the current directory as JSON Lines that includes the value of each DICOM's '(0008,0018) SOP Instance UID' data element, followed by a summary of their transfer syntaxes and SOP classes:
shdcmfx list . --format json-lines --select 00080018 --summarize
