Quero digitalizar uma coleção de fotos retangulares, coloridas e em preto e branco. Geralmente estou bastante satisfeito com a digitalização, mas me deparo com alguns problemas práticos, devido ao fato de as fotos serem colocadas à mão e podem não estar bem alinhadas com a tela de digitalização (ou as bordas do scanner)
Presumo que minha foto foi digitalizada em um retângulo de fundo branco contendo a imagem retangular que eu quero, possivelmente não alinhada com a borda do retângulo branco.
Existe um aplicativo (preferencialmente rodando no Linux) que pode girar automaticamente a digitalização para que as bordas da imagem fiquem horizontais/verticais? Se também cortar o fundo branco ao redor, é ainda melhor (embora o design adequado do Unix separe esse problema).
Eu sei fazer isso à mão com o Gimp, verificando a rotação com os olhos. Mas eu gostaria de fazer isso automaticamente.
Para tornar as coisas mais claras com imagens reais: dada a primeira imagem abaixo com a borda branca irregular, gostaria de extrair automaticamente a segunda, sem nenhum branco ao redor.
Nota: Eu tive que adicionar a linha tracejada para mostrar as bordas da primeira imagem. Se você deseja testar uma solução proposta para a extração automática, deve usar esta imagem .
Parece que você está procurando ImageMagick . Isso normalmente é instalado por padrão com muitas das distribuições mais populares. Caso contrário, você pode usar seu gerenciador de pacotes de distros para instalá-lo.
Rotação normal da imagem
ImageMagick inclui muitas ferramentas CLI, uma das quais é
convert
. Usandoconvert
você pode girar imagens assim:Há muitos outros exemplos de uso
convert
aqui . O restante das ferramentas incluídas no ImageMagick pode fazer edição, dimensionamento e anotação de imagens.Desinclinação
O outro método para girar imagens que normalmente estão um pouco na vertical ou na horizontal é chamado de desinclinação.
Na ajuda das opções de linha de comando on-line do ImageMagick :
Para usar esta opção, você usaria a
convert
ferramenta CLI que é outra das ferramentas CLI do ImageMagicks:Referências
Recentemente precisei digitalizar o conjunto de mais de 500 fotos feitas por câmeras de filme. E precisava cortar e girar automaticamente todos eles.
Esses parâmetros que funcionaram melhor para mim:
E aqui se você quiser aplicá-lo à pasta inteira:
Ao ler esta postagem no blog , encontrei este script bash que usa o ImageMagick : baixe-
chmod +x
o e, em seguida, consegui girar e cortar minhas fotos digitalizadas com o seguinte comando:-c 50,50
é detectar a cor de fundo do pixel em 50,50 (o padrão é 0,0)-f 40
é o "valor fuzz para separar a cor de fundo expresso em porcentagem" (o padrão é 10)-d 50
irá descartar qualquer região que tenha uma largura ou altura menor que este tamanho (o padrão é não descartar nada)Aqui está um script bash para executar este comando para qualquer arquivo jpg na pasta atual e colocar as fotos extraídas na
extracted
subpasta: