Come tagliare automaticamente le immagini scansionate usando imagemagick o graphicsmagick?


11

Ho alcune immagini scansionate in formato * .jpg. Vengono scansionati utilizzando lo scanner A4, in scala di grigi o a colori. Le pagine scansionate hanno dimensioni molto diverse: alcune A5, alcune A6, alcuni biglietti da visita ecc. La copertina dello scanner è bianca.

Voglio tagliare tutti i bordi bianchi usando imagemagick o graphicsmagick (quegli strumenti, perché voglio elaborarlo ulteriormente in batch). Capisco che il bordo è scansionato, quindi non perfettamente bianco e che a volte può causare il taglio troppo o troppo meno dell'immagine. Comunque usando il parametro trim con fuzz ottengo sempre un'immagine troppo grande. Ad esempio, usando l'immagine del biglietto da visita di seguito:

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

produce un'immagine che non è ancora tagliata da destra e in basso. Il risultato è lo stesso, indipendentemente dal numero che ho inserito nel parametro -fuzz.

Potresti testarlo e consigliare la riga di comando che farà il lavoro?

inserisci qui la descrizione dell'immagine


Vuoi tagliare fino ai bordi del testo / contenuto o ai bordi del foglio di carta, qualunque sia la dimensione (A4, A5, A6)? Nel tuo esempio, il limite inferiore della carta non è affatto visibile - non so come ti aspetti di rilevarla.
willus,

Voglio che sia tagliato ai bordi del contenuto.
Arek,

Risposte:


9

In ImageMagick provare questo comando:

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

L'ho provato con ImageMagick 6.4.4 Q16 e, partendo dall'immagine che hai collegato, ho ottenuto questa immagine di output:

produzione


così ovvio, ho sbagliato -trim con -crop. Grazie!
Arek,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.