GDI+ 显示DICOM 图像测试

来源:互联网 发布:回溯算法 编辑:程序博客网 时间:2024/05/13 07:37

GDI+ 显示 DICOM 图像测试

主要使用:VS2008  MFC 、 GDI+ 、  DCMTK。

     一、MFC下使用GDI+需要稍微配置一下,过程很简单,网上也很多,不详细介绍。

           可参考:http://www.codeproject.com/Articles/3962/Using-GDI-with-MFC-or-native-C-C

     二、采用DCMTK来读取DICOM文件。

     三、采用GDI+来生成Bitmap对象,进而显示DICOM图像。

            生成Bitmap对象主要使用了四种方法:

            PixelFormat8bppIndexed       【成功】(需要调用SetPalette,设置调色板)

            PixelFormat16bppGrayScale 【失败】(查了相关资料,虽然GDI+定义了改宏,但目前还不支持)

            PixelFormat24bppRGB          【成功】(同PixelFormat32bppARGB、PixelFormat32bppRGB)

            PixelFormat48bppRGB          【失败】(显示的结果很差)

           (另外还调用了DCMTK中对象DicomImage的createWindowsDIB方法,该方法不属于GDI+,所以没列出)

     四、测试数据是一张DR的DICOM数据。

           图像的宽和高是1760、2140。

           采用DicomImage来调节窗宽和窗位的速度非常快,比我自己写的快的多,可能是自己的方法有问题吧!本来还想自己封装一个显示的类,现在打算放弃了,就用DicomImage来处理。

           PixelFormat8bppIndexed与PixelFormat24bppRGB显示结果:

 

 

 

      PixelFormat16bppGrayScale:方法无效

      PixelFormat48bppRGB :显示结果

    

先整理到这里,其它测试结果以后记录,吃饭先。

         

     五、窗宽窗位与缩放的测试结果

      1、对窗宽窗位的调整,最好能生成与窗口对应大小的DicomImage来进行窗宽与窗位的调节,这样速度会很快。

      2、对图像的缩放。对以上DR图像进行缩放,采用了两种方法:一种采用GDI+来做;另外一种是用DicomImage的createScaledImage()方法来实现。

           在没有采用差值算法的情况下,利用createScaledImage方法还是很快的,但一旦进行插值后,其速度下降很快,在实际应用中无法达到要求;

           另外一种方法即利用GDI+来完成,在插值的前提下,速度还可以接受。

      (以上仅仅是自己测试的结果,仅记录于此,如若有错,欢迎指正)

          

           

  

原创粉丝点击