dicom读取方法-资料(4)

2020-04-14 01:14

256 isLitteEndian = true; 257 isExplicitVR = false; 258 break; 259 default: 260 break; 261 } 262 }

263 for (int i = 1; i <= leve; i++) 264 tag = \ + tag;

265 //------------------------------------数据搜集代码

266 if ((VR == \ && Len == UInt32.MaxValue) || (tag == \ && Len == UInt32.MaxValue) || leve > 0)//文件夹标签代码 267 {

268 folderData.AppendLine(tag + \ + VR + \:\ + VFStr);

269 }

270 else if (((tag == \ && Len ==

UInt32.MinValue) || (tag == \ && Len == UInt32.MinValue)) && leve == 0)//文件夹结束标签 271 {

272 folderData.AppendLine(tag + \ + VR + \:\ + VFStr);

273 tags.Add(folderTag + \, folderData.ToString()); 274 } 275 else

276 tags.Add(tag, \ + VR + \ + VFStr); 277 } 278 } 279 } 好了收工。 测试下成果

1 if (openFileDialog1.ShowDialog() != DialogResult.OK) 2 return; 3

4 string fileName = openFileDialog1.FileName; 5

6 handler = new DicomHandler(fileName); 7

8 handler.readAndShow(textBox1); 9

10 this.Text = \ + openFileDialog1.FileName; 11 12

13 backgroundWorker1.RunWorkerAsync();

这里处理gdi位图的时候直接用的setPix 处理速度比较慢所以用了backgroundWorker,实际应用中请使用内存缓冲跟指针的方式

否则效率低了是得不到客户的认可的哦,gdi位图操作可使用lockBits加指针的方式 ,12位的灰度像素数据可以第一次读取后缓存到内存中 以方便后面调窗的快速读取

优化这点代码也不难哈 对指针什么的熟点就行了,前几章都有。

这是ezDicom 经过公认测试的软件 我们来跟他对比一下,打开

调窗测试,我们注意到两个东西 在没有窗宽窗位时 默认窗宽是2047+1即2048 窗位是2048/2即1024

直观的感受是调窗宽像在调图像对比度 ,调窗位像在调图像亮度。

窗宽为255的时候图像是最瑞丽的 因为255其实就是8位图像的默认窗宽。 注意窗位那里有小小区别,ez窗位显示的是根据1024那里为0开始偏移 而我的程序是根据窗宽中间值没有偏移 没有偏移的情况稍微符合逻辑点吧。

但是可以看到原理是一样的 结果是一样的。


dicom读取方法-资料(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:浙江省科学技术协会- 欢迎访问北仑教科网 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: