Como aparar automaticamente imagens digitalizadas usando imagemagick ou graphicsmagick?

11

Tenho algumas imagens digitalizadas no formato * .jpg. Eles são digitalizados usando o scanner A4, em escala de cinza ou em cores. As páginas digitalizadas têm dimensões muito diferentes - alguns A5, A6, alguns cartões de visita etc. A tampa do scanner é branca.

Eu quero cortar todas as bordas brancas usando imagemagick ou graphicsmagick (essas ferramentas, porque quero processá-lo em lote). Entendo que a borda é digitalizada, portanto, não é perfeitamente branca e que às vezes pode causar cortes excessivos ou muito menores na imagem. No entanto, usando o parâmetro trim com fuzz, eu sempre fico com uma imagem muito grande. Por exemplo, usando a imagem do cartão de visita abaixo:

gm.exe convert -crop -fuzz 50% 01-pixelated.jpg 01-pixelated-gm.jpg

produz imagens que ainda não são cortadas da direita e da parte inferior. O resultado é o mesmo, independentemente do número que eu coloquei no parâmetro -fuzz.

Você poderia testá-lo e aconselhar a linha de comando que fará o trabalho?

insira a descrição da imagem aqui

Arek
fonte
Deseja aparar diretamente nas margens do texto / conteúdo ou nas margens do pedaço de papel, qualquer que seja o tamanho (A4, A5, A6)? No seu exemplo, o limite inferior do cartão não é visível - não sei como você espera detectá-lo.
willus
Quero que seja aparado nas bordas do conteúdo.
Arek

Respostas:

9

No ImageMagick, tente este comando:

convert input.jpg -fuzz 80% -trim +repage output.jpg

Testei com o ImageMagick 6.4.4 Q16 e, a partir da imagem que você vinculou, obtive esta imagem de saída:

resultado

Andrea
fonte
tão óbvio, eu desencontro -trim com -crop. Obrigado!
19413 Arek