赞
踩
在写这篇文章前72小时,我的多窗显示组件对于个别大W/C值的16位影像显示还是个问题,也发了帖子到PACS站询问过,更是在Google上猫刨了很久,终归一无所获,今天静下心来,用了2小时反复查看程序处理过程,对比数据,居然就这么搞定了,原来如此简单,哎,困惑了3天,把答案公布了,也算是助人为乐(中国地大物博,人心应宽广无量)
对16位的影像,要判断DICOM中最大像素值(0028,0107)大于65534,是则将16位影像数据的像素值大于等于0的全部减去65535,小于0的全部加上65535,然后在window-level的方法中将pixel_val按word取值(word是无符号类型,相当于取绝对值)进行判断,然后赋值即可(CT影像不能用word类型取值和赋值),就这么简单,以下是关键代码,祝你愉快!!!
procedure DCM_GetWidAndCenBySmallint(var DICOMDATA: TDICOMDATA; var Buffer: SMallIntp0);
var
Value, Size, i: integer;
min16, max16: integer;
begin
Size := DICOMDATA.ImageColumns * DICOMDATA.ImageRows;
Value := Buffer[0];
max16 := Value;
min16 := Value;
i := 0;
while i < Size do begin
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。