Domanda

Ho una directory che contiene un numero molto elevato di immagini JPG (scansioni di documenti cartacei), che sono tutti attualmente SRGB.

Molti ma non tutti non hanno il colore, o hanno colore solo come sfondo (ad esempio carta colorata o scansione leggermente off-white).

vorrei convertire in massa quelle immagini (ma non immagini che hanno colori reali) in scala di grigi, per salvare lo spazio su disco.

Suppongo che ci sia un modo per farlo con ImageMagick, ma non so come.Suggerimenti?

È stato utile?

Soluzione

L'utilità mogrify di ImageMagick sarebbe la soluzione più semplice.

mogrify -path /path/to/output/dir/ -colorspace Gray /path/to/source/files
.

La capacità di identificare quale documento si qualifica poiché i colori reali possono essere molto localizzati.Suggerirei di valutare il conteggio del colore se ogni immagine e convertire solo le immagini che abbandonano sotto una determinata soglia.

THRESHOLD=1024
FILES=`ls /path/to/source/files`
for FILE in ${FILES}; do
COLORS=`identify -format %k "$FILE"`
if [[ $COLORS -lt $THRESHOLD ]]; then
  mogrify -path /path/to/output/dir/ -colorspace Gray "$FILE"
fi
.

Potrebbe anche essere saggio valutare le opzioni di pre-elaborazione per ridurre il rumore. Monochrome sarebbe il più facile da applicare, ma altre grandi soluzioni esiste.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top