关于DCMTK中像素存储以及getoutdata()函数的使用

当你看这个帖子的时候,假设你在因为这个问题而困惑。

  在使用这个函数的时候纠结了很久,各种google、百度都没查到,测试了好多次,并计算了许多二进制像素值,才终于搞明白,getoutdata()里的参数到底应该怎么写;
  首先弄清楚dicom文件中单个像素值是怎么存的,说下一般的情况,以16位二进制方式存储,分析需要通过pixel模块的,bitstored, bitsallocated, highbit, pixel representation这四个值。

  • pixel representation
    pixel representation的值有0和1两种,0代表无符号,1代表有符号,比如二进制1001如果是无符号存储,表示9,如果是有符号(第一位代表符号位)的话就是-1;二进制0001不管是有符号还是无符号都代表1。
  • bitsallocated
    bitsallocated表示用多少位来储存,通俗来说就是开辟多少空间来存一个像素值,bitsallocated的存在是为了凑整,8或16或32,方便二进制计算.
  • bitstored
    在CT中一般bitsallocated=16位,因为16位所占空间很大,肯定是用不完的,所以又有bitstored这个值来表示用bitsallocated中的多少位来存像素值,剩余几位全部置0就行了。
  • highbit
    因为像素值可能是有符号或无符号,highbit这个值的存在是为了确定符号位。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值