De volta à home-page do Dechifro
Decodificando fotos digitais cruas no Linux
in English
en Esperanto
auf Deutsch
на русском
Bem-vindo! Se você está pesquisando sobre como conectar
sua câmera digital e baixar imagens em um PC Linux, vá para a
home-page do gPhoto.
Meu software é para processar estas imagens depois de
baixá-las.
Se você está baixando arquivos JPEG, você não precisa do meu
software. A imagem já foi processada dentro da câmera. Quase
todas as câmeras digitais fabricadas desde 1997 produzem imagens
JPEG, então porque você deveria fazer de outra maneira?
Bem, a despeito da conveniência e ubiqüidade do JPEG, existem
algumas desvantagens. JPEG é um formato com perda -- para
acomodar uma imagem grande em um arquivo pequeno, um monte de
informação é jogado fora. Por isso que câmeras semi-profissionais
e profissionais oferecem uma alternativa: Arquivos de dados CCD
crus, não-processados, para os quais o fabricante fornece softwares
decodificadores especiais.
Claro, este software é para Windows e Macintosh somente, sem
código-fonte disponível. É inútil para usuários de outros sistemas
operacionais, programadores tentando desenvolver melhores mecanismos
de interpolação, e historiadores ainda não nascidos, em uma era em
que as únicas máquinas Windows estarão em museus.
Portanto esta é minha missão: escrever e manter um programa ANSI C
que decodifica qualquer imagem crua de qualquer câmera digital em
qualquer computador rodando qualquer sistema operacional.
Este programa é chamado dcraw (em inglês
pronuncia-se "dee-see-raw"), e tem se tornado uma ferramenta padrão
dentro e fora do mundo Open Source. É pequeno (em torno de 8000 linhas),
portável (bibliotecas C padrão, somente), livre (tanto "grátis" quanto "livre")
e, quando usado habilmente, produz resultados de melhor qualidade do que as
ferramentas fornecidas pelo fabricante da câmera.
Eu posso ser contatado enviando-se email para dechifro ponto org,
usuário "dechifro".
Novidades e Entrevistas
Ensaio para a Digital Outback Photo, 25 de abril de 2003
Artigo na News.com, 21 de abril de 2005
Entrevista na Digital Photography Review, 27 de abril de 2005
Entrevista com Thorsten Schnebeck, 10 de junho de 2006
Entrevista no Ladinamo, 16 de junho de 2006
Meu código
A menos que declarado no código-fonte, estes programas são livres para
todos os usos, mas eu gostaria de receber crédito por eles. Doações são
bem-vindas, também, se você está ganhando dinheiro com o meu código.
Nota a distribuidores Linux: Os únicos arquivos executáveis que
devem ser instalados por um pacote dcraw são "dcraw", "clean_crw", e
talvez "fuji_green", "fujiturn" e "fujiturn16". Meus scripts shell são
perigosos e devem ser instalados somente em diretórios "doc", sem
permissão de execução.
- dcraw.c -- decodifica fotos cruas, extrai
miniaturas e mostra metadados
Suporta 426 câmeras, até a últma contagem.
Compile com "gcc -o dcraw -O4 dcraw.c -lm -ljasper -ljpeg -llcms"
ou "gcc -o dcraw -O4 dcraw.c -lm -DNODEPS".
Rode sem nenhum argumento para ver uma mensagem de uso. Não
reclame que a saída de 16 bits é muito escura. Leia o FAQ!
-
Manpage UNIX para o dcraw
Esta é a documentação oficial do usuário
para o dcraw, atualizada em sincronia com o código-fonte.
-
rawphoto.c -- extensão básica para o GIMP 1.2 & 2.0
Depois de instalar o "dcraw",
faça "gimptool --install rawphoto.c".
Minha extensão provê uma caixa de diálogo simples para carregar
fotos cruas dentro do GIMP.
Udi Fuchs
e
Joseph Heled
escreveram extensões bem melhores, com pré-visualização ao vivo, histogramas
e curvas de cor.
-
.badpixels -- os "pixels mortos" da minha câmera
Este arquivo diz ao dcraw quais pixels morreram e quando,
para que ele possa interpolar por entre eles.
-
dcraw.c,v -- Arquivo RCS completo
Este arquivo contém a história inteira do dcraw desde a sua concepção,
em 23 de fevereiro de 1997. Se você não tem o toolkit RCS,
baixe-o aqui.
-
parse.c -- lê estruturas de dados de imagens
Este programa mostra estruturas de dados CIFF e TIFF em uma forma
bastante críptica.
-
clean_crw.c -- limpa arquivos Canon CRW
Arquivos CRW recuperados ou 'des-deletados' freqüentemente possuem lixo
anexado a eles, tornando-os ilegíveis. Este programa os limpa com segurança.
-
fujiturn.c -- Rotaciona imagens Fuji Super CCD
Uma alternativa à rotação Fuji embutida no dcraw.
-
fuji_green.c -- Converta pixels verdes Fuji para PGM
Um efeito colateral benéfico do design do Super CCD Fuji é que os
seus pixels verdes produzem imagens em escalas de cinza muito boas.
Para hackers somente:
- decompress.c
é um compressor simples de referência para arquivos CRW.
- sony_clear.c
descriptografa arquivos SRF da Sony DSC-F828.
Para instalar o dcraw com suporte a outras línguas além do Inglês,
baixe o tarball mais recente deste diretório
e rode o script "install". As línguas atualmente suportadas são
Esperanto,
Russo,
Francês,
Italiano,
Alemão,
Português,
Espanhol,
Holandês,
Polonês,
Húngaro,
Tcheco,
Sueco,
Catalão,
Dinamarquês,
Romeno,
Japones,
e Chinês (tanto
Tradicional como
Simplificado).
Para compilar um DCRAW.EXE para DOS/Windows multilíngue e auto-contido, use um arquivo fonte
deste diretório.
Para adicionar outra língua, mande-me traduções
desta manpage e
desta tabela de mensagens
em codificação UTF-8.
Traduza somente a partir dos meus textos originais em Inglês e Esperanto
-- outras linguagens podem ter erros factuais invisíveis para mim.
Não traduza "Não posso fazer X" como "É impossível fazer X".
O dcraw não é perfeito, então se ele não pode fazer uma tarefa,
não quer dizer que a tarefa seja impossível. Computadores nunca devem
usar o pronome "eu", portanto escreva "o dcraw não pode fazer X".
Na dúvida, traduza tudo. Eu reviso estes textos antes de liberá-los, e é
mais fácil para mim corrigir sobre-tradução do que sub-tradução.
O dcraw decodifica fotos cruas, não arquivos crus.
Nenhuma câmera digital gera arquivos crus, em uso normal, sempre há
um cabeçalho com metadados úteis.
(Para uso anormal, veja CHDK e DIAG RAW abaixo)
"Raw" é uma palavra em Inglês, e não um acrônimo ou formato de arquivo.
"raw photo" deve ser traduzido com o mesmo adjetivo que você usaria para
"óleo cru", ou "materiais crus".
Existe dúzias de formatos de imagens crus: CRW, CR2, MRW, NEF,
RAF, etc. "Formato cru" não existe, é uma ilusão criada pela habilidade
do dcraw de ler todos os formatos crus.
Dcraw tem tornado mais fácil que desenvolvedores suportem uma
gama ampla de câmeras digitais em seus aplicativos. Eles podem
chamar o dcraw de uma interface gráfica, colar trechos do
dcraw.c no seu código ou simplesmente usar dcraw.c como a
documentação que os fabricantes se recusam a fornecer:
- ACDSee
- Adobe Photoshop
- BR's PhotoArchiver, por Baard Riiber
- BreezeBrowser de Chris Breeze
- Conceiva Lightbox
- cPicture de Jürgen Eidt
- Cumulus, por Canto
- dcRAW-X por Bryan Chang
- DCRawUI, de Sune Trudslev
- Directory Opus Plugin por Leo Davidson (com código-fonte C++)
- DeepSkyStacker, por Luc Coiffier
- dpMagic, por Mikhail Stolpner
- GraphicConverter, de Thorsten Lemke
- GVBox, de JCO Consulting
- HDR Shop
- ImageLab, de Aragon System
- Imagina, de Rob Baker
- IrfanView, por Irfan Skiljan
- processador de imagem IRIS para astrônomos
- Lightbox, por Josh Anon
- LightZone, por Anton Kast
- LRViewer, por Marc Rochkind
- Software de Recuperação de Arquivo MediaRECOVER
- Mixpo, por Mixpo Portfolio Broadcasting Inc.
- Photo Acute, por Almalence
- Photo Companion, por Jeff Moore
- Photo Jockey, por Davie Lee Reed
que também escreveu
uma interface dcraw para programadores Delphi.
- Photo Organizer, por Balint Kis
- PhotoRescue, de DataRescue
- PhotoReviewer, por Ben Haller
- Photovault, por Harri Kaimio
- Picasa do Google
- Picture Arena, or Felix Schwarz
- PixInsight, por Pleiades Software
- PolyView, por Polybytes
- RAW Developer, por Iridient Digital
- Raw Magick
- RawDrop, por Frank Siegert
- RawTherapee, por RT Team
- Serif PhotoPlus, PanoramaPlus, e AlbumPlus
- SharpRaw, por Duane DeSieno
- SilverFast DCPro, por LaserSoft Imaging
- StudioLine Photo, por H&M Software
- ViewIt, por Zdzislaw Losvik
- Viewer n5, por Dmitry Fedorov
- VueScan, por Ed Hamrick
- Xara Xtreme Pro
- Eu não tenho um compilador de C. Você poderia me mandar um executável?
- Não, mas Francisco Montilla fornece executáveis para Mac OS e para Windows em
seu website.
E Manuel Llorens fornece um grande cache
de executáveis Windows aqui.
Dcraw também foi portado para
Amiga,
MorphOS,
BeOS,
OS/2, e
RISC OS.
Se você tem familiaridade com a linha de comando do DOS, mas não sabe C,
você pode instalar este
compilador de C livre
e compilar dcraw.c facilmente.
- Porque o dcraw diz "Sem memória suficiente" no Windows Vista?
- Explicitamente para evitar vazamentos de memória, a Microsoft decidiu
que qualquer programa compilado para a antiga API MS-DOS deve ficar confinado a 32MB
de memória. Essa limitação pode ser removida com uma combinação de service packs
e alterações do registro do Windows, ou você pode compilar o dcraw para a nova API Win32.
O Thomas Nicely (da história do Pentium FDIV) tem uma
página descrevendo o problema e vários
consertos.
- Como eu posso ler os dados EXIF (velocidade de disparo, abertura, etc)?
- O ExifTool do Phil Harvey
é um leitor (e editor!) de EXIF unificado e baseado em Perl, para todas
as câmeras e formatos de arquivo. "dcraw -i -v" é muito mais rápido mas
provê menos informação.
- Como eu posso ler arquivo NEF de scanners Nikon?
- Dcraw suporta somente câmeras.
Tente este pequeno programa para scanners.
- Como eu posso ler imagens Nikon Dust Off (arquivos NDF)?
- Use este programa.
- Você tem alguma especificação descrevendo arquivos de fotos cruas?
- Sim, mas eles costumam omitir detalhes importantes, como por exemplo,
como descompactar a imagem crua, ou descriptografar metadados privados. Veja a
especificação TIFF, a
especificação TIFF/EP, a
especificação Adobe DNG, a
especificação CIFF (CRW), e a
especificação X3F.
- Onde eu posso obter uma coleção de fotos cruas para testar meu software?
-
Tente no raw.fotosite.pl,
www.rawsamples.ch,
e Glass Lantern RAWpository.
Uma "revisão completa" em
Imaging Resource
normalmente inclui algumas fotos cruas.
Para o conjunto completo de teste do dcraw (todas as câmeras suportadas
pelo dcraw), eu vendo um conjunto de 3 dvd's por $ 700 e atualizações
via web por $300 por ano.
- Eu estou projetando uma câmera digital. Como eu posso converter as
imagens cruas dela em algo que o dcraw e o Adobe Photoshop possam abrir?
-
Baixe LibTIFF v3.8.2 e aplique
este patch.
Depois use este programa em C como modelo
para converter suas fotos em arquivos
Adobe DNG válidos.
- Porque as imagens de saída do dcraw são mais largas do que os JPEG's da câmera?
- Qualquer algoritmo que combine cada pixel com os seus vizinhos terá
problemas com os pixels das bordas. Código C é barato, então o dcraw aplica um
algoritmo diferente nos pixels das bordas. A lógica do hardware é cara,
portanto as câmeras cortam fora os pixels das bordas, depois de processarem.
- Eu fiz uma foto crua sem luz. Porque ela aparece
com ruído, quando deveria ser preto sólido?
- Não importa o quanto escura uma imagem é, a auto-exposição do dcraw a 'estica',
de forma que um por cento dos pixels aparecem brancos. A opção "-W" evita esse
comportamento.
- Eu faço 'bracket' com mais dois e menos dois pontos, mas todas as cinco
fotos aparecem quase as mesmas no dcraw. Porque?
- Veja a questão anterior.
- Porque a saída em 16bit é escura/ilegível?
- Se você deseja fotos bonitas saindo direto do dcraw, permaneça com 8bit.
Saída linear em 16bit é a melhor matéria-prima para editores profissionais de
fotos, como Photoshop
e o CinePaint, mas não é boa para a
maioria dos visualizadores de imagens.
- O que a opção "-f" (quatro cores RGB) faz?
- Se você perceber padrões como este ou
este nos seus arquivos de saída, tente primeiro
"dcraw -a". Se eles persistirem, use "dcraw -f", para se livrar deles.
- Você poderia, por favor, inserir uma opção para salvar arquivos em TIFF / FITS / PNG / BMP / JPEG?
- Nas versões de 8.25 e acima, "dcraw -T" grava arquivos TIFF com metadados.
Para gravar outros formatos:
dcraw -c crw_0001.crw | pnmtofits > crw_0001.fits
dcraw -c crw_0001.crw | pnmtopng > crw_0001.png
dcraw -c crw_0001.crw | ppmtobmp > crw_0001.bmp
dcraw -c crw_0001.crw | cjpeg > crw_0001.jpeg
Eu usei as ferramentas netpbm
nestes exemplos. O ImageMagick também faz conversões de formatos na linha de
comando. Ambos são livres.
- Porque você não implementa o dcraw como uma biblioteca?
- Eu decidi que o dcraw será um programa de linha de comando escrito em C,
e que quaisquer camadas de abstração adicionais devem ser adicionadas em volta
deste núcleo, e não dentro dele.
Código de biblioteca é feio, porque não pode usar variáveis globais.
Bibliotecas são mais difíceis de modificar, compilar, instalar e testar
do que programas independentes, e portanto são inapropriadas
para formatos de arquivos que mudam todos os dias.
Há uma maneira mais simples de tornar o dcraw modular e seguro: Rode-o como
um processo separado. Eric Raymond
explica esta técnica aqui.
- Porque existem cores falsas junto às bordas na imagem?
- Por causa da interpolação. Este é um problema difícil, facilmente definido:
- Considere uma imagem RGB de três cores. Em cada pixel defina os valores de duas
cores como zero.
- Reconstrua a imagem original de três cores da melhor maneira possível,
a partir do único valor restante.
Dcraw atualmente permite uma escolha de três métodos: Bilinear, Número Variável
de Gradientes (VNG) e Adaptativo direcionado a homogeneidade (AHD).
O chip de captura Foveon X3 requer um tipo extra de interpolação.
Diferente de sensores CCD, ele captura três cores em cada pixel.
Mas as cores não se separam bem, portanto os dados crus aparecem
muito cinza. Muito processamento é necessário para acentuar a cor
e suprimir o ruído.
- Como eu faço minha câmera salvar fotos cruas?
-
Para Canon PowerShots que não gravam em CRW ou CR2, você necessita
do hack CHDK.
Para algumas Nikon Coolpix, você deve habilitar um
modo especial "DIAG RAW"
Para câmeras Casio, veja o website de
Maurice Delaney,
ou leia
essa discussão no dpreview
Para a Minolta DiMAGE G400, G500, G530 ou G600,
veja aqui (em russo) ou
aqui (em inglês)
Para a Minolta DiMAGE Z2 e a Nikon Coolpix 2100/3100/3700,
veja aqui.
Para câmeras SMaL, veja o
fórum camerahacking.
Para câmeras Agfa e Samsung,
veja aqui.
Para outras câmeras, veja o manual do usuário.
- O dcraw funciona com a minha câmera?
- Muito provavelmente sim. Se a sua câmera não está
nesta lista tente assim mesmo.
Se não funcionar, não fique quieto esperando a próxima versão.
Pergunte-me se eu preciso de alguma foto crua, ou poste uma imagem crua
em algum website e me mande a URL.
Se você não tem um website, use o
YouSendIt,
RapidShare,
Sendshack,
ShareFile,
sendspace,
ou
Megaupload.
Antes de escolher uma foto para mandar, leia a próxima pergunta:
- Porque o dcraw dá uma saída esverdeada e com cores fracas?
- Porque ele não tem a matriz de cores para o seu modelo de câmera,
então dá a saída de cores cruas, em vez de sRGB. Para consertar isso, eu preciso de uma foto
de um cartão de cores tipo Wolf Faust,
Calibr8,
CMP,
GretagMacbeth.
Siga este checklist:
- Use um cartão de cores real, não uma impressão ou imagem de tela.
- Espere por um dia de sol, meio-dia local ± duas horas.
- Remova cuidadosamente toda a poeira do cartão.
- Incline o cartão a 90° da câmera e 45° do sol
para evitar reflexos especulares.
- Posicione a câmera a dois metros de distância e use zoom de telefoto.
- Use o ISO mais baixo disponível.
Câmeras Suportadas