![]() |
Luminance HDR 2.0.1, an improved, but still trying, photography tool
Autor original: Nathan Willis
Publicado originalmente no: lwn.net
Tradução: Roberto Bechtlufft
A fotografia “HDR” (abreviatura de “alto alcance dinâmico” em inglês) engloba diversas técnicas de trabalho com formatos de imagem especializados, capazes de lidar com níveis extremos de brilho e sombra que vão além do que é possível armazenar em formatos mais comuns como TIFF e JPEG e do que monitores de CRT e LCD são capazes de exibir. O principal aplicativo de HDR para os usuários do Linux no desktop é o Luminance HDR, e ele não está nessa posição por acaso: hoje são raros os programas de HDR no Linux, e o quadro atual é ainda pior do que na época em que nosso editor ranzinza escreveu seu artigo sobre o HDR no Linux (em inglês), publicado em 2007. Uma atualização recente do Luminance trouxe melhorias na usabilidade, mas o programa ainda tem muito o que evoluir.
A versão 2.0.1 foi lançada no dia 9 de outubro, sendo a primeira atualização da série 2.0 liberada pelo novo mantenedor do projeto, Davide Anastasia. Ele assumiu a manutenção em setembro, e já é o quarto líder do projeto em menos de dois anos. Na época ele redigiu uma pequena lista de objetivos no blog do projeto, a começar pela solução dos problemas de travamentos (que já vêm de longa data), para em seguida eliminar as regressões surgidas na versão 2.0. Por fim, virão as melhorias na interface, tida como confusa por muitos usuários e pessoas que avaliaram o programa. A versão 2.0.1 já resolveu alguns bugs.
Os usuários do Linux podem baixar pacotes com o código fonte no site do projeto no SourceForge.net (a URL vem do nome original do aplicativo, Qtpfsgui, que deve ser o nome de projeto mais intimidador já surgido na história do software livre). Também estão disponíveis binários para Mac OS X e Windows. O código é fácil de compilar: ele usa a ferramenta de compilação Qmake, e depende do Qt4, das bibliotecas de processamento de imagens Exiv2, libTIFF e OpenEXR, além das bibliotecas matemáticas FFTW3 e GSL. O único problema que tive na hora de compilar foi a necessidade de instalar versões específicas para o Qt4 do Qmake, do compilador de interface de usuário do Qt UIC e do compilador de metaobjeto do Qt, MOC; quem compila aplicativos Qt4 com frequência não deve ter nenhum problema.
Fluxo de trabalho HDR: criação da imagem
Presume-se que pessoas com hardware capaz de capturar e exibir nativamente conteúdo HDR já tenham software de edição para fins específicos do Skywalker Ranch, da Weta Digital ou de algum outro estúdio profissional. O Luminance foi feito para nós, meros mortais com câmeras digitais e monitores convencionais. Seu fluxo de trabalho consiste de duas tarefas principais: a importação de imagens de baixo alcance dinâmico (LDR) a serem mescladas em uma única imagem HDR, e o mapeamento de uma imagem HDR em um formato LDR para distribuição na web.
A maioria de vocês já viu fotos baseadas em HDR no Flickr ou em outros sites. Os cenários típicos para exemplo são ruas fotografadas tarde da noite (quando uma mesma foto exibe os prédios, as luzes da rua e as janelas acesas) e cenas em plena luz do dia, onde tanto elementos iluminados pelo sol quanto outros sombreados estão devidamente expostos. Em todas essas situações, o truque é bater fotos com várias exposições, em configurações diferentes: algumas com exposição para áreas cobertas por sombras, outras com exposição para áreas iluminadas. No software nós podemos misturar tudo, eliminando tanto os pontos muito brilhantes quando as sombras com pouca exposição.
Para criar uma nova imagem HDR no Luminance, você carrega o conjunto de fotos LDR originais, batidas no devido intervalo de configurações de exposição, faz o alinhamento e as mescla em uma única imagem. O importador de imagens supostamente aceita uma ampla variedade de formatos, incluindo todos os tipos de arquivos raw suportados pelo DCraw, pelo JPEG e pelo TIFF. Depois da importação, o Luminance lê a configuração de exposição pelas tags EXIF de cada arquivo. Quando a tag não é encontrada, você pode entrar com essa informação manualmente. Há dois algoritmos de alinhamento automático de imagens disponíveis: um esquema interno chamado “bitmap de limite médio” e a função align_image_stack da ferramenta panorâmica de código aberto Hugin, mas o usuário tem a opção de alinhar manualmente as imagens usando as ferramentas de edição integradas. Por fim, o perfil de imagem HDR precisa ser escolhido. Esse perfil consiste de uma função de peso, curva de resposta e algoritmo de criação de HDR. As configurações que você escolher serão aplicadas à sua pilha de imagens de entrada, e o resultado é exibido em uma janela de visualização, onde a imagem poderá ser inspecionada em toda a sua glória HDR.
Tela de importação do Luminance HDR 2.0.1
Eu tive alguns probleminhas no meio desse processo. Para começar, escolher e carregar as imagens LDR é mais difícil do que o necessário, porque é preciso selecionar todas as imagens que se quer usar no seletor de arquivos, ao mesmo tempo (não existe um botão de “adicionar outra”). Ou seja, todas as imagens têm que estar no mesmo diretório, e em termos práticos, é preciso abrir as imagens em um visualizador externo, já que não há miniaturas para visualização, e naturalmente ninguém vai lembrar de cabeça o que está registrado em um arquivo com o nome IMG_4342.CR2. O Luminance não consegue ler tags Exif de arquivos TIFF, e eu não consegui abrir conversões para JPEG das minhas imagens raw – o Luminance reclamava de tamanho inválido, qualquer que fosse o tamanho dessas imagens.
A etapa do alinhamento também é problemática; o algoritmo de limite médio travou todas as vezes em que tentei usá-lo, e o mesmo geralmente acontecia com o align_image_stack. Acabei optando por alinhar minhas imagens de teste diretamente no Hugin, o que também é meio cansativo. A documentação do wiki está defasada (é de duas versões atrás) e não consegui decifrar qual combinação de caixas de seleção eu tinha que marcar para que o Hugin alinhasse as imagens geometricamente sem tentar mesclar suas configurações de exposição. De qualquer forma, esse trabalho todo foi à toa, porque o Luminance não conseguia mesmo ler os arquivos TIFF gerados pelo Hugin. Seguindo uma dica que peguei no wiki do Hugin, tentei usar o hdrprep (feito em Perl) para fazer o alinhamento, mas ele também não conseguiu ler os dados Exif das imagens TIFF.
Tela de edição do Luminance HDR 2.0.1
As ferramentas de alinhamento manual oferecem um controle mais minucioso, incluindo diversas maneiras de sobrepor duas imagens na tela e uma função de mascaramento chamada “Anti Ghosting”. Infelizmente essas ferramentas também decepcionam um pouco, principalmente por não permitirem a correção de problemas de rotação, cuidando apenas de mudanças de pixels na horizontal e na vertical. Mesmo batendo fotos com um tripé, é natural que o vento e a trepidação da câmera gerem alterações na rotação.
Também é difícil fazer uma escolha consciente entre os perfis de HDR, que têm nomes que vão de “Profile 1” a “Profile 6”. A função de peso, a curva de resposta e as opções de algoritmos de criação são igualmente opacas, e como a instalação da versão 2.0.1 a partir do código fonte evidentemente não inclui o manual de usuário, só resta ao usuário que se confundir procurar na internet o significado da terminologia HDR.
Fluxo de trabalho de HDR: saída de imagem
O Luminance é capaz de salvar diretamente em vários formatos de imagem HDR, incluindo o Logluv TIFF e o OpenEXR. Esses formatos usam números de ponto flutuante em vez de números inteiros para os dados dos pixels, e por isso podem codificar um espectro bem mais amplo de valores totais – potencialmente 38 f-stops, dependendo das opções.
Isso está muitas e muitas vezes acima do que um monitor moderno de PC pode exibir, então o Luminance oferece um “visualizador” HDR que permite explorar uma imagem HDR ajustando os valores de gama e exposição com controles deslizantes. A princípio, isso pode confundir os novos usuários, porque à primeira vista parece que o processo de importação e mescla de imagens fonte produz apenas outra imagem LDR, mas o fato é que o visualizador mostra apenas uma parte da imagem de cada vez, graças às limitações físicas da tela.
Se seu objetivo for salvar a imagem como OpenEXR ou algum outro formato, você poderá fazer isso após a importação. Porém, na maior parte do tempo, o que vai lhe interessar é outra das tarefas principais do Luminance: a compressão da imagem HDR em um formato LDR comum, preservando ao máximo a quantidade de detalhes. Isso pode ser feito pela entrada “Tonemap HDR image” do menu, que abre uma área de trabalho na qual é possível selecionar e testar nove algoritmos diferentes de mapeamento de tonalidades, gerando miniaturas de imagens para visualização antes que você aplique o seu favorito.
Mais uma vez, a interface de usuário complica as coisas, apresentando uma lista formidável de opções técnicas sem maiores explicações. É claro que esse tipo de coisa já era de se esperar em alguns níveis: os algoritmos têm nomes científicos (do tipo que seria reprovado pela equipe de marketing), como Mantiuk ’06 e Reinhard ’02 (são os nomes de seus criadores). Mas sem ler a documentação original, é inviável ter esperanças de que um usuário vá decifrar todas as configurações individuais. O algoritmo Ashikhmin, por exemplo, tem uma caixa de verificação com o nome “Simple”, e um botão de opção que permite escolher entre “Equation Number 2” e “Equation Number 4”. Quem sacar o que isso significa sem dar uma pesquisada merece uma medalha.
Tela de tonemap do Luminance HDR 2.0.1
Pelo menos o Luminance acerta ao permitir a realização de experiências com várias imagens de teste, comparando-as lado a lado. Outras partes da interface pecam por não oferece funções de backup e undo. Mas os fins justificam os meios, e a saída final é o que importa. Se o usuário experimentar os algoritmos e acabar tropeçando em algum resultado agradável, ele vai ficar feliz da vida mesmo que as fórmulas que o levaram a esse resultado continuem sendo um mistério.
O problema da usabilidade
O problema do algoritmo de mapeamento de tonalidades levanta uma questão importante para o Luminance e para outros aplicativos gráficos de nicho: será quesempre é possível criar uma interface de usuário com simplicidade para novatos, ou algumas tarefas são complicadas por natureza? Será que os usuários realmenteprecisam dos nove algoritmos de mapeamento de tonalidades? Talvez o Luminance possa passar por uma reforma para esconder do usuário todos os detalhes matemáticos, ou ganhar uma cara mais amigável… mas esse processo talvez acabe destruindo o aplicativo, transformando-o em um brinquedo. A mesma questão poderia ser imposta ao Hugin, ou a muitos plugins complexos do GIMP.
Eu costumo pensar que os fotógrafos têm uma capacidade maior de compreender as assustadoras tarefas matemáticas e teóricas com as quais têm que lidar. A maioria deles já se acostumou aos algoritmos arcanos de remoção de ruído e “desmosaico” encontrados nos editores de imagens raw. Embora seja frustrante trabalhar no Luminance 2.0.1 por diversos motivos, a maior parte do problema não está no excesso de terminologia técnica, mas sim nas questões de usabilidade e interface que atingem qualquer projeto com uma equipe menor do que o necessário: falta de visualização de miniaturas, falta de dicas de ferramenta, falta de botões para desfazer ações, formatos de arquivo não suportados e travamentos repentinos. Na minha opinião, se esses problemas fossem resolvidos, quase todo mundo poderia se acostumar às peculiaridades da criação de imagens HDR e do mapeamento de tons.
O trabalho de Anastasia não vai ser fácil. Muitos cozinheiros diferentes já mexeram nessa panela nos últimos anos, e sem dúvida isso contribui com a perplexidade da interface de usuário e com a propensão a travamentos do programa. A prioridade de Anastasia é dar uma limpa nisso. Quem estiver interessado em ter uma ferramenta HDR de código aberto e de alta qualidade pode começar a torcer para que ele não perca o pique. A versão 2.0.1 se destinou apenas à correção de bugs, mas é um passo inicial empolgante, já que veio poucas semanas depois de Anastasia assumir o controle. Para comparar, um ano se passou entre a última versão 1.9.x e a versão 2.0.0. Hoje, o Luminance tem um mantenedor ativo, uma nova versão e um arquivo “TODO” incluído no pacote do código fonte, indicando o que precisa ser feito. A situação não é a ideal, mas pode ser o começo de algo bom.
Créditos a Nathan Willis – lwn.net
Tradução por Roberto Bechtlufft <info at bechtranslations.com.br>