MIVIEW(1)

πŸ‘‘ MIVIEW(1) β€” User Commands πŸ‘‘

✨ NAME ✨

miview β€” Viewer for medical image files πŸ’–


🌸 SYNOPSIS 🌸

miview [ options ] <image-file>

πŸ’– DESCRIPTION πŸ’–

okay bestie, miview is literally the Viewer for medical image files 🫢

File formats are automatically identified by their file extension. iykyk β€” it just knows from the extension, no cap ✨

This program is part of odin 2.0.5 with configuration using_gcc debug gui(:5) standalone dl posix_threads libz gsl nifti vtk dicom png ismrmrd gdb. periodt πŸ’…

🫢 Global options: 🫢

  • -blowup β€” Enlarge display size by this factor (0=automatic) (default=0) ✨
  • -bright β€” Relative brightness of display (default=0.0) πŸ’‘
  • -color β€” Use color map to display values 🌈
  • -contrast β€” Relative contrast of display (default=0.0) 🎚️
  • -dump β€” Dump all images as graphic files and exit, use the given filename postfix to specify the format πŸ“Έ
  • -legend β€” Export legend to this file, use the given filename postfix to specify the format 🏷️
  • -low β€” Lower windowing boundary: This value will appear black in display πŸ–€
  • -map β€” Load overlay map (colored voxels superimposed on image) from this file πŸ—ΊοΈ
  • -maplegend β€” Export map legend as bitmap to this file πŸ–ΌοΈ
  • -maplow β€” Lower windowing boundary for overlay map (default=0.0) πŸ“‰
  • -maprect β€” Relative size of rectangles which represent voxels of the overlay map (default=0.60) πŸ”²
  • -mapupp β€” Upper windowing boundary for overlay map (default=0.0) πŸ“ˆ
  • -noscale β€” Disable scale in 2D/3D display 🚫
  • -rec β€” Record clicked coordinates and values into this file πŸ–±οΈ
  • -upp β€” Upper windowing boundary: This value will appear white in display 🀍
  • -val β€” Save value of ROI/point selection to this file πŸ’Ύ
  • -v <loglevel> or <component:loglevel> β€” for debugging/tracing all components or a single component, respectively. Possible values for loglevel are: 0(noLog), 1(errorLog), 2(warningLog), 3(infoLog), 4(significantDebug), 5(normalDebug), 6(verboseDebug). πŸ›

🧠 fMRI options (Give at least -design and -fmri to activate) 🧠

  • -bonferr β€” Use Bonferroni correction 🎯
  • -corr β€” Error probability threshold for correlation (default=0.050) πŸ“Š
  • -davg β€” Smooth the design function using a moving average filter of width N (TR) (default=0) 〰️
  • -design β€” Load fMRI design from this file (comma or space separated) πŸ“
  • -fmask β€” fMRI mask file 🎭
  • -fmri β€” Load fMRI data from this file 🧬
  • -hrf β€” Convolve design function by hemodynamic response function prior to correlation (see Glover NeuroImage 9, 416-429) 🧠
  • -neighb β€” Minimum next neighbours with significant activation (default=1) πŸ‘―
  • -scourse β€” Dump relative fMRI signal change time course to this file πŸ“‰
  • -smap β€” Dump map of relative fMRI signal change to this file πŸ—ΊοΈ
  • -zmap β€” Dump z-score map to this file πŸ“ˆ
  • -zscore β€” z-Score threshold for correlation (default=0.0) πŸ“

πŸŽ€ ROIs options (Use -rois to activate) πŸŽ€

  • -rois β€” Activate ROIs mode πŸ‘‘

