dcmpstat: biblioteca de presentation state e aplicativos utilitários
Este módulo contém classes que implementam uma API de alto nível para a DICOM Softcopy Grayscale Presentation State Storage SOP Class. Também contém diversas classes de suporte usadas pelo DICOMscope, um visualizador DICOM gratuito desenvolvido como demonstrador de presentation states. Consulte https://dicom.offis.de/en/dicomscope/
As principais classes de interface são:
Ferramentas
Este módulo contém as seguintes ferramentas de linha de comando:
- dcmmkcrv: adiciona dados de curva 2D a uma imagem
- dcmmklut: cria tabelas de consulta (look-up tables) DICOM
- dcmp2pgm: lê imagem DICOM e presentation state e renderiza bitmap
- dcmprscp: SCP de gerenciamento básico de impressão em escala de cinza DICOM
- dcmprscu: spooler de impressão para o visualizador de presentation state
- dcmpschk: ferramenta de verificação de presentation states
- dcmpsmk: cria presentation state DICOM grayscale softcopy
- dcmpsprt: lê imagens DICOM e presentation states e renderiza trabalho de impressão
- dcmpsrcv: recepção de rede para o visualizador de presentation state
- dcmpssnd: envio de rede para o visualizador de presentation state
Exemplos
O exemplo a seguir mostra como criar um presentation state padrão para uma imagem DICOM:
DcmFileFormat infile;
DcmFileFormat outfile;
if (infile.loadFile("image.dcm").good())
{
DVPresentationState pstate; // presentation state handler
if (pstate.createFromImage(*infile.getDataset()).good())
{
// serialize presentation state into DICOM data set structure
if (pstate.write(*outfile.getDataset(), OFFalse).good())
{
// and write to file
outfile.saveFile("gsps.dcm", EXS_LittleEndianExplicit);
}
}
}
O exemplo a seguir mostra como aplicar o pipeline de transformação em escala de cinza de um presentation state a uma imagem DICOM:
DcmFileFormat imagefile;
DcmFileFormat gspsfile;
if (imagefile.loadFile("image.dcm").good() &&
gspsfile.loadFile("gsps.dcm").good())
{
DVPresentationState pstate; // presentation state handler
if (pstate.read(*gspsfile.getDataset()).good()) // parse gsps object
{
// attach presentation state to image data
if (pstate.attachImage(&imagefile, OFFalse).good())
{
const void *pixel; // pointer to pixel data, one byte per pixel
unsigned long width; // width of image bitmap
unsigned long height; // height of image bitmap
if (pstate.getPixelData(pixel, width, height).good())
{
/ do something useful with the pixel data /
}
pstate.detachImage(); // release connection between GSPS and image
}
}
}