Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >读取词典时的编码问题

读取词典时的编码问题
EN

Stack Overflow用户
提问于 2019-04-30 01:06:57
回答 1查看 477关注 0票数 0

我正在预处理一个DICOM图像存储库,以向它提供一个卷积神经网络,但是当我试图读取该存储库时,它会抛出以下错误:

LookupError:未知编码: ISO 2022 IR 100

下面是我使用的代码:

代码语言:javascript
运行
AI代码解释
复制
listoflists = []
list = []
for x in range(1, 10):
    data_path = "/home/lorenzo_f/CT COLONOGRAPHY/1.3.6.1.4.1.9328.50.4.000%d" %x 
    output_path ="/home/lorenzo_f/output/"
    subfolders = [f.path for f in os.scandir(data_path) if f.is_dir() ]    
    subfolder = [f.path for f in os.scandir(subfolders[0]) if f.is_dir() ]  
    list.append(load_scan(subfolder[0]))
    list.append(load_scan(subfolder[1]))
    listoflists.append((list))

使用函数load_scan

代码语言:javascript
运行
AI代码解释
复制
# Loop over the image files and store everything into a list.

def load_scan(path):
    slices = [dicom.read_file(path + '/' + s) for s in os.listdir(path)]
    #slices[0].SpecificCharacterSet = 'latin_1'
    slices.sort(key = lambda x: int(x.InstanceNumber))
    try:
        slice_thickness = np.abs(slices[0].ImagePositionPatient[2] - slices[1].ImagePositionPatient[2])
    except:
        slice_thickness = np.abs(slices[0].SliceLocation - slices[1].SliceLocation)

    for s in slices:
        s.SliceThickness = slice_thickness

    return slices

我找不到您要说的标记,这是我使用的代码和输出的第一个条目。