πŸ“‚ File read options πŸ“‚

  • -aa β€” azimuthal rotation angle [deg] (default=0.0) πŸ”„
  • -ah β€” height rotation angle [deg] (default=0.0) ↕️
  • -ai β€” inplane rotation angle [deg] (default=0.0) πŸ”ƒ
  • -date β€” Date of scan [yyyymmdd] (default=20211015) πŸ“…
  • -fp β€” FOV in phase direction [mm] (default=220.0) πŸ“
  • -fr β€” FOV in read direction [mm] (default=220.0) πŸ“
  • -fs β€” FOV in slice direction [mm] (default=5.0) πŸ“
  • -nr β€” Number of consecutive measurements (default=1) πŸ”’
  • -nx β€” Number of points in read direction (default=1) ➑️
  • -ny β€” Number of points in phase direction (default=1) ⬆️
  • -nz β€” Number of points in slice direction (default=1) ⬇️
  • -pbirth β€” Patients date of birth [yyyymmdd] (default=00000000) πŸŽ‚
  • -pid β€” Unique patient identifier (default=Unknown) πŸ†”
  • -pname β€” Full patient name (default=Unknown) πŸ“›
  • -psex β€” Patients sex (options=M F O , default=O) ⚧️
  • -psize β€” Patients size/height [mm] (default=2000.0) πŸ“
  • -pweight β€” Patients weight [kg] (default=50.0) βš–οΈ
  • -rcname β€” Name of receive coil (default=Unknown) πŸ“‘
  • -scient β€” Scientist Name (default=Unknown) πŸ§‘β€πŸ”¬
  • -sd β€” Inter-slice distance (from center to center) [mm] (default=10.0) πŸ“
  • -serd β€” Series Description (default=Unknown) πŸ“
  • -serno β€” Series Number (default=1) πŸ”’
  • -st β€” Slice thickness [mm] (default=5.0) πŸ“
  • -stud β€” Study Description (default=Unknown) πŸ“š
  • -tcname β€” Name of transmit coil (default=Unknown) πŸ“‘
  • -te β€” Time-to-echo of the sequence [ms] (default=80.0) ⏱️
  • -time β€” Time of scan [hhmmss] (default=104558) πŸ•’
  • -tr β€” Time between consecutive excitations [ms] (default=1000.0) ⏱️
  • -cplx β€” Treat data as complex and extract the given component (options=none abs pha real imag , default=none) πŸŒ€
  • -ds β€” Dataset index to extract if multiple datasets are read πŸ“¦
  • -filter β€” Read only those datasets which protocol parameter 'key' contains the string 'value' (given in the format 'key=value') πŸ”
  • -fmap β€” For reduced memory usage, keep filemapping after reading (raw) data, but writing into the array will result in a crash πŸ’€
  • -framesplit β€” Force splitting frames with different acquisition times into separate protocol-data pairs βœ‚οΈ
  • -ldr β€” If multiple LDR (labeled data record) arrays are present, select this πŸŽ›οΈ
  • -rdialect β€” Read data using given dialect of the format (default is no dialect) πŸ—£οΈ
  • -rf β€” Read format, use it to override file extension (options=autodetect 3db analyze asc coi dat dcm double float gz h5 hdr idx ima interfile jdx mag mhd nii ph png pos pro reg s16bit s32bit s8bit smp u16bit u32bit u8bit vtk xml xpro , default=autodetect) πŸ“„
  • -skip β€” Skip this amount of bytes before reading the raw data (default=0) ⏭️

