Crie uma planilha a partir dos dados exif das suas fotografias

Incluir dados EXIF das suas imagens pode ajudar a entender melhor como você fotografa, como hobby ou a trabalho.
Estes dados podem ajudar a entender aonde você precisa melhorar, que tipo de lente você realmente precisa (caso pense em comprar uma nova) etc.

Um tempo atrás, montei uma planilha ilustrativa do meu uso da Canon EFS 18-55mm (uma das lentes mais comuns em kits) e fiquei impressionado com o fato de que eu quase não fotografava abaixo dos 35mm de distância focal. Raramente usava o ajuste de 18mm.

Se eu tivesse o objetivo de comprar uma lente nova, àquela época, já estariam claras as minhas distâncias focais favoritas.
Como eu era iniciante na fotografia, entendi que precisava, mesmo, praticar o uso do ângulo mais aberto.

O uso da planilha me proporcionou a descoberta de novos momentos de diversão, fotografando cenas de rua e paisagens.

Neste post, vou mostrar como montei a minha planilha. Você pode alterar facilmente os meus exemplos para adequá-los às suas necessidades e às lentes que você tem aí.
Fique à vontade para me contar os resultados que obteve (e o que vai fazer com eles) nos comentários! 🙂

Baixe e instale o exiftool

O exiftool é uma ferramenta voltada para usuários avançados, desenvolvida por Phil Harvester em linguagem Perl.
O aplicativo pode ser usado para alterar os dados EXIF — mas vamos focar apenas algumas de suas propriedades de leitura de arquivos de imagens.

Se você já deu uma olhada em outros posts deste site, deve ter percebido que fotografo com uma Canon e uso o Linux, como sistema operacional, no computador.
Portanto os meus exemplos irão girar em torno destes 2 elementos. Contudo o exiftool tem versões para MacOS e Windows também — ou seja, tudo o que você ler aqui, pode ser aplicado ao seu sistema sem problema algum.

Usuários Linux, em geral, já têm o exiftool instalado por padrão em seus sistemas. Os demais, podem encontrar o software para download no site oficial (links ao final do texto).

Como extrair dados EXIF dos arquivos de imagens

O EXIF é uma sigla para Exchangeable Image File Format ou formato de arquivo de imagem intercambiável.
Apesar de se referir a arquivos de imagens, o formato pode ser encontrado em arquivos de áudio e vídeo também — dentre os mais de 200 tipos suportados, como FLAC, MP3, MP4, AVI, CRW, JPEG etc).

Há várias ferramentas disponíveis para ler e manipular este tipo de informação, o exiftool é uma delas.
Para obter dados legíveis para a nossa planilha eletrônica, vamos usar um recurso simples, chamado piping, que consiste em direcionar a saída geral do comando para um arquivo de texto:

exiftool sequencia-de-comandos > arquivo.txt

Para executar o exiftool em todos os arquivos JPEG do diretório (pasta) atual, use-o assim:


exiftool *.jpg

Para enviar o resultado para um arquivo texto, faça o piping:


exiftool *.jpg > info-imagens.txt

Você pode usar o nome que quiser para o seu arquivo txt. O fato é que ele pode ser aberto no seu programa de planilha favorito, do jeito que ele se encontra.

Para obter uma formatação mais adequada para planilhas, use a opção ‘-T’, na linha de comando:


exiftool *.jpg -T > info-imagens.txt

Se você prefere trabalhar apenas sobre as imagens RAW, indique isso na linha de comando:


exiftool -ext cr2 -T ./ info-imagens.txt

Acima, indicamos que as imagens de leitura deveriam as “cruas” da Canon (-ext cr2). Se as suas são da Nikon, use ‘-ext nef’.

Se você usa equipamento da Canon, pode formatar a saída de acordo com as tags próprias da marca:


exiftool -ext cr2 -T -canon ./ info-imagens.txt

Acrescente a opção ‘-r’ para ir “mais longe”, ou seja, pesquisar recursivamente em todos os subdiretórios:


exiftool -ext cr2 -T -canon -r ./ info-imagens.txt

