关于dcmtk对JPEG2000的支持

文章讨论了如何在DCMTK中集成JPEG2000支持,涉及商业扩展模块、使用旧版OpenJPEG(1.4.0)的简单集成方法,以及尝试通过第三方库(如最新版2.5.0的OpenJPEG)进行迁移的挑战。

dcmtk把J2K放在扩展模块了,见DCMJP2K - DICOM JPEG 2000 Module

Two of the DICOM JPEG 2000 transfer syntaxes are supported (“JPEG 2000 Image Compression (Lossless Only)” and “JPEG 2000 Image Compression”).
This module is not freely available and must be licensed separately.

DCMTK Wiki - Commercial extensions of DCMTK

意思就是要钱


自己实现的方法:将openjpeg(opj)集成到dcmtk

给DCMTK添加JPEG2000支持这位仁兄简单粗暴,直接把opj相关的源码拷到“dcmjpeg”模块里,仿照ijg8/ijg12/ijg16的接口写了j2k的编解码器DJCompressJP2KDJDecompressJP2k,开箱即用。他用到的是openjpeg1.4.0,非常老旧的版本了

尝试通过第三方库的方式集成openjpeg至dcmtk源码(除了修改源码,还要改CMake脚本),目前opj最新2.5.0,并不能直接替换上面那位博主的代码,opj的接口已经发生很大改变了,需要迁移,可以看看这位博主的系列文章jpeg2000(j2k)图像编码解码,自己弄了下很多地方要改,暂时没时间折腾了

TODO


J2K编解码的效果可以直接通过openjpeg的opj_compressopj_decompress测试