DCMTK 您所在的位置:网站首页 无损压缩jpg DCMTK

DCMTK

2024-07-15 17:29| 来源: 网络整理| 查看: 265

此模块包含在DICOM图像对象的未压缩和JPEG压缩表示(传输语法)之间进行转换的类。支持无损和有损JPEG处理。此模块实现了一系列从类DcmCodec派生的编解码器,可以在模块dcmdata中维护的编解码器列表中注册。

示例: 以下示例显示如何使用无损JPEG压缩DICOM图像文件:

DJEncoderRegistration::registerCodecs(); // register JPEG codecs DcmFileFormat fileformat; if (fileformat.loadFile("test.dcm").good()) { DcmDataset *dataset = fileformat.getDataset(); DcmItem *metaInfo = fileformat.getMetaInfo(); DJ_RPLossless params; // codec parameters, we use the defaults // this causes the lossless JPEG version of the dataset to be created dataset->chooseRepresentation(EXS_JPEGProcess14SV1, ¶ms); // check if everything went well if (dataset->canWriteXfer(EXS_JPEGProcess14SV1)) { // force the meta-header UIDs to be re-generated when storing the file // since the UIDs in the data set may have changed delete metaInfo->remove(DCM_MediaStorageSOPClassUID); delete metaInfo->remove(DCM_MediaStorageSOPInstanceUID); // store in lossless JPEG format fileformat.saveFile("test_jpeg.dcm", EXS_JPEGProcess14SV1); } } DJEncoderRegistration::cleanup(); // deregister JPEG codecs

以下示例显示如何解压缩JPEG压缩的DICOM图像文件:

DJDecoderRegistration::registerCodecs(); // register JPEG codecs DcmFileFormat fileformat; if (fileformat.loadFile("test_jpeg.dcm").good()) { DcmDataset *dataset = fileformat.getDataset(); // decompress data set if compressed dataset->chooseRepresentation(EXS_LittleEndianExplicit, NULL); // check if everything went well if (dataset->canWriteXfer(EXS_LittleEndianExplicit)) { fileformat.saveFile("test_decompressed.dcm", EXS_LittleEndianExplicit); } } DJDecoderRegistration::cleanup(); // deregister JPEG codecs


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有