本文整理汇总了Python中pydicom.dataset.Dataset.set_original_encoding方法的典型用法代码示例。如果您正苦于以下问题:Python Dataset.set_original_encoding方法的具体用法?Python Dataset.set_original_encoding怎么用?Python Dataset.set_original_encoding使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pydicom.dataset.Dataset
的用法示例。
在下文中一共展示了Dataset.set_original_encoding方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: read_dataset
# 需要导入模块: from pydicom.dataset import Dataset [as 别名]
# 或者: from pydicom.dataset.Dataset import set_original_encoding [as 别名]
def read_dataset(fp, is_implicit_VR, is_little_endian, bytelength=None,
stop_when=None, defer_size=None,
parent_encoding=default_encoding, specific_tags=None):
"""Return a Dataset instance containing the next dataset in the file.
Parameters
----------
fp : an opened file object
is_implicit_VR : boolean
True if file transfer syntax is implicit VR.
is_little_endian : boolean
True if file has little endian transfer syntax.
bytelength : int, None, optional
None to read until end of file or ItemDeliterTag, else
a fixed number of bytes to read
stop_when : None, optional
optional call_back function which can terminate reading.
See help for data_element_generator for details
defer_size : int, None, optional
Size to avoid loading large elements in memory.
See ``dcmread`` for more parameter info.
parent_encoding :
optional encoding to use as a default in case
a Specific Character Set (0008,0005) isn't specified
specific_tags : list or None
See ``dcmread`` for parameter info.
Returns
-------
a Dataset instance
See Also
--------
pydicom.dataset.Dataset
A collection (dictionary) of Dicom `DataElement` instances.
"""
raw_data_elements = dict()
fp_start = fp.tell()
is_implicit_VR = _is_implicit_vr(
fp, is_implicit_VR, is_little_endian, stop_when)
fp.seek(fp_start)
de_gen = data_element_generator(fp, is_implicit_VR, is_little_endian,
stop_when, defer_size, parent_encoding,
specific_tags)
try:
while (bytelength is None) or (fp.tell() - fp_start < bytelength):
raw_data_element = next(de_gen)
# Read data elements. Stop on some errors, but return what was read
tag = raw_data_element.tag
# Check for ItemDelimiterTag --dataset is an item in a sequence
if tag == BaseTag(0xFFFEE00D):
break
raw_data_elements[tag] = raw_data_element
except StopIteration:
pass
except EOFError as details:
# XXX is this error visible enough to user code with just logging?
logger.error(str(details) + " in file " +
getattr(fp, "name", "<no filename>"))
except NotImplementedError as details:
logger.error(details)
ds = Dataset(raw_data_elements)
if 0x00080005 in raw_data_elements:
char_set = DataElement_from_raw(raw_data_elements[0x00080005])
encoding = convert_encodings(char_set)
else:
encoding = parent_encoding
ds.set_original_encoding(is_implicit_VR, is_little_endian, encoding)
return ds