首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将操作的dicom保存到新的可读dicom文件时出错?

将操作的dicom保存到新的可读dicom文件时出错?
EN

Stack Overflow用户
提问于 2019-07-03 22:31:39
回答 1查看 180关注 0票数 0

我有一个12位的2D DICOM图像,我需要对Bits-Store做一些修改以将其转换为8位。为此,我修改了pixel_array。要将修改后的新pixel_array保存为DICOM图像,我需要与原始图像相同的meta_data,以便生成的DICOM是完全可读的。

我执行了以下操作,但最终的DICOM是不可读的。有人能帮我吗?‘’

代码语言:javascript
复制
import pydicom


ds = pydicom.dcmread('dicom_12bit.dcm')
high = 255
low = 0 
cmin = ds.pixel_array.min()
cmax = ds.pixel_array.max()
cscale = cmax - cmin
scale = float(high - low) / cscale
dcm_ds.pixel_array = (dcm_ds.pixel_array - cmin) * scale + low
dcm_ds.pixel_array = (dcm_ds.pixel_array.clip(low, high) + 0.5).astype(np.uint8)
dcm_ds.PixelData = dcm_ds.pixel_array.tobytes()
dcm_ds.save_as("new_8bit_dicom.dcm")

在新的DICOM文件中,存储的位现在应该是8位。但是它没有正确保存。

EN

回答 1

Stack Overflow用户

发布于 2019-12-27 19:08:58

查看的图像看起来很奇怪,因为它仍然被视为16位容器中的12位数据。您需要设置存储的位数、分配的位数和高位数,以匹配新位深度:

代码语言:javascript
复制
dcm_ds.BitsStored = 8
dcm_ds.BitsAllocated = 8
dcm_ds.HighBit = 7

如果你已经从有符号变为无符号,你还需要将像素表示更改为0。

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

https://stackoverflow.com/questions/56872411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档