在我的 C# Silverlight 应用程序中,我尝试使用FJCore类库以压缩的 JPEG 传输语法解码 DICOM 图像。
DICOM 图像通常以 12 位精度压缩。当尝试使用原始 FJCore 源代码解码这样的图像时,我得到一个异常说“不支持的编解码器类型”,因为在原始 FJCore 实现中只有 SOF0(基线 DCT)和 SOF2(渐进式 DCT)帧开始标记是支持的。如果我将实现更改为也接受 SOF1 标记(扩展顺序 DCT)并将 SOF1 帧以与 SOF0 帧相同的方式处理,则图像被解码,但只考虑 8 位。
使用修改后的 FJCore 库解码后,典型的 12 位精度图像现在如下所示:
理想情况下,图像应如下所示:
据我从 FJCore 实现中可以看出,图像精度记录在 JpegFrame 类中,但从未使用过。最初的 FJCore 实现似乎只完全支持 8 位精度的灰度图像。
我计划“不顾一切”并尝试自己扩展 FJCore 以支持灰度图像的 12 位精度。但在我这样做之前,我想我应该在 StackOverflow 中提出这个问题,看看有没有人遇到过并解决过这个问题?在这种情况下,我很高兴了解您是如何解决问题的。
提前谢谢了!
安德斯@Cureos