- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
在我的 C# Silverlight 应用程序中,我尝试使用 FJCore 以压缩的 JPEG 传输语法解码 DICOM 图像。类库。
DICOM 图像通常以 12 位精度压缩。当尝试使用原始 FJCore 源代码解码此类图像时,我得到一个异常提示“不支持的编解码器类型”,因为在原始 FJCore 实现中只有 SOF0(基线 DCT)和 SOF2(渐进 DCT)帧开始标记是支持的。如果我将实现更改为也接受 SOF1 标记(扩展顺序 DCT)并以与 SOF0 帧相同的方式处理 SOF1 帧,图像将被解码,但只考虑 8 位。
使用修改后的 FJCore 库解码后,典型的 12 位精度图像现在看起来像这样:
理想情况下,图像应如下所示:
据我从 FJCore 实现中得知,图像精度记录在 JpegFrame 类中,但从未使用过。最初的 FJCore 实现似乎只完全支持 8 位精度的灰度图像。
我打算“不畏艰险”并尝试自己扩展 FJCore 以支持灰度图像的 12 位精度。但在我这样做之前,我想我应该在 StackOverflow 中提出这个问题,看看以前是否有人遇到并解决过这个问题?那样的话,我很乐意了解您是如何解决问题的。
非常感谢!
安德斯@Cureos
最佳答案
我刚刚更新了我自己的 JPEG 解码器来处理扩展模式,我需要改变的是我的逆 DCT。在更改代码之前,输出看起来类似于上面的示例图像。我一直存储来自熵解码的 16 位系数值,但我的 DCT 计算在进行数学运算时使用 16 位整数来保存临时值,从而破坏了较大的值。我将 DCT 代码更改为使用 32 位整数进行计算,这解决了问题。
关于C#:使用 Silverlight FJCore 库以 12 位精度解码 JPEG 图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7505630/
我试图找出如何使用 FJCore 将 WriteableBitmap 编码为 jpeg。我知道 WriteableBitmap 提供了原始像素,但我不确定如何将其转换为 FJCore 对其 JpegE
在我的 C# Silverlight 应用程序中,我尝试使用 FJCore 以压缩的 JPEG 传输语法解码 DICOM 图像。类库。 DICOM 图像通常以 12 位精度压缩。当尝试使用原始 FJC
我是一名优秀的程序员,十分优秀!