Detectando e excluindo imagens em branco obtidas de scanner
Publicado por Marcos Alves Pintar (última atualização em 23/01/2015)
[ Hits: 3.559 ]
Este script é para quem lida com imagens obtidas de scanner com alimentador automático de documentos e faz frente e verso em uma única passada. Deixar que o scanner sempre escaneie os dois lados e depois excluir a imagem sem conteúdo acaba sendo a forma mais prática e rápida para grandes volumes.
O script detecta automaticamente quais imagens contidas em um diretório estão em branco, e então apaga o arquivo. Se a imagem tiver um conteúdo ainda que mínimo, tipo um pingo de caneta, é mantida.
Testado em imagens de resoluções próximas a 2500x3500 pixels.
Dependências: python e imagemagick.
#!/usr/bin/python
# -*- coding: UTF8 -*-
import subprocess
import shlex
import os
for img in os.listdir('./'):
args = shlex.split("convert -limit thread 4 {0} -sigmoidal-contrast 10,26% -blur 0x0.2 -fuzz 15% -trim info:".format(img))
trim = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
trim.wait()
saida, erro = trim.communicate()
saida_str = saida.decode("utf-8")
trim_area = saida_str.split()
if trim_area[2] == '1x1':
print ('{0} não possui conteúdo'.format(img))
os.remove(img)
Pyconv - Conversor de codificação de caracteres
ShellCrypTor criptografador de dados
Leitor de arquivo via linha de comandoEs
Nenhum comentário foi encontrado.
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como automatizar sua instalação do Ubuntu para desenvolvimento de software.
Consertando o áudio com som ruim no Pipewire
Como implementar Raid (0, 1, 5, 6, 10 e 50)
fusermount3 no Ubuntu 25.10 - mantenha o perfil do AppArmor
[Resolvido] dlopen(): error loading libfuse.so.2 AppImages require FUSE to run.
Servidor Ubuntu 24.04 HD 500 não tenho espaço na \home\adminis... (2)
Como programar um sistema de controle para distribuições linux em c? (3)









