You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何BitsAllocated=16、PixelRepresentation=1时DCMTK的getSInt16Array调用失败?

问题原因分析
  • DCMTK的类型校验严格绑定VR值:
    DCMTK的getSInt16Array()方法仅处理VR为SS(Signed Short)的DICOM元素,但DICOM标准中PixelData元素的VR固定为OW(Other Word,16位无符号字类型),无论PixelRepresentation是0(无符号)还是1(有符号)。因VR不匹配,调用getSInt16Array()会直接返回空指针。

  • getUint16Array()的兼容性设计:
    getUint16Array()对应的VR是US(Unsigned Short),而OW的存储格式和US完全一致(均为2字节无符号单元),因此DCMTK允许用getUint16Array()读取PixelData的OW数据,能正常获取有效指针。

  • PixelRepresentation仅为语义标识:
    该属性仅在语义层面说明像素数据的解读规则(有符号/无符号),不会改变PixelData本身的VR类型和二进制存储格式。将uint16_t指针强制转换为signed short,只是按照有符号规则解读二进制数据,与实际存储的像素值匹配,因此能显示正确图像。

内容的提问来源于stack exchange,提问作者Qiang Zhang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 10:07:00