Use o comando grep para refinar os resultados. No exemplo abaixo, filtramos a saída do comando, para exibir apenas as informações pertinentes à lente Canon EFS 18-55mm:


exiftool -ext cr2 -T -canon -r ./ | grep "18.0 - 55.0" > info-imagens.txt

Outra forma de obter a lista é indicando exatamente quais as tags você quer obter, apenas.
Assim, é possível obter um arquivo de dados (em texto) muito mais enxuto:


exiftool -FileName -Lens -LensType -LensID -ExposureTime -FocalLength -Aperture -ISO -T -ext cr2 -r ./ > info-imagens.txt

Em geral, para mim, apenas isso é o suficiente:


exiftool -FocalLength -Aperture -ISO -T -ext cr2 -r ./ > info-imagens.txt

Isto é tudo que você precisa para ter um arquivo usável para a sua planilha. No LibreOffice, já é possível trabalhar em cima destes dados. Veja a imagem abaixo:

planilha libreoffice
Como eu usei a minha Canon com a lente do kit EFS 18-55mm

No meu caso, removi/ocultei todas as colunas que não seriam relevantes para as minhas análises de uso da lente em questão.
Adicionei, ao final das colunas com os valores de abertura, ISO e distância focal os cálculos das médias.

No LibreOffice, a média é calculada com o uso da função de mesmo nome, indicando entre parênteses a primeira células e a última da coluna com os valores que queremos.

No meu caso, ficou assim:

=MÉDIA(F5:F1551)

Desta forma, pude verificar que fotografava predominantemente usando valores de aberturas de 6.5, ISO 650 e distância focal de 49mm.

Quais foram os seus resultados?

Referências

Download do exiftool: https://www.sno.phy.queensu.ca/~phil/exiftool/.
Mais artigos sobre o exiftool: https://elias.praciano.com/?s=exiftool+RAW.

Como extrair dados exif de arquivos de imagens para montar uma base de dados ou planilha.

O exiftool é uma ferramenta de nível avançado, desenvolvida por Phil Harvester (em linguagem Perl), desde 2003.
O utilitário tem desenvolvimento ativo e versões para Linux, MacOS e Windows.

Links para download, ao final do artigo.
Este post não vai mostrar como desenvolver o banco de dados ou a planilha, em si… mas apenas como obter a base de dados, em texto, que você precisa para analisar suas imagens dentro de uma planilha completa ou dentro de um banco de dados de verdade.

O exiftool permite verificar imagens recursivamente em um diretório (pasta) e oferece suporte a aproximadamente 200 tipos de arquivos.
Dentre estes, a ferramenta é capaz de ler dados EXIF de arquivos JPEG e RAW de diversas marcas e modelos de câmeras.
Nos meus exemplos, vou mostrar predominantemente o uso do utilitário em arquivos .CR2 (um dos formatos RAW da Canon).

Se você tiver dúvidas, leia outros artigos sobre o exiftool, neste mesmo site.

Como usar o exiftool recursivamente

Abra um terminal e vamos à diversão! 😉
Em outros posts, mostrei como rodar o utilitário sobre um único arquivo.

exiftool nome-do-arquivo

Também mostrei como usar o find para executar o programa sobre uma grande quantidade de arquivos, recursivamente, espalhados por vários subdiretórios.
Desta vez, vamos dispensar o find — mas o comando grep ainda será usado para refinar nossos resultados.

Para rodar o exiftool recursivamente, a partir do diretório atual, use a opção -r seguida do nome do diretório ou (no Linux e no MacOS) use um ‘./’:


exiftool -r ./ 

A depender da quantidade de arquivos presentes, a execução pode ser um pouco demorada.

Como refinar as buscas para obter resultados mais enxutos

Como você deve ter notado, o aplicativo possui vários campos, dentro dos quais escreve as informações obtidas dos arquivos.

Você pode fazer uma filtragem dos resultados por strings (usando o grep ou não) ou pelas tags (etiqueta) para ser encontrada e exibida.
Os meus exemplos estão aí para serem editados, alterados para atender às suas necessidades.