πŸ”₯ Filters πŸ”₯

  • -align <filename,In-plane blowup factor (default=0)> β€” Align data to the geometry (voxel locations) of an external file 🧭
  • -automask <skip leftmost slots (default=0),dump histogram,dump histogram fit> β€” Create binary mask using automatic histogram-based threshold 🎚️
  • -cluster β€” Create clusters of non-zero adjacent/next-neighbours voxels, sorted by size 🫧
  • -convolve <convolution kernel (default=noFunction) (Gauss NoFilter Triangle Hann Hamming CosSq Blackman BlackmanNuttall Exp ),full-width-at-half-maximum of kernel [mm] (default=0.0)> β€” Convolution in spatial dimensions πŸŒ€
  • -detrend <Number of low frequency components to be removed (default=5),Zero mean of resulting timecourse (default=No)> β€” Remove slow drift over time πŸ“‰
  • -dilate <radius of kernel [mm] (default=0.0)> β€” dilate image using spherical kernel as structuring element 🫧
  • -edit <string in the format (timerange,slicerange,phaserange,readrange),value (default=0.0)> β€” Edit voxel values with range specified as single position, or 'all', or explicit range, optionally with increment (e.g. 1-10:3) ✏️
  • -erode <radius of kernel [mm] (default=0.0)> β€” erode image using spherical kernel as structuring element πŸ•³οΈ
  • -genmask <lower threshold (default=0.0),upper threshold (default=0.0)> β€” Create binary mask including all voxels with value in given range 🎭
  • -inv β€” Invert image values, i.e. lowest to highest and vice versa πŸ”ƒ
  • -isotrop <voxelsize [mm] (default=0.0)> β€” make image voxels isotrop through interpolation (image geometry will not change), set to zero for minimum extent 🧊
  • -lowpass <Cut-off frequency [Hz] (default=0.0)> β€” Lowpass filtering 🎡
  • -max <Maximum value (default=0.0)> β€” Clip all values above maximum value ⬆️
  • -maxip <direction (time slice phase read none )> β€” Perform maximum intensity projection over given direction πŸ”¦
  • -merge β€” Merge datasets into a single dataset by expanding the time dimension 🧬
  • -min <Minimum value (default=0.0)> β€” Clip all values below minimum value ⬇️
  • -minip <direction (time slice phase read none )> β€” Perform minimum intensity projection over given direction πŸ”…
  • -noNaN <Replacement value (default=0.0)> β€” Replaces every NaN by the given value 🚫
  • -nonzeromask β€” Create binary mask including all voxels with non-zero value 🎭
  • -pflip β€” Flip data in phase direction πŸ”„
  • -prange <single position, or 'all', or explicit range, optionally with increment (e.g. 1-10:3)> β€” Select range in phase direction 🎯
  • -proj <direction (time slice phase read none )> β€” Perform mean projection over given direction πŸ“Š
  • -quantilmask <quantil (default=0.0)> β€” Create binary mask including all voxels above the given fractional threshold πŸ“ˆ
  • -resample <new size (default=0)> β€” Temporal resize of image data ⏳
  • -resize <slice-size (default=0),phase-size (default=0),read-size (default=0)> β€” Spatial resize of image data πŸ“
  • -reslice <requested orientation (default=coronal) (sagittal coronal axial )> β€” reslices the image to a given orientation πŸ”ͺ
  • -rflip β€” Flip data in read direction πŸ”„
  • -rot <angle [deg] (default=0.0),kernel size [pixel] (default=1.41421)> β€” In-plane rotation πŸ”„
  • -rrange <single position, or 'all', or explicit range, optionally with increment (e.g. 1-10:3)> β€” Select range in read direction 🎯
  • -scale <Slope (default=1.0),Offset (default=0.0)> β€” Rescale image values πŸ“
  • -sflip β€” Flip data in slice direction πŸ”„
  • -shift <readDirection shift [pixel] (default=0.0),phaseDirection shift [pixel] (default=0.0),sliceDirection shift [pixel] (default=0.0)> β€” Shift data spatially ↔️
  • -slicetime <space-separated list of slice indices in order of acquisition> β€” Correct for different acquisition time points of slices ⏱️
  • -spheremask <Position string in the format (slicepos,phasepos,readpos),radius [mm] (default=0.0)> β€” Create binary spherical mask βšͺ
  • -splice <dimension of the data to be spliced (time slice phase read none )> β€” splices the image in the given direction βœ‚οΈ
  • -srange <single position, or 'all', or explicit range, optionally with increment (e.g. 1-10:3)> β€” Select range in slice direction 🎯
  • -sum <direction (time slice phase read none )> β€” Perform sum projection over given direction βž•
  • -swapdim <[rps][-],[rps][-],[rps][-]> β€” swap/reflect/transpose dimensions by specifying a direction triple with optional reflection sign appended πŸ”
  • -tile <columns (default=0)> β€” Combine slices into a square 2D image 🧩
  • -trange <single position, or 'all', or explicit range, optionally with increment (e.g. 1-10:3)> β€” Select range in time direction 🎯
  • -tshift <time shift [frames] (default=0.0)> β€” Shift data in time ⏱️
  • -typemax <Datatype> β€” Clip all values above maximum of a specific datatype ⬆️
  • -typemin <Datatype> β€” Clip all values below minimum of a specific datatype ⬇️
  • -usemask <filename> β€” Create 1D dataset including all values within binary mask from file 🎭

