dcmjpeg: biblioteca de compressão/descompressão e aplicativos utilitários
Este módulo contém classes que convertem entre a representação não comprimida e a representação comprimida em JPEG (sintaxes de transferência) de um objeto de imagem DICOM. São aceitos tanto os processos JPEG sem perdas quanto os processos com perdas. 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:
- dcmcjpeg: codifica um arquivo DICOM para a sintaxe de transferência JPEG
- dcmdjpeg: decodifica um arquivo DICOM comprimido em JPEG
- dcmj2pnm: converte imagens DICOM para PGM/PPM, PNG, TIFF, JPEG ou BMP
- dcmmkdir: cria um arquivo DICOMDIR
Exemplos
O exemplo a seguir mostra como comprimir um arquivo de imagem DICOM usando JPEG sem perdas:
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
if (dataset->chooseRepresentation(EXS_JPEGProcess14SV1, ¶ms).good() &&
dataset->canWriteXfer(EXS_JPEGProcess14SV1))
{
// store in lossless JPEG format
fileformat.saveFile("test_jpeg.dcm", EXS_JPEGProcess14SV1);
}
}
DJEncoderRegistration::cleanup(); // deregister JPEG codecs
O exemplo a seguir mostra como descomprimir um arquivo de imagem DICOM comprimido em JPEG:
DJDecoderRegistration::registerCodecs(); // register JPEG codecs
DcmFileFormat fileformat;
if (fileformat.loadFile("test_jpeg.dcm").good())
{
DcmDataset *dataset = fileformat.getDataset();
// decompress data set if compressed
if (dataset->chooseRepresentation(EXS_LittleEndianExplicit, NULL).good() &&
dataset->canWriteXfer(EXS_LittleEndianExplicit))
{
fileformat.saveFile("test_decompressed.dcm", EXS_LittleEndianExplicit);
}
}
DJDecoderRegistration::cleanup(); // deregister JPEG codecs