dcmjpls: uma biblioteca de compressão/descompressão e aplicativos utilitários
Este módulo contém classes que convertem entre as representações não comprimida e comprimida em JPEG-LS (sintaxes de transferência) de um objeto de imagem DICOM. Há suporte tanto para o processo JPEG-LS sem perdas quanto para o quase sem perdas (near-lossless). Este módulo implementa uma família de codecs derivados da classe DcmCodec e que podem ser registrados na lista de codecs mantida pelo módulo dcmdata.
As principais classes de interface são:
Ferramentas
Este módulo contém as seguintes ferramentas de linha de comando:
- dcmcjpls: codifica um arquivo DICOM para a sintaxe de transferência JPEG-LS
- dcmdjpls: decodifica um arquivo DICOM comprimido em JPEG-LS
- dcml2pnm: converte imagens DICOM para PGM/PPM, PNG, TIFF ou BMP
Exemplos
O exemplo a seguir mostra como comprimir um arquivo de imagem DICOM com JPEG-LS sem perdas:
DJLSEncoderRegistration::registerCodecs(); // register JPEG-LS codecs
DcmFileFormat fileformat;
if (fileformat.loadFile("test.dcm").good())
{
DcmDataset *dataset = fileformat.getDataset();
DcmItem *metaInfo = fileformat.getMetaInfo();
DJLSRepresentationParameter rp(0, OFTrue); // parameters for lossless
// this causes the lossless JPEG-LS version of the dataset to be created
dataset->chooseRepresentation(EXS_JPEGLSLossless, ¶ms);
// check if everything went well
if (dataset->canWriteXfer(EXS_JPEGLSLossless))
{
// store in lossless JPEG-LS format
fileformat.saveFile("test_jpls.dcm", EXS_JPEGLSLossless);
}
}
DJLSEncoderRegistration::cleanup(); // deregister JPEG-LS codecs
O exemplo a seguir mostra como descomprimir um arquivo de imagem DICOM comprimido em JPEG-LS:
DJLSDecoderRegistration::registerCodecs(); // register JPEG-LS codecs
DcmFileFormat fileformat;
if (fileformat.loadFile("test_jpls.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);
}
}
DJLSDecoderRegistration::cleanup(); // deregister JPEG-LS codecs
Aviso legal
Observe que a Hewlett Packard afirma deter patentes aplicáveis ao JPEG-LS. A Hewlett Packard concede licenças gratuitas para implementações conformes do JPEG-LS. A OFFIS, como autora do kit de ferramentas DCMTK, obteve essa licença, mas, dependendo da legislação de cada país, as empresas que utilizam o codec JPEG-LS do DCMTK também podem precisar adquirir uma licença. Caso pretenda usar este módulo para fins comerciais, consulte http://www.hpl.hp.com/loco/ para mais informações.