代码语言:javascript
运行
AI代码解释
复制
data_path = "/home/lorenzo_f/CT COLONOGRAPHY/1.3.6.1.4.1.9328.50.4.0010"
output_path ="/home/lorenzo_f/output/"
subfolders = [f.path for f in os.scandir(data_path) if f.is_dir() ]    
subfolder = [f.path for f in os.scandir(subfolders[0]) if f.is_dir() ]
ds=load_scan(subfolder[0])
ds
代码语言:javascript
运行
AI代码解释
复制
 (0008, 0008) Image Type                          CS: ['ORIGINAL', 'SECONDARY', 'AXIAL']
 (0008, 0016) SOP Class UID                       UI: CT Image Storage
 (0008, 0018) SOP Instance UID                    UI: 1.3.6.1.4.1.9328.50.4.9867
 (0008, 0020) Study Date                          DA: '20000101'
 (0008, 0021) Series Date                         DA: '20000101'
 (0008, 0022) Acquisition Date                    DA: '20000101'
 (0008, 0023) Content Date                        DA: '20000101'
 (0008, 0030) Study Time                          TM: '091936'
 (0008, 0032) Acquisition Time                    TM: '092131'
 (0008, 0033) Content Time                        TM: '101416'
 (0008, 0050) Accession Number                    SH: ''
 (0008, 0060) Modality                            CS: 'CT'
 (0008, 0070) Manufacturer                        LO: 'GE MEDICAL SYSTEMS'
 (0008, 0080) Institution Name                    LO: ''
 (0008, 0081) Institution Address                 ST: ''
 (0008, 0090) Referring Physician's Name          PN: 'xDONEx'
 (0008, 1030) Study Description                   LO: 'CT COLONOGRAP C'
 (0008, 103e) Series Description                  LO: 'CT COLONOGRAPHY'
 (0008, 1048) Physician(s) of Record              PN: ' '
 (0008, 1090) Manufacturer's Model Name           LO: 'LightSpeed16'
 (0008, 1140)  Referenced Image Sequence   0 item(s) ---- 
 (0008, 2112)  Source Image Sequence   0 item(s) ---- 
 (0010, 0010) Patient's Name                      PN: '1.3.6.1.4.1.9328.50.4.0010'
 (0010, 0020) Patient ID                          LO: '1.3.6.1.4.1.9328.50.4.0010'
 (0010, 0030) Patient's Birth Date                DA: ''
 (0010, 0040) Patient's Sex                       CS: 'M'
 (0010, 1000) Other Patient IDs                   LO: ''
 (0010, 1010) Patient's Age                       AS: '068Y'
 (0010, 21b0) Additional Patient History          LT: 'COLON SCREENING'
 (0010, 21c0) Pregnancy Status                    US: []
 (0012, 0010) Clinical Trial Sponsor Name         LO: ''
 (0012, 0020) Clinical Trial Protocol ID          LO: ''
 (0012, 0021) Clinical Trial Protocol Name        LO: ''
 (0012, 0030) Clinical Trial Site ID              LO: ''
 (0012, 0031) Clinical Trial Site Name            LO: ''
 (0012, 0040) Clinical Trial Subject ID           LO: ''
 (0012, 0042) Clinical Trial Subject Reading ID   LO: ''
 (0013, 0010) Private Creator                     LO: 'CTP'
 (0013, 1010) Private tag data                    UN: b'CT COLONOGRAPHY\x00'
 (0013, 1013) Private tag data                    UN: b'70093008'
 (0018, 0015) Body Part Examined                  CS: 'COLON'
 (0018, 0022) Scan Options                        CS: 'HELICAL MODE'
 (0018, 0050) Slice Thickness                     DS: '0.7999999999999989'
 (0018, 0060) KVP                                 DS: '120'
 (0018, 0090) Data Collection Diameter            DS: '500.000000'
 (0018, 1020) Software Version(s)                 LO: 'LightSpeedverrel'
 (0018, 1030) Protocol Name                       LO: '6.10 CT  COLONOGRAPHY'
 (0018, 1100) Reconstruction Diameter             DS: '330.000000'
 (0018, 1110) Distance Source to Detector         DS: '949.075012'
 (0018, 1111) Distance Source to Patient          DS: '541.000000'
 (0018, 1120) Gantry/Detector Tilt                DS: '0.000000'
 (0018, 1130) Table Height                        DS: '167.199997'
 (0018, 1140) Rotation Direction                  CS: 'CW'
 (0018, 1150) Exposure Time                       IS: '526'
 (0018, 1151) X-Ray Tube Current                  IS: '140'
 (0018, 1152) Exposure                            IS: '2286'
 (0018, 1160) Filter Type                         SH: 'BODY FILTER'
 (0018, 1170) Generator Power                     IS: '16800'
 (0018, 1190) Focal Spot(s)                       DS: '0.700000'
 (0018, 1200) Date of Last Calibration            DA: ''
 (0018, 1201) Time of Last Calibration            TM: ''
 (0018, 1210) Convolution Kernel                  SH: 'STANDARD'
 (0018, 5100) Patient Position                    CS: 'FFS'
 (0020, 000d) Study Instance UID                  UI: 1.3.6.1.4.1.9328.50.4.9864
 (0020, 000e) Series Instance UID                 UI: 1.3.6.1.4.1.9328.50.4.9865
 (0020, 0010) Study ID                            SH: '1'
 (0020, 0011) Series Number                       IS: '102'
 (0020, 0012) Acquisition Number                  IS: '1'
 (0020, 0013) Instance Number                     IS: '1'
 (0020, 0032) Image Position (Patient)            DS: ['-165.000000', '-165.000000', '-8.335000']
 (0020, 0037) Image Orientation (Patient)         DS: ['1.000000', '0.000000', '0.000000', '0.000000', '1.000000', '0.000000']
 (0020, 0052) Frame of Reference UID              UI: 1.3.6.1.4.1.9328.50.4.9866
 (0020, 1040) Position Reference Indicator        LO: 'XY'
 (0020, 1041) Slice Location                      DS: '-8.335000'
 (0028, 0002) Samples per Pixel                   US: 1
 (0028, 0004) Photometric Interpretation          CS: 'MONOCHROME2'
 (0028, 0010) Rows                                US: 512
 (0028, 0011) Columns                             US: 512
 (0028, 0030) Pixel Spacing                       DS: ['0.644531', '0.644531']
 (0028, 0100) Bits Allocated                      US: 16
 (0028, 0101) Bits Stored                         US: 16
 (0028, 0102) High Bit                            US: 15
 (0028, 0103) Pixel Representation                US: 1
 (0028, 0120) Pixel Padding Value                 SS: -2000
 (0028, 1050) Window Center                       DS: '40'
 (0028, 1051) Window Width                        DS: '400'
 (0028, 1052) Rescale Intercept                   DS: '-1024'
 (0028, 1053) Rescale Slope                       DS: '1'
 (0040, a124) UID                                 UI: ''
 (0088, 0140) Storage Media File-set UID          UI: ''
 (3006, 0024) Referenced Frame of Reference UID   UI: ''
 (3006, 00c2) Related Frame of Reference UID      UI: ''
 (7fe0, 0010) Pixel Data                          OW: Array of 524288 bytes,```
EN

回答 1

Stack Overflow用户

发布于 2019-04-30 01:43:51

我不认为你的问题与转移语法有关。错误消息表明特定字符集(0008,0005)的值为

ISO 2022 IR 100

只有在使用所谓的代码扩展技术时,才允许使用ISO 2022 .这意味着,相同的属性值可以包含从不同字符集中获得的字符,并且使用特殊的字节序列(在ISO 2022中定义)在它们之间切换。

参考见PS3.3,C.12.1.1.2

代码扩展技术相当难处理,因此很少使用。事实上,这是我(可能)第一次看到这样的对象。这对我来说也很有趣--那么,你介意分享一下制造这个图像的制造商和设备吗?

你如何解决这个问题?问得好。我不知道有任何(python)工具包能够处理这种字符串编码--也许dcm4che可以这样做。

如果您只想提取像素数据,那么可能值得尝试将(0008,0005)的值更改为"ISO_IR 100“。这可能会导致阅读元数据方面的问题,如病人姓名或研究描述。但是,所有与像素数据编码相关的属性都不受字符编码的影响,因此它应该能够工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55917508

复制
相关文章
python 写入文件时编码问题
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/10
8970
C++之ARX 读取配置文件内容时,会出现编码问题(utf-8转unicode)
CString CConvert::UTF82WCS(const char* szU8) { //预转换,得到所需空间的大小; int wcsLen = ::MultiByteToWideChar(CP_UTF8, NULL, szU8, strlen(szU8), NULL, 0);
用户3519280
2023/07/06
1760
【前端词典】滚动穿透问题的解决方案
随着移动端市场的份额越大,需求就越多样化。我们今天讨论的是移动端的滚动穿透问题。上面这段调侃的话可以看出需求中弹窗浮层还是挺常见的,那这个和滚动穿透有什么联系呢?
小生方勤
2019/06/01
1K0
springboot配置之使用application.properties时编码问题
上一节我们是在application.yml文件中进行配置,本节我们在application.properties中进行配置。
西西嘛呦
2020/08/26
7250
springboot配置之使用application.properties时编码问题
奇怪的编码问题
今天使用R爬取数据的时候发现一个奇怪的问题,我将每个属性的数据先保存在vector中,然后再合并到data.frame中时,发现打印names时数据正常显示中文,但是打印data.frame或者写入csv文件时,却始终都是utf8的格式。 代码如下:
用户2936342
2019/03/19
1.5K0
奇怪的编码问题
编码问题
使用base64解决 最早用于邮件。早期邮件,由于计算机是用ACSII编码,无法传输图片等二进制文件,计算机中任何数据都是按ascii码存储的,而且ascii码的128~255之间的值是不可见字符, 数据在网络传输时会经过多个设备,每个设备编码方式也可能不同,base64 就可以用来将二进制文件内容编码为只包含 ascii 字符的内容,因此使用base64。
城市中的游牧民族
2019/02/21
5680
Python的编码问题
而我使用urlopen写一个采集小程序时,遇上了一个编码问题。以抓取百度首页为例:
meteoric
2018/11/16
6630
用于特征空间语义词典学习的非负核稀疏编码算法。
NNKSC_main.m clc;clear; close all main_path=fileparts(mfilename('fullpath')); addpath(genpath(main_path)); cd(main_path) %% loading Data % file_name='squat_data'; file_name='squat_data_PCA'; % file_name='words_data'; % file_name='cricket_data'; load
裴来凡
2022/05/28
2900
用于特征空间语义词典学习的非负核稀疏编码算法。
Python2和Python3正则匹配中文时的编码问题
我们都会遇到这样的人,他们说话时是中文英文穿插使用的。也就是一句话中有中文也有英文,很多时候没有办法避免,尤其是说一些专业术语时,当然也有纯个人说话习惯和故意的。
Python碎片公众号
2021/02/26
1.8K0
Python2和Python3正则匹配中文时的编码问题
maven构建项目时硬编码中文乱码问题解决
场景: 1. 项目采用maven作为构建工具。 2. 前端页面为jsp,由前端团队独立完成,添加编码配置:<%@ page contentType="text/html;charset=utf-8"%>。
编程随笔
2019/09/11
1.7K0
maven构建项目时硬编码中文乱码问题解决
Python中,关于读取文件编码解码的问
UnicodeDecodeError: 'gbk' codec can't decode byte 0xb1 in position 94: illegal multibyte sequence
py3study
2020/01/15
1.9K0
检测网页编码+读取网页内容 原
import chardet #字符集检测 import urllib.request # 网址 url = "http://www.baidu.com/"
双面人
2019/04/10
1.6K0
Python中的编码问题
视频汇总首页:http://edu.51cto.com/lecturer/index/user_id-4626073.html
py3study
2020/01/06
2K0
python中的编码问题
在python2.x中,有两种数据类型,unicode和str,这两个都是basestring的子类
py3study
2020/01/05
1.4K0
Python的编码问题(一)
一、什么是编码   可以说,计算机是一个即聪明又笨蛋的家伙。说它聪明,是因为他可以做很多事情,它的强大无需多说,大家应该都有所了解以及感受。但是为什么说它又是个笨蛋呢,因为我们在电脑上写出的每一个字,保存的每一句语音、歌曲以及小电影,它通通不认识,因为这些东西不是它所能读懂的东西。而如果我们让它做一些事情,那么必须用它所能读懂的语言来让他们为我们服务。那么就需要定义一套它能读懂的“语言“标准,而这个“语言”,就叫做编码。 二、编码的种类以及发展   我们都知道,电脑之所以能读懂数据,是因为它里面由许多许多的
人生不如戏
2018/04/12
1.1K0
Thymeleaf读取国际化文本时出现??xxxxxx_zh_CN??问题
最近在学习thymeleaf模板引擎,在使用th:text读取国际化文本时读取不到值,如下:
布禾
2020/10/29
1.5K0
Thymeleaf读取国际化文本时出现??xxxxxx_zh_CN??问题
Python - 编码问题
Mitchell Python 编码问题 以下是关于 python 编码规则的一些介绍: Python 内部所有编码统一是 Unicode,unicode 是一种中转码; 中文是 gbk 格式; 正常输出为 utf-8 格式。 当出现乱码的情况时,我们需要通过一系列的转码 过程表述: 原文件编码格式 --> unicode 中转码 --> 转为我们需要的编码格式。 代码实现: decode() --> unicode --> encode()转换为我们需要的编码格式。 Exp: 用 Pyth
Mitchell
2018/09/30
1K0
python编码问题
基本常识 ASCII编码是1个字节bytes,而Unicode编码通常是2个字节 1bytes=8bit 在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。
py3study
2020/01/08
1K0
python编码问题
python编码问题
我们已经讲过了,字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题。
bear_fish
2018/09/20
1.4K0
python编码问题
Eclipse编码问题
一直以来都以为eclipse设置好workspace与jsp的编码就万事大吉了,今天编辑properties文件时突然出现了问题,究其原因就是编码默认为ISO-8859-1,那么怎么更改后缀名为.properties的文件的默认编码呢?
休辞醉倒
2019/07/25
7730
Eclipse编码问题

相似问题

基于.get方法的Cesar词典编码问题

110

读取文件编码问题时出错

21

读取流时java编码问题

22

读取Python文件时的编码问题

22

读取R对象时的编码问题

126
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档