dcm2img: converte imagem DICOM para formato de imagem padrão
SINOPSE
dcm2img [options] dcmfile-in [bitmap-out]
DESCRIÇÃO
O utilitário dcm2img lê uma imagem DICOM, converte os dados de pixel de acordo com as opções de processamento de imagem selecionadas e grava novamente uma imagem em um dos seguintes formatos de imagem de uso geral: BMP, PGM/PPM, PNG, TIFF, JPEG ou JPEG-LS. Esse utilitário oferece suporte a imagens DICOM não comprimidas, bem como a imagens DICOM comprimidas em JPEG, JPEG-LS e RLE.
PARÂMETROS
dcmfile-in DICOM input filename to be converted ("-" for stdin)
bitmap-out output filename to be written (default: stdout)
OPÇÕES
opções gerais
-h --help- exibe este texto de ajuda e sai
--version- exibe as informações de versão e sai
--arguments- exibe os argumentos de linha de comando expandidos
-q --quiet- modo silencioso, não exibe avisos nem erros
-v --verbose- modo detalhado, exibe os detalhes do processamento
-d --debug- modo de depuração, exibe informações de depuração
-ll --log-level [l]evel: string constant- (fatal, error, warn, info, debug, trace) usa o nível l para o logger
-lc --log-config [f]ilename: string- usa o arquivo de configuração f para o logger
opções de entrada
+f --read-file- lê o formato de arquivo ou o conjunto de dados (padrão)
+fo --read-file-only- lê apenas o formato de arquivo
-f --read-dataset- lê o conjunto de dados sem as informações meta do arquivo. sintaxe de transferência de entrada:
-t= --read-xfer-auto- usa o reconhecimento de TS (padrão)
-td --read-xfer-detect- ignora a TS especificada no cabeçalho meta do arquivo
-te --read-xfer-little- lê com a TS explicit VR little endian
-tb --read-xfer-big- lê com a TS explicit VR big endian
-ti --read-xfer-implicit- lê com a TS implicit VR little endian
opções de processamento de imagem
+F --frame [n]umber: integer- seleciona o frame especificado (padrão: 1)
+Fr --frame-range [n]umber [c]ount: integer- seleciona c frames a partir do frame n
+Fa --all-frames- seleciona todos os frames rotação:
+Rl --rotate-left- gira a imagem para a esquerda (-90 graus)
+Rr --rotate-right- gira a imagem para a direita (+90 graus)
+Rtd --rotate-top-down- gira a imagem de cima para baixo (180 graus) espelhamento:
+Lh --flip-horizontally- espelha a imagem horizontalmente
+Lv --flip-vertically- espelha a imagem verticalmente
+Lhv --flip-both-axes- espelha a imagem horizontal e verticalmente escala:
+a --recognize-aspect- considera a proporção de aspecto do pixel ao escalar (padrão)
-a --ignore-aspect- ignora a proporção de aspecto do pixel ao escalar
+i --interpolate [n]umber of algorithm: integer- usa interpolação ao escalar (1..4, padrão: 1)
-i --no-interpolation- sem interpolação ao escalar
-S --no-scaling- sem escala, ignora a proporção de aspecto do pixel (padrão)
+Sxf --scale-x-factor [f]actor: float- escala o eixo x pelo fator, calcula automaticamente o eixo y
+Syf --scale-y-factor [f]actor: float- escala o eixo y pelo fator, calcula automaticamente o eixo x
+Sxv --scale-x-size [n]umber: integer- escala o eixo x para n pixels, calcula automaticamente o eixo y
+Syv --scale-y-size [n]umber: integer- escala o eixo y para n pixels, calcula automaticamente o eixo x conversão de espaço de cores (somente imagens JPEG comprimidas):
+cp --conv-photometric- converte se a interpretação fotométrica for YCbCr (padrão)
+cl --conv-lossy- converte YCbCr para RGB se for JPEG com perdas
+cg --conv-guess- converte para RGB se a biblioteca presumir YCbCr
+cgl --conv-guess-lossy- converte para RGB se for JPEG com perdas e a biblioteca JPEG subjacente presumir YCbCr
+ca --conv-always- sempre converte YCbCr para RGB
+cn --conv-never- nunca converte o espaço de cores bits stored:
+bs --bits-stored-fix- corrige um valor de bits stored inconsistente (padrão) # Se o valor de BitsStored no bitstream comprimido for menor # que o valor no conjunto de dados DICOM, atualiza o valor no conjunto de dados # (somente imagens JPEG comprimidas)
-bs --bits-stored-keep- preserva um valor de bits stored inconsistente # Mantém o valor de BitsStored mesmo que inconsistente com o # bitstream comprimido. Isso pode ajudar a decodificar corretamente # algumas imagens com defeito (somente imagens JPEG comprimidas) opções de solução alternativa para codificações incorretas (somente imagens JPEG comprimidas):
+w6 --workaround-pred6- ativa a solução alternativa para imagens JPEG sem perdas com estouro no preditor 6 # Foram observadas "na prática" imagens DICOM com 16 bits/pixel # que são comprimidas com JPEG sem perdas e exigem tratamento # especial, porque o encoder gerou um estouro de inteiro de 16 bits # no preditor 6, que precisa ser compensado (reproduzido) durante a # descompressão. Essa flag permite a descompressão correta dessas # imagens defeituosas, mas ao mesmo tempo causará uma descompressão # incorreta de imagens corretamente comprimidas. Use com cuidado.
+wi --workaround-incpl- ativa a solução alternativa para dados JPEG incompletos # Essa opção faz com que o dcm2img ignore dados JPEG incompletos # ao final de um fragmento comprimido e comece a descomprimir # o próximo frame a partir do próximo fragmento (se houver). Isso permite # decodificar imagens com dados JPEG incompletos.
+wc --workaround-cornell- ativa a solução alternativa para imagens Cornell JPEG sem perdas de 16 bits com estouro na tabela de Huffman # Uma das primeiras implementações de código aberto de compressão # JPEG sem perdas, a biblioteca "Cornell", tem um bug conhecido que # gera valores inválidos na tabela de Huffman ao comprimir imagens # com 16 bits/amostra. Essa flag ativa uma solução alternativa que permite # decodificar corretamente essas imagens. transformação LUT de modalidade:
-M --no-modality- ignora a transformação LUT de modalidade armazenada
+M --use-modality- usa a transformação LUT de modalidade (padrão) transformação LUT VOI:
-W --no-windowing- sem janelamento VOI (padrão)
+Wi --use-window [n]umber: integer- usa a n-ésima janela VOI do arquivo de imagem
+Wl --use-voi-lut [n]umber: integer- usa a n-ésima tabela de consulta VOI do arquivo de imagem
+Wm --min-max-window- calcula a janela VOI usando o algoritmo min-max
+Wn --min-max-window-n- calcula a janela VOI usando o algoritmo min-max, ignorando valores extremos
+Wr --roi-min-max-window [l]eft [t]op [w]idth [h]eight: integer- calcula a janela ROI usando o algoritmo min-max, a região de interesse é especificada por l,t,w,h
+Wh --histogram-window [n]umber: integer- calcula a janela VOI usando o algoritmo Histogram, ignorando n por cento
+Ww --set-window [c]enter [w]idth: float- calcula a janela VOI usando o centro c e a largura w
+Wfl --linear-function- define a função LUT VOI como LINEAR
+Wfs --sigmoid-function- define a função LUT VOI como SIGMOID transformação LUT de apresentação:
+Pid --identity-shape- define a forma da LUT de apresentação como IDENTITY
+Piv --inverse-shape- define a forma da LUT de apresentação como INVERSE
+Pod --lin-od-shape- define a forma da LUT de apresentação como LIN OD overlay:
-O --no-overlays- não exibe overlays
+O --display-overlay [n]umber: integer- exibe o overlay n (0..16, 0=todos, padrão: +O 0)
+Omr --ovl-replace- usa o modo de overlay "Replace" (padrão para overlays Graphic)
+Omt --ovl-threshold- usa o modo de overlay "Threshold Replace"
+Omc --ovl-complement- usa o modo de overlay "Complement"
+Omv --ovl-invert- usa o modo de overlay "Invert Bitmap"
+Omi --ovl-roi- usa o modo de overlay "Region of Interest" (padrão para overlays ROI)
+Osf --set-foreground [d]ensity: float- define a densidade de primeiro plano do overlay (0..1, padrão: 1)
+Ost --set-threshold [d]ensity: float- define a densidade de limiar do overlay (0..1, padrão: 0.5) transformação LUT de exibição:
+Dm --monitor-file [f]ilename: string- calibra a saída de acordo com as características do monitor definidas em f
+Dp --printer-file [f]ilename: string- calibra a saída de acordo com as características da impressora definidas em f
+Da --ambient-light [a]mbient light: float- valor de luz ambiente (cd/m^2, padrão: arquivo f)
+Di --illumination [i]llumination: float- valor de iluminação (cd/m^2, padrão: arquivo f)
+Dn --min-density [m]inimum optical density: float- valor de Dmin (padrão: desativado, somente com +Dp)
+Dx --max-density [m]aximum optical density: float- valor de Dmax (padrão: desativado, somente com +Dp)
+Dg --gsd-function- usa GSDF para a calibração (padrão para +Dm/+Dp)
+Dc --cielab-function- usa a função CIELAB para a calibração compatibilidade:
+Ma --accept-acr-nema- aceita imagens ACR-NEMA sem interpretação fotométrica
+Mp --accept-palettes- aceita tags de atributo de paleta incorretas (0028,111x) e (0028,121x)
+Mc --check-lut-depth- verifica o 3º valor do descritor LUT, compara com a profundidade de bits esperada com base nos dados da LUT
+Mm --ignore-mlut-depth- ignora o 3º valor do descritor LUT de modalidade, determina automaticamente os bits por entrada de tabela
+Mv --ignore-vlut-depth- ignora o 3º valor do descritor LUT VOI, determina automaticamente os bits por entrada de tabela formato TIFF:
+Tl --compr-lzw- compressão LZW (padrão)
+Tr --compr-rle- compressão RLE
+Tn --compr-none- sem compressão
+Pd --predictor-default- sem preditor LZW (padrão)
+Pn --predictor-none- preditor LZW 1 (sem predição)
+Ph --predictor-horz- preditor LZW 2 (diferenciação horizontal)
+Rs --rows-per-strip [r]ows: integer (default: 0)- linhas por faixa, padrão de 8K por faixa formato PNG:
+il --interlace- cria um arquivo entrelaçado (padrão)
-il --nointerlace- cria um arquivo não entrelaçado
+mf --meta-file- cria metainformações de arquivo PNG (padrão)
-mf --meta-none- sem metainformações de arquivo PNG formato JPEG:
+Jq --compr-quality [q]uality: integer (0..100, default: 90)- valor de qualidade para a compressão (em porcentagem)
+Js4 --sample-444- amostragem 4:4:4 (sem subamostragem)
+Js2 --sample-422- subamostragem 4:2:2 (subamostragem horizontal dos componentes de crominância, padrão)
+Js1 --sample-411- subamostragem 4:1:1 (subamostragem horizontal e vertical dos componentes de crominância) formato JPEG-LS:
+Trl --rendered-lossless- compressão sem perdas da imagem renderizada (padrão)
+Tll --true-lossless- compressão sem perdas da imagem bruta
+f8 --force-8-bit- força a profundidade de bits de saída para 8 bits (não pode ser usado com --true-lossless) outras transformações:
+G --grayscale- converte imagem colorida em tons de cinza (monocromática)
+P --change-polarity- altera a polaridade (inverte a saída de pixels)
+C --clip-region [l]eft [t]op [w]idth [h]eight: integer- recorta a região da imagem (l, t, w, h)
opções de saída
-im --image-info- exibe os detalhes da imagem (requer o modo detalhado)
-o --no-output- não cria nenhuma saída (útil com -im) geração de nome de arquivo (somente com --frame-range ou --all-frames):
+Fc --use-frame-counter- usa um contador baseado em 0 para os nomes de arquivo (padrão)
+Fn --use-frame-number- usa o número absoluto do frame para os nomes de arquivo formato de imagem:
+oa --write-auto- determina o formato do arquivo pela extensão do nome de arquivo (padrão para arquivos) # Se o nome do arquivo de saída não tiver extensão ou tiver uma # extensão desconhecida ou incompatível, um aviso é exibido e um # arquivo BMP é gravado (veja --write-bmp).
+op --write-raw-pnm- grava um PGM/PPM binário de 8 bits
+opb --write-8-bit-pnm- grava um PGM/PPM ASCII de 8 bits (padrão para stdout)
+opw --write-16-bit-pnm- grava um PGM/PPM ASCII de 16 bits
+opn --write-n-bit-pnm [n]umber: integer- grava um PGM/PPM ASCII de n bits (1..32)
+ob --write-bmp- grava um BMP de 8 bits (monocromático) ou 24 bits (colorido)
+obp --write-8-bit-bmp- grava um BMP de paleta de 8 bits (somente monocromático)
+obt --write-24-bit-bmp- grava um BMP truecolor de 24 bits
+obr --write-32-bit-bmp- grava um BMP truecolor de 32 bits
+ot --write-tiff- grava um TIFF de 8 bits (monocromático) ou 24 bits (colorido)
+on --write-png- grava um PNG de 8 bits (monocromático) ou 24 bits (colorido)
+on2 --write-16-bit-png- grava um PNG de 16 bits (monocromático) ou 48 bits (colorido)
+oj --write-jpeg- grava um JPEG com perdas de 8 bits (baseline)
+ol --write-jpls- grava um JPEG-LS
NOTAS
Os seguintes algoritmos de interpolação preferenciais podem ser selecionados com a opção –interpolate:
- 1 = algoritmo de escala livre com interpolação do pbmplus toolkit
- 2 = algoritmo de escala livre com interpolação da revista c't
- 3 = algoritmo de ampliação com interpolação bilinear de Eduard Stanescu
- 4 = algoritmo de ampliação com interpolação bicúbica de Eduard Stanescu
A opção –write-tiff só está disponível quando o DCMTK foi configurado e compilado com suporte à biblioteca TIFF externa libtiff. A disponibilidade das opções de compressão TIFF depende da configuração da libtiff.
A opção –write-png só está disponível quando o DCMTK foi configurado e compilado com suporte à biblioteca PNG externa libpng. A opção –interlace permite a visualização progressiva da imagem durante o carregamento do arquivo PNG. Apenas alguns aplicativos levam em conta as metainformações (TEXT) de um arquivo PNG.
SINTAXES DE TRANSFERÊNCIA
dcm2img oferece suporte às seguintes sintaxes de transferência para a entrada (dcmfile-in):
LittleEndianImplicitTransferSyntax 1.2.840.10008.1.2
LittleEndianExplicitTransferSyntax 1.2.840.10008.1.2.1
DeflatedExplicitVRLittleEndianTransferSyntax 1.2.840.10008.1.2.1.99 (*)
BigEndianExplicitTransferSyntax 1.2.840.10008.1.2.2
JPEGLSLosslessTransferSyntax 1.2.840.10008.1.2.4.80
JPEGLSLossyTransferSyntax 1.2.840.10008.1.2.4.81
JPEGProcess10_12TransferSyntax 1.2.840.10008.1.2.4.55
JPEGProcess14SV1TransferSyntax 1.2.840.10008.1.2.4.70
JPEGProcess14TransferSyntax 1.2.840.10008.1.2.4.57
JPEGProcess1TransferSyntax 1.2.840.10008.1.2.4.50
JPEGProcess2_4TransferSyntax 1.2.840.10008.1.2.4.51
JPEGProcess6_8TransferSyntax 1.2.840.10008.1.2.4.53
RLELosslessTransferSyntax 1.2.840.10008.1.2.5
(*) se compilado com suporte a zlib habilitado
REGISTRO DE LOG
O nível de detalhamento do log das diversas ferramentas de linha de comando e das bibliotecas subjacentes pode ser especificado pelo usuário. Por padrão, apenas erros e avisos são gravados no fluxo de erro padrão. Ao usar a opção –verbose, mensagens informativas, como detalhes do processamento, também são relatadas. A opção –debug pode ser usada para obter mais detalhes sobre a atividade interna, por exemplo, para fins de depuração. Outros níveis de log podem ser selecionados com a opção –log-level. No modo –quiet, apenas erros fatais são relatados. Nesses casos de erro muito graves, o aplicativo normalmente é encerrado. Para mais detalhes sobre os diferentes níveis de log, consulte a documentação do módulo "oflog".
Caso a saída do log deva ser gravada em arquivo (opcionalmente com rotação de arquivo de log), no syslog (Unix) ou no log de eventos (Windows), pode-se usar a opção –log-config. Esse arquivo de configuração também permite direcionar apenas determinadas mensagens para um fluxo de saída específico e filtrar certas mensagens com base no módulo ou aplicativo em que são geradas. Um arquivo de configuração de exemplo é fornecido em < etcdir>/logger.cfg.
LINHA DE COMANDO
Todas as ferramentas de linha de comando usam a seguinte notação para os parâmetros: colchetes delimitam valores opcionais (0-1), reticências no final indicam que múltiplos valores são permitidos (1-n), e a combinação dos dois significa de 0 a n valores.
As opções de linha de comando se distinguem dos parâmetros por um sinal '+' ou '-' à frente. Normalmente, a ordem e a posição das opções de linha de comando são arbitrárias (ou seja, podem aparecer em qualquer lugar). No entanto, se as opções forem mutuamente exclusivas, é usada a ocorrência mais à direita. Esse comportamento está em conformidade com as regras de avaliação padrão dos shells Unix comuns.
Além disso, um ou mais arquivos de comando podem ser especificados usando um sinal '@' como prefixo do nome do arquivo (por exemplo, @command.txt). Esse argumento de comando é substituído pelo conteúdo do arquivo de texto correspondente (múltiplos espaços em branco são tratados como um único separador, a menos que apareçam entre duas aspas) antes de qualquer avaliação posterior. Observe que um arquivo de comando não pode conter outro arquivo de comando. Essa abordagem simples, mas eficaz, permite agrupar combinações comuns de opções/parâmetros e evita linhas de comando longas e confusas (um exemplo é fornecido no arquivo < datadir>/dumppat.txt).
AMBIENTE
O utilitário dcm2img tentará carregar os dicionários de dados DICOM especificados na variável de ambiente DCMDICTPATH. Por padrão, ou seja, se a variável de ambiente DCMDICTPATH não estiver definida, o arquivo < datadir>/dicom.dic será carregado, a menos que o dicionário esteja embutido no aplicativo (padrão para Windows).
É preferível manter o comportamento padrão e usar a variável de ambiente DCMDICTPATH apenas quando dicionários de dados alternativos forem necessários. A variável de ambiente DCMDICTPATH tem o mesmo formato da variável PATH dos shells Unix, em que dois-pontos (":") separam as entradas. Em sistemas Windows, um ponto e vírgula (";") é usado como separador. O código do dicionário de dados tenta carregar cada arquivo especificado na variável de ambiente DCMDICTPATH. Ocorre um erro se nenhum dicionário de dados puder ser carregado.
ARQUIVOS
< datadir>/camera.lut - exemplo de arquivo de características de uma câmera
< datadir>/monitor.lut - exemplo de arquivo de características de um monitor
< datadir>/printer.lut - exemplo de arquivo de características de uma impressora
< datadir>/scanner.lut - exemplo de arquivo de características de um scanner
VEJA TAMBÉM
img2dcm(1)
COPYRIGHT
Copyright (C) 2001-2025 by OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany.