Class: DicomS::WindowTransfer
- Defined in:
- lib/dicoms/transfer.rb
Overview
Apply window-clipping; also always apply rescale (remap)
Constant Summary
Constants inherited from Transfer
Transfer::FLOAT_MAPPING, Transfer::USE_DATA
Instance Method Summary collapse
-
#initialize(options = {}) ⇒ WindowTransfer
constructor
A new instance of WindowTransfer.
- #min_max(sequence) ⇒ Object
- #min_max_rescaled? ⇒ Boolean
- #processed_data(dicom, min, max) ⇒ Object
Methods inherited from Transfer
#image, min_max_limits, #min_max_limits, #pixels, strategy
Methods included from Support
#assign_dicom_pixels, #cast_metadata, #decode_vector, #define_transfer, #dicom?, #dicom_bit_depth, #dicom_compression, #dicom_element_value, #dicom_name_pattern, #dicom_narray, #dicom_rescale_intercept, #dicom_rescale_slope, #dicom_signed?, #dicom_stored_bits, #dicom_window_center, #dicom_window_width, #encode_vector, #find_dicom_files, #keeping_path, #normalized_path, #output_file_name, #pixel_value_range, #single_dicom_metadata
Constructor Details
#initialize(options = {}) ⇒ WindowTransfer
Returns a new instance of WindowTransfer.
96 97 98 99 100 |
# File 'lib/dicoms/transfer.rb', line 96 def initialize( = {}) @center = [:center] @width = [:width] super end |
Instance Method Details
#min_max(sequence) ⇒ Object
102 103 104 105 106 |
# File 'lib/dicoms/transfer.rb', line 102 def min_max(sequence) # TODO: use options to sample/take first/take all? dicom = sequence.first data_range dicom end |
#min_max_rescaled? ⇒ Boolean
108 109 110 |
# File 'lib/dicoms/transfer.rb', line 108 def min_max_rescaled? true end |
#processed_data(dicom, min, max) ⇒ Object
112 113 114 115 116 117 |
# File 'lib/dicoms/transfer.rb', line 112 def processed_data(dicom, min, max) center = (min + max)/2 width = max - min data = dicom_narray(dicom, level: [center, width]) map_to_output dicom, data, min, max end |