🌈 Supported file extensions(formats) 🌈

  • 3db β€” (Iris3D binary data) πŸ’Ύ
  • analyze β€” (NIFTI/ANALYZE, dialects: fsl) 🧠
  • asc β€” (ASCII, dialects: tcourse) πŸ“„
  • coi β€” (JCAMP-DX data sets) πŸ§ͺ
  • dat β€” (Matlab ascii 2D data matrix) πŸ“Š
  • dcm β€” (DICOM, dialects: siemens) πŸ₯
  • double β€” (double raw data) πŸ”’
  • float β€” (float raw data) πŸ”’
  • gz β€” (GNU-Zip container for other formats) πŸ—œοΈ
  • h5 β€” (ISMRMRD Image) πŸ–ΌοΈ
  • hdr β€” Interfile format, and the dialect it speaks is neurostat. yes bestie, there are two hdr entries in this list and they are not the same thing, keep reading πŸ’–
  • hdr β€” NIFTI/ANALYZE format, dialect: fsl. same three letters, whole different vibe, iconic behaviour honestly πŸŽ€
  • idx β€” the 3D-indices of all the non-zeroes, written out in ASCII, dialect: addval ✨
  • ima β€” DICOM format, dialect: siemens 🩻
  • interfile β€” Interfile, dialect: neurostat. the long-form name, no abbreviations here, she's classy πŸ’…
  • jdx β€” an ODIN Image built on JCAMP-DX, aka the Joint Committee on Atomic and Molecular Physical Data. say that five times fast, i dare you 😭
  • mag β€” DICOM, dialect: siemens 🌸
  • mhd β€” MetaImage, that's the whole thing, simple queen, no dialects needed πŸ‘‘
  • nii β€” NIFTI/ANALYZE, dialect: fsl πŸ¦‹
  • ph β€” DICOM, dialect: siemens ⭐
  • png β€” Portable Network Graphics. yes girl, the same png you're thinking of πŸ–ΌοΈ
  • pos β€” the x-y positions of all the non-zeroes, in ASCII. little coordinate queen, no 3D here, just the flat truth ✨
  • pro β€” ODIN protocols based on JCAMP-DX (Joint Committee on Atomic and Molecular Physical Data) πŸ“œ
  • reg β€” Ansoft HFSS ASCII πŸ› οΈ
  • s16bit β€” signed 16 bit raw data πŸ’œ
  • s32bit β€” signed 32 bit raw data πŸ’œ
  • s8bit β€” signed 8 bit raw data πŸ’œ
  • smp β€” JCAMP-DX data sets πŸ“
  • u16bit β€” unsigned 16 bit raw data 🌈
  • u32bit β€” unsigned 32 bit raw data 🌈
  • u8bit β€” unsigned 8 bit raw data 🌈
  • vtk β€” Visualization Toolkit, specifically vtkStructuredPoints 🧊
  • xml β€” an ODIN Image based on XML (Extensible Markup Language) 🧚
  • xpro β€” ODIN protocols based on XML (Extensible Markup Language) 🧚

and that's the whole format roster bestie, every single one, no skips, no cuts πŸ’– if you were looking for the exact list of what miview can read, this is it β€” screenshot it, tattoo it, whatever works for you 🫢

ngl some of these names are lowkey cursed (s8bit next to s16bit next to s32bit? the way that's just the same thing three times with different numbers 😭) but that's the data, fr fr, and we don't argue with the data πŸ’…

and the page signs off as miview version 2.0.5, dated October 2021 β€” that's the source and the version right there, so if you're on something older or newer, that's a you problem, not a me problem 🌸 anyway ily, go read some medical images, slay πŸ’–βœ¨πŸŽ€