io3d package¶
Subpackages¶
Module datareader¶
Module for readin 3D dicom data
-
class
io3d.datareader.
DataReader
[source]¶ -
Get3DData
(datapath, qt_app=None, dataplus_format=True, gui=False, start=0, stop=None, step=1, convert_to_gray=True, series_number=None, use_economic_dtype=True, **kwargs)[source]¶ :datapath directory with input data :qt_app if it is set to None (as default) all dialogs for series selection are performed in terminal. If qt_app is set to QtGui.QApplication() dialogs are in Qt.
:dataplus_format is new data format. Metadata and data are returned in one structure.
-
Module datawriter¶
-
class
io3d.datawriter.
DataWriter
[source]¶ -
DataCopyWithOverlay
(dcmfilelist, out_dir, overlays)[source]¶ Function make 3D data from dicom file slices
:dcmfilelist list of sorted .dcm files :overlays dictionary of binary overlays. {1:np.array([…]), 3:…} :out_dir output directory
-
Write3DData
(data3d, path, filetype='auto', metadata=None, progress_callback=None, sfin=True)[source]¶ Parameters: - data3d – input ndarray data
- path – output path, to specify slice number advanced formatting options (like {:06d}) can be used
Check function filename_format() for more details. :param metadata: {‘voxelsize_mm’: [1, 1, 1]} :param filetype: dcm, vtk, rawiv, image_stack :param progress_callback: fuction for progressbar f.e. callback(value, minimum, maximum) :param sfin: Use separate file for segmentation if necessary
-
-
io3d.datawriter.
filename_format
(filepattern, series_number=1, slice_number=0, slice_position=0.0)[source]¶ Parameters: filepattern – advanced format options can be used in filepattern. Fallowing keys can be used: slice_number, slicen, series_number, seriesn, series_position, seriesp. For example ‘{:06d}.jpg’, ‘{series_number:03d}/{slice_position:07.3f}.png’ :param series_number: :param slice_number: :param slice_position: :param change_series_number_if_file_exists: :return:
-
io3d.datawriter.
saveOverlayToDicomCopy
(input_dcmfilelist, output_dicom_dir, overlays, crinfo, orig_shape)[source]¶ Save overlay to dicom.
-
io3d.datawriter.
write
(data3d, path, filetype='auto', metadata=None)[source]¶ Parameters: - data3d – input ndarray
- path – output path, if braces are in the name (“dir/file{:04d}.dcm”), image stack is produced .
Check function filename_format() for more details. :param filetype: dcm, png, h5, … “image_stack” :param metadata: metadata f.e. {‘voxelsize_mm’: [3,2,2]} :return:
Module datasets¶
Module is used for visualization of segmentation stored in pkl file.
-
io3d.datasets.
checksum
(path, hashfunc='md5')[source]¶ Return checksum given by path. Wildcards can be used in check sum. Function is strongly dependent on checksumdir package by ‘cakepietoast’.
Parameters: - path –
- hashfunc –
Returns:
-
io3d.datasets.
dataset_path
(cache=None, cachefile='~/io3d_cache.yaml')[source]¶ Get dataset path. :param cache: CacheFile object :param cachefile: cachefile path :return:
-
io3d.datasets.
download
(dataset_label=None, destination_dir=None, dry_run=False)[source]¶ Download sample data by data label. Labels can be listed by sample_data.data_urls.keys() :param dataset_label: label of data. If it is set to None, all data are downloaded :param destination_dir: output dir for data :return:
-
io3d.datasets.
generate_abdominal
(size=100, liver_intensity=100, noise_intensity=20, portal_vein_intensity=130, spleen_intensity=90)[source]¶
-
io3d.datasets.
generate_donut
()[source]¶ Generate donut like shape with stick inside
Returns: datap with keys data3d, segmentation and voxelsize_mm
-
io3d.datasets.
get
(dataset_label, series_number=None, *args, **kwargs)[source]¶ Parameters: - dataset_label – label from data_urls
- series_number – Series identification in study.
- args –
- kwargs –
Returns:
-
io3d.datasets.
get_old
(dataset_label, id, destination_dir=None)[source]¶ Get the 3D data from specified dataset with specified id.
Download data if necessary.
Parameters: - dataset_label –
- id – integer or wildcards file pattern
- destination_dir –
Returns:
-
io3d.datasets.
join_path
(*path_to_join)[source]¶ join input path to sample data path (usually in ~/lisa_data) :param path_to_join: one or more paths :return:
-
io3d.datasets.
sliver_reader
(filename_end_mask='*[0-9].mhd', sliver_reference_dir='~/data/medical/orig/sliver07/training/', read_orig=True, read_seg=False)[source]¶ Generator for reading sliver data from directory structure.
Parameters: - filename_end_mask – file selection can be controlled with this parameter
- sliver_reference_dir – directory with sliver .mhd and .raw files
- read_orig – read image data if is set True
- read_seg – read segmentation data if is set True
Returns: numeric_label, vs_mm, oname, orig_data, rname, ref_data
Module dcmreaddata¶
DICOM reader
Example:
$ dcmreaddata -d sample_data -o head.mat
-
class
io3d.dcmreaddata.
DicomDirectory
(dirpath, force_create_dicomdir=False, force_read=False)[source]¶ -
create_standard_dicomdir
()[source]¶ Create standard dicom dir describing files in directory. See read_standard_dicomdir_info() and get_standard_dicomdir_info() :return:
-
get_metaData
(dcmlist, series_number, ifile=0)[source]¶ Get metadata. Voxel size is obtained from PixelSpacing and difference of SliceLocation of two neighboorhoding slices (first have index ifile). Files in are used.
-
get_metadata_new
(series_number)[source]¶ Return series metadata. Output condatin information about voxelsize_mm, series_number and modality. If it is possible, the ImageComment, AcquisitionDate and few other dicom tags are also in output dict. :param series_number: :return: metadata dict with voxelsize_mm, SeriesNumber and other dicom tags
-
get_sorted_series_files
(startpath='', series_number=None, return_files_with_info=False, sort_keys='SliceLocation', return_files=True)[source]¶ Function returns sorted list of dicom files. File paths are organized by SeriesUID, StudyUID and FrameUID
Parameters: - startpath – path prefix. E.g. “~/data”
- series_number – ID of series used for filtering the data
- return_files_with_info – return more complex information about sorted files
- return_files – return simple list of sorted files
-
-
class
io3d.dcmreaddata.
DicomReader
(dirpath=None, initdir='.', qt_app=None, gui=True, series_number=None, get_series_number_callback=None, force_create_dicomdir=False, force_read=False)[source]¶ Example:
dcr = DicomReader(os.path.abspath(dcmdir)) data3d = dcr.get_3Ddata() metadata = dcr.get_metaData()
-
io3d.dcmreaddata.
attr_to_dict
(obj, attr, dct)[source]¶ Add attribute to dict if it exists. :param dct: :param obj: object :param attr: object attribute name :return: dict
-
io3d.dcmreaddata.
dicomdir_info
(dirpath, *args, **kwargs)[source]¶ Get information about series in dir
-
io3d.dcmreaddata.
files_in_dir
(dirpath, wildcard='*', startpath=None)[source]¶ Function generates list of files from specific dir
files_in_dir(dirpath, wildcard=”.”, startpath=None)
dirpath: required directory wilcard: mask for files startpath: start for relative path
Example files_in_dir(‘medical/jatra-kiv’,’*.dcm’, ‘~/data/’)
-
io3d.dcmreaddata.
get_slice_location
(dcmdata, teil=None)[source]¶ get location of the slice
Parameters: - dcmdata – dicom data structure
- teil – filename. Used when slice location doesnt exist
Returns:
Module misc¶
-
io3d.misc.
obj_to_file
(obj, filename, filetype='auto', ndarray_to_list=False, squeeze=True)[source]¶ Writes annotation in file.
Parameters: - filetype – auto yaml pkl, pickle pklz, picklezip
- ndarray_to_list – convert ndarrays in obj to lists
- squeeze – squeeze ndarray
-
io3d.misc.
old_str_format_to_new
(string)[source]¶ convert old format style to new style. Works for digits only %05d is converted to {:05d} :param string: :return:
-
io3d.misc.
resize_to_mm
(data3d, voxelsize_mm, new_voxelsize_mm, mode='nearest')[source]¶ Function can resize data3d or segmentation to specifed voxelsize_mm :new_voxelsize_mm: requested voxelsize. List of 3 numbers, also
can be a string ‘orig’, ‘orgi*2’ and ‘orgi*4’.Voxelsize_mm: size of voxel Mode: default is ‘nearest’
-
io3d.misc.
resize_to_shape
(data, shape, zoom=None, mode='nearest', order=0)[source]¶ Function resize input data to specific shape.
Parameters: - data – input 3d array-like data
- shape – shape of output data
- zoom – zoom is used for back compatibility
Mode: default is ‘nearest’
-
io3d.misc.
suggest_filename
(file_path, exists=None)[source]¶ Try if exist path and append number to its end. For debug you can set as input if file exists or not.