Como restringir a busca a um tipo de arquivo (cr2, no meu caso) dentro de um diretório (Imagens/junho) recursivamente (-r):


exiftool -ext cr2 -r Imagens/junho/

Veja como restringir a sua busca a apenas um tipo de lente:


exiftool -ext cr2 -T -r ./ | grep "18.0 - 55.0"

Se você usa câmeras Canon, pode obter listagens com o formato padrão da marca, acrescentando ‘-l -canon’ à linha de comando:


exiftool -ext cr2 -l -canon -r 05/

No exemplo, acima, ’05/’ é o nome da pasta em que a busca está sendo feita.


exiftool -T -aperture -ext cr2 -r 05/

Você pode ignorar os outros campos de dados EXIF e listar apenas os nomes dos arquivos que satisfaçam alguma condição:


exiftool '-*EF75-300mm*' -r 05/

Como passar os resultados para uma planilha

Os resultados podem ser formatados, de maneira bem básica, com as opções -T ou -t e serem gravadas em um arquivo. Para gravar o resultado da sua consulta em um arquivo, basta acrescentar ‘> nome-do-arquivo.txt’ ao final da linha de comando.
Este arquivo poderá ser aberto por qualquer aplicativo de planilhas, posteriormente.


exiftool -ext cr2 -t -l -canon -r 05/ > maio2018.txt

Se preferir, use ‘-common’ para restringir o resultado às meta informações mais comuns:


exiftool -ext cr2 -t -common -r 05/ > maio2018.txt

… ou use ‘-T’ (em maiúscula) no lugar de ‘-t’, para obter uma separação dos dados em tabela. Acho esta formatação melhor para trabalhar em planilhas — para determinar a média de abertura que uso, quantas vezes usei uma determinada lente etc.
planiha libreoffice calc

Com um script (na sua linguagem preferida) também é possível iniciar e continuar alimentando um banco de dados com os dados EXIF das suas fotos.

referências

Usuários Linux já têm o exiftool instalado, na maioria das grandes distribuições.
Quem usa MacOS e Windows, pode baixar do site oficial: https://www.sno.phy.queensu.ca/~phil/exiftool/.

Use o exiftool para descobrir como você fotografa

O exiftool é uma ferramenta CLI voltada para a obtenção de informações EXIF ou meta tags de arquivos diversos.
Se você usa MacOS ou Windows, baixe sua cópia do programa no site oficial (link ao final do artigo).

Se você usa Linux (que nem eu!), ele provavelmente já estará instalado aí, com suporte a aproximadamente 200 tipos de arquivos.

Neste universo de possibilidades, a ferramenta suporta a leitura de dados contidos em arquivos de imagens JPEG, bem como, em arquivos RAW de vários fabricantes.

O próprio Flickr usa o exiftools para manipular e analisar as informações das imagens de suas comunidades.

Neste post, vou mostrar como usar o programa para obter informações, de dentro dos arquivos. Vou, ainda, mostrar como associar o utilitário aos comandos grep e find, para refinar a sua busca e obter apenas resultados relevantes para o seu contexto.

Se você já tem dezenas de milhares de fotos e já usou várias lentes para produzir suas imagens, com estas ferramentas é possível montar algumas estatísticas sobre os seus hábitos ao fotografar.

Este tipo de informação pode ser muito útil para quem pensa em comprar uma nova lente, mas se encontra em dúvida sobre se o investimento irá ser realmente útil ou não.

Em outras palavras, faz sentido conhecer a distância focal que você prefere usar — mesmo nas lentes de zoom — antes de começar a analisar as opções disponíveis nas lojas.

Por exemplo, se você já se encontra há um ano usando uma das lentes que costuma vir com os kits de câmera e está pensando em qual poderia ser a próxima aquisição, seria muito interessante saber como você prefere trabalhar antes de tirar a carteira do bolso.

As lentes do kit costumam ser lentes de zoom, com distâncias focais variando entre 18-55mm, 55-250mm ou 75-300mmm (pelo menos, no caso da Canon).
Dentro da distância focal da lente do seu kit, você deve estar usando uma ou outra com predominância.

Isto quer dizer que, se você costuma fotografar frequentemente a aproximadamente 40mm, esta poderia ser a lente prime a ser sondada, na próxima compra.

As ferramentas descritas neste texto já foram abordadas com maior profundidade em outros posts, caso você queira saber um pouco mais sobre cada uma delas:

  1. O comando grep
  2. O comando find
  3. O comando exiftool

Execute o exiftool diretamente no arquivo

A ferramenta pode ser simplesmente aplicada a um ou vários arquivos de um diretório:


exiftool minhasfotos/img_2365.cr2

Para analisar todas os arquivos do diretório (ou da pasta), use-a assim:


exiftool minhasfotos/*.cr2

Altere os meus exemplos à sua realidade, aí.
Este segundo comando pode ser modificado para mostrar resultados mais específicos.
Veja como obter os valores das aberturas (aperture) usadas nas fotografias desta mesma pasta:


exiftool minhasfotos/*.cr2 | grep "Aperture" 

Note que os arquivos .cr2 correspondem aos “arquivos crus” das câmeras Canon. Se você tem arquivos com extensões diferentes, adeque o comando ao seu caso.
A tag (ou etiqueta) “Aperture” também pode variar em função das preferências do fabricante.
Se você fotografa sempre em JPEG, estas informações também estarão lá.
Fique atento.
Decida qual a meta tag mais importante para você e faça a sua busca.

O comando find pode ser usado para serviço mais pesado. No exemplo que segue, todas as pastas serão vasculhadas, recursivamente, a partir do diretório atual.

Neste caso, o resultado pode demorar bastante — vai depender da quantidade de imagens que você tem aí.
No meu caso, são milhares de imagens, dentro do diretório ‘Imagens’, espalhadas em vários subdiretórios. Decidi por todas as referências a abertura (Aperture) em um arquivo aberturas.txt — para verificar posteriormente, em separado. Ficou assim:


find ./ -name '*.cr2' -exec /usr/bin/exiftool {} \; | grep "Aperture" > aberturas.txt

O arquivo ficou com aproximadamente 8 mil linhas, embora sejam apenas 1564 arquivos de imagens RAW — mas a palavra “aperture” aparece, em média, mais de 4 vezes no resultado do exiftool de cada um.

Para saber quantas vezes usei a abertura 1.8, posso recorrer novamente ao grep:


cat aberturas.txt | grep "Aperture                        : 1.8"| wc -l

456

Este resultado mostra que o valor é usado em quase 1/3 das fotos.

Como descobrir a distância focal favorita nas suas fotos

Este é um dado bastante interessante, para quem pretende comprar uma lente nova — principalmente se for uma fixa (ou prime).
Saber qual a distância focal (ou focal length) que você mais usa nas suas sessões, pode ajudar determinar qual lente seria mais útil para você.
Para encontrar o meu resultado, novamente usei aqueles 3 comandos:


find ./ -name '*.cr2' -exec /usr/bin/exiftool {} \; | grep "Focal Length                    :" > distfocal.txt

No meu caso, o campo “Focal Length” se repete para cada foto em uma linha em que é dada uma distância focal equivalente. Para excluir esta redundãncia, acrescentei um “grep -v” ao final da linha de comando:


find ./ -name '*.cr2' -exec /usr/bin/exiftool {} \; | grep "Focal Length                    :" | grep -v "equivalent" > distfocal.txt

Desta forma, consigo obter um arquivo distfocal.txt com exatamente 1564 linhas — número igual ao de arquivos de imagens RAW .cr2.

Uso muito a lente do kit 75-300mm, e creio que seria interessante saber, exatamente, qual a distância focal mais usada dentro destes limites.
Esta informação pode ajudar a determinar qual lente prime seria mais útil para o meu caso: 85mm, 100mm, 135mm etc.

Conclusão

Por um lado, acredito que 1564 fotos pode ser um número muito pequeno para ser analisado, com o objetivo de determinar qual a sua distância focal favorita.
Isto varia de pessoa para pessoa.
Neste momento, acho os meus dados insuficientes para determinar “a minha maneira favorita” de fotografar.

Levar os dados obtidos para dentro de uma planilha é uma alternativa mais eficiente para obter informações sobre a maneira como você usa seu equipamento.

Eu prefiro sair para uma sessão de fotos, com apenas uma lente de zoom e brincar bastante.
Ao voltar, transfiro minhas imagens para o computador. Em seguida, rodo o exiftool, combinado com o grep, na pasta das fotos e observo as minhas estatísticas.

Me conte se você já descobriu qual a sua maneira favorita de fotografar e qual a sua lente ou distância focal preferida 😉

Link para o site oficial de downloads e documentação: https://sno.phy.queensu.ca/~phil/exiftool/.

Leia também meus outros artigos sobre o exiftool.

Use o exiftool para extrair detalhes sobre seus arquivos multimídia

O exiftool é uma ferramenta CLI, que pode ser usada para obter informações de diferentes tipos de arquivos de áudio, imagem e vídeo.
Pode também ser usado para alterar ou acrescentar novos dados meta em seus arquivos.

Neste post, vou mostrar como a ferramenta pode ser usada para extrair algumas informações.
Usarei como exemplo alguns arquivos de imagem RAW, mas os princípios são os mesmos para outros tipos de arquivos, tais como JPEG, MP3, FLAC, AVI, MPEG etc.

Consulte o manual (man exiftool) para obter uma lista de tipos de arquivos suportados — são aproximadamente 200.

Relação de tipos de arquivos suportados pelo exiftool
Clique para ver detalhes.

Quem tem vários arquivos de áudio (MP3, OGG, FLAC etc) pode editar nomes de autores, de álbum etc dentro dos arquivos. Estas informações (meta tags ou etiquetas meta), em geral, são lidas e exibidas no visor do seu MP3 Player.
Nas câmeras, estas informações são armazenadas nos arquivos “crus” ou nos JPEGS — e costumam dar informações importantes como data, local, distância focal da lente etc. relacionadas às suas fotos.

Canon JPEG meta tags
Clique para ver detalhes.

O acesso a estas informações ajuda o seu sistema a organizar arquivos de mídia a partir das informações contidas neles.

Como obter informações de arquivos de mídia a partir do exiftool

No gerenciador de arquivos Nautilus, estas informações podem ser obtidas sem o uso do exiftool. Para isso, selecione o arquivo e tecle Ctrl + Enter sobre ele. As meta tags costumam ser listadas na última aba do painel de informações do arquivo.

Na CLI (linha de comando), o programa oferece uma interface e um uso bem simplificado. Basta executá-lo, seguido do nome de um arquivo:


exiftool img_4380.cr2

No exemplo, acima, rodei o exiftool em um arquivo de imagem RAW da Canon.

O comando grep pode ajudar a refinar o resultado, listando apenas as informações que se deseja obter. No exemplo, a seguir, o comando é usado para extrair a informação sobre a duração de uma música, de um arquivo MP3.


exiftool ~/Música/Chico\ Buarque/Caravanas/04\ -\ Jogo\ de\ Bola.mp3 | grep -i duration

Duration                        : 0:02:51 (approx)

Para obter informações de arquivos de vídeo ou imagem siga a mesma lógica.
Abaixo, veja como obter informações sobre a lente usada para tirar uma foto:


exiftool ./06/05/img_4380.cr2 | grep -i lens

Lens Type                       : Canon EF 17-35mm f/2.8L USM or Sigma Lens
Lens Info                       : 30mm f/?
Lens Model                      : 30mm
Lens Serial Number              : 0000000000
Lens                            : 30.0 mm
Lens ID                         : Sigma 30mm f/1.4 EX DC HSM
Lens                            : 30.0 mm (35 mm equivalent: 47.2 mm)

A ferramenta pode ser usada também para levantar dados de arquivos remotos, em sites da Internet. Para isto, você usa o piping acompanhando o comando do curl, assim:


curl -s https://assets.ubuntu.com/v1/8dd99b80-ubuntu-logo14.png | exiftool -fast -

ExifTool Version Number         : 11.00
File Type                       : PNG
File Type Extension             : png
MIME Type                       : image/png
Image Width                     : 540
Image Height                    : 243
Bit Depth                       : 8
Color Type                      : RGB with Alpha
Compression                     : Deflate/Inflate
Filter                          : Adaptive
Interlace                       : Noninterlaced
SRGB Rendering                  : Perceptual
Background Color                : 255 255 255
Pixels Per Unit X               : 2834
Pixels Per Unit Y               : 2834
Pixel Units                     : meters
Modify Date                     : 2011:06:28 17:04:37
Image Size                      : 540x243
Megapixels                      : 0.131

Use o shotwell para transferir imagens da sua câmera para o computador

O aplicativo Shotwell faz parte dos repositórios oficiais de várias distribuições GNU/Linux e pode ser usado para visualizar, organizar e editar suas imagens.
De fato, ele pode vir pré-instalado apenas na versão “visualizador” em algumas distribuições.

Se você não o tiver instalado aí, use o gerenciador de pacotes da sua distro para encontrá-lo.
O visualizador básico, contudo, se já estiver presente, é o suficiente para quem apenas quiser transferir arquivos de imagens de um cartão de memória ou diretamente da câmera.
Shotwell install

Transferência de imagens

Usualmente, ao inserir um cartão (micro)SD no leitor do laptop, o Nautilus irá abrir o seu conteúdo e mostrar um botão de sugestão “para abrir as imagens no Shotwell”, conforme a imagem abaixo.
Shotwell botão no nautilus

Ao clicar no botão “Shotwell”, o visualizador irá exibir as últimas imagens importadas.

Para acessar o cartão de memória, o dispositivo de armazenamento externo ou a câmera, clique em “Mass storage…” dentro da aba lateral, à esquerda.

A depender da velocidade de acesso do dispositivo, pode demorar um pouco para exibir os arquivos de imagens disponíveis para transferência.
janela do shotwell

Neste ponto, eu costumo clicar em “Importar todas”, no rodapé (à direita) da janela do Shotwell.
Com esta opção, apenas os arquivos que ainda não foram transferidos, serão baixados.
Não se preocupe. Você não vai acabar com arquivos redundantes no seu computador.

Quando ele terminar a importação, irá perguntar se mantém os arquivos no dispositivo de armazenamento externo ou acoplado. É seguro selecionar “Apagar”, para liberar espaço.
Se houver arquivos redundantes, você será avisado também.
arquivos redundantes

Na aba “Última importação”, são mostrados os arquivos que você transferiu recentemente.

Você também pode ver os seus arquivos dentro do gerenciador de arquivos da sua distro. Como comportamento padrão, o Shotwell irá criar uma pasta com o ano constante nas informações de gravação de seus arquivos (2018, 2019 etc) dentro da pasta Imagens, no seu sistema.

Outras subpastas (subdiretórios) serão criados para os meses e dias relativos a cada imagem.

O Shotwell lida com seus arquivos RAW

Se você costuma fotografar em RAW, o Shotwell irá baixar suas imagens neste formato, sempre retirando a versão em JPEG, embutida (embedded) no arquivo “cru”.
Assim, o gerenciador de arquivos irá exibir as duas versões (RAW e JPEG) lado a lado na pasta.
Ubuntu Nautilus

Este comportamento torna mais ágil a análise das imagens, de outros visualizadores que só podem ler JPEG. Este formato é carregado muito mais rápido, o que permite fazer uma pré-seleção (i.e. jogar fora o que você não quer, por exemplo) muito mais eficiente e ágil.

Atualmente, o Shotwell tem suporte a edição das imagens RAW — não destrutiva, claro.

Ou seja, o Shotwell não modifica suas fotografias originais.
As edições (corte, ajuste de cores etc.) são guardadas em um arquivo à parte, enquanto o original permanece intocado.
Ao carregar a imagem novamente, o banco de dados de retoques será consultado para mostrá-la com as alterações que você fez.
Isto quer dizer que sempre será possível desfazer as alterações feitas em suas imagens, usando o Shotwell.

A tecla Shift também pode ser usada, para mostrar as imagens na tela, conforme estavam originalmente.