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的编解码器DJCompressJP2K
、DJDecompressJP2k
,开箱使用。他用到的是openjpeg1.4.0,非常老旧的版本了
尝试通过第三方库的方式集成openjpeg(除了源码,还要改CMake脚本),目前opj最新2.5.0,并不能直接替换上面的代码,opj的接口已经发生很大改变了,需要迁移,可以看看这位博主的系列文章jpeg2000(j2k)图像编码解码,自己弄了下很多地方要改,暂时没时间折腾了
TODO
编解码的效果可以直接通过openjpeg的opj_compress
和opj_decompress
测试