rilevamento automatico dimensioni per ritaglio (autocrop by image width) [messaggio #35607] |
ven, 04 febbraio 2011 14:00 |
Lutrin Messaggi: 108 Registrato: dicembre 2010 |
Senior Member |
|
|
molti progetti di digitalizzazione, con buona volontà, ma scarsamente
attrezzati tecnicamente, scansionano i libri a due pagine per volta
per poter ricavare da immagini a doppia facciata, immagini di singole
pagine, è necessario tagliarle al centro
tempo fa mi suggerirono uno script, in cui andavano immesse ogni volta le
dimensioni totali dell'immagine (larghezza e lunghezza) e altre misure
corrispondenti alla metà della larghezza (per ottenere le pagine
sinistre), e uno spostamento (offset) pari anch'esso alla metà della
larghezza per ottenere le pagine destre
così, ad esempio, se una immagine ha dimensioni:
2395x1736
1152x1736+0+0 (per ottenere le sinistre)
2395x1736+1152+0 (per ottenere le destre)
in uno script per imagemagick (io poi l'ho adattato a graphicsmagick che
ha una sintassì pressoché uguale e usa meno cicli macchina)
------------------------------------------------------------ ---------------
#!/bin/sh
if [ ! -e disp-par ]; then mkdir disp-par; fi
for FILE in *.jpg ; do gm convert -crop 1152x1736+0+0 "$FILE" "$FILE-
A.jpg" ; mv `ls *.jpg | grep A` disp-par ; gm convert -crop 2395x1736+1152
+0 "$FILE" "$FILE-B.jpg" && mv `ls *.jpg | grep B` disp-par
done ;
------------------------------------------------------------ ---------------
ma in questo modo sono costretto a immettere ogni volta le misure.
posso ricavare le dimensioni della prima della serie di immagini (aventi
la stessa larghezza) col comando:
gm identify -format '%w \n' *.png
e ottenere la metà di questa misura con:
X=`gm identify -format '%w \n' 0-000.jpg`;echo "scale=1;${X}/2" | bc
ma come inserirli nello script come argomento di -crop?
--
Puppy Linux wiki: http://dokupuppylinux.co.cc
Puppy Linux Forum: http://puppylinux.ilbello.com
Windows me genuit, Ubuntu rapuere / tenet nunc Puppy Linux...
|
|
|
Re: script per suddividere scansioni a doppia pagina in pagine singole [messaggio #35979 è una risposta a message #35607] |
dom, 20 febbraio 2011 22:01 |
Lutrin Messaggi: 108 Registrato: dicembre 2010 |
Senior Member |
|
|
On Fri, 04 Feb 2011 13:00:15 +0000, Lutrin ci disse:
> molti progetti di digitalizzazione, con buona volontà, ma scarsamente
> attrezzati tecnicamente, scansionano i libri a due pagine per volta
>
> per poter ricavare da immagini a doppia facciata, immagini di singole
> pagine, è necessario tagliarle al centro
[...]
ingegnandomi un po', ho poi risolto e concepito questo script in cui
calcolo la larghezza di ogni scansione a doppia facciata, la lunghezza e
la metà della larghezza, basandomi sulla lunghezza e la larghezza della
prima immagine della serie di scansioni a doppia facciata (le dimensioni
sono uguali per tutta la serie)
le tratto come variabili
e poi inserisco queste variabili nello script così che i valori siano
calcolati automaticamente, naturalmente sono possibili ulteriori
raffinamenti (a esempio come rilevare la prima immagine non immettendone
il nome, ma usando ls e poi head -n1) ma lo script funziona
uso graphics magick, ma eliminando *gm* lo script funziona anche con
imagemagick, di cui graphicsmagick è un clone
------------------------------------------------------------ ------
#!/bin/sh
mkdir disp-par
let "largmz=`gm identify -format '%w \n' *0-000.jpg`/2"
larg="`gm identify -format '%w \n' *0-000.jpg`"
lung="`gm identify -format '%h \n' *0-000.jpg`"
for FILE in *.jpg ; do gm convert -crop "$largmz"x"$lung"+0+0 "$FILE" "$FILE-A.jpg" && mv `ls *.jpg | grep A` disp-par ; gm convert -crop "$larg"x"$lung"+"$largmz"+0 "$FILE" "$FILE-B.jpg" && mv `ls *.jpg | grep B` disp-par
done ;
------------------------------------------------------------ ------
sono graditissimi eventuali commenti o critiche
legenda:
largmz = la metà della larghezza calcolata in base a quella rilevata
automaticamente da identify, le altre variabili sono la larghezza e
la lunghezza intere
--
Puppy Linux wiki: http://dokupuppylinux.co.cc
Puppy Linux Forum: http://puppylinux.ilbello.com
Windows me genuit, Ubuntu rapuere / tenet nunc Puppy Linux...
|
|
|
|
Re: script per suddividere scansioni a doppia pagina in pagine singole [messaggio #36005 è una risposta a message #35979] |
mar, 22 febbraio 2011 07:30 |
Mario M. Macaluso Messaggi: 10 Registrato: novembre 2010 |
Junior Member |
|
|
On Feb 20, 10:01 pm, Lutrin <elic...@olympo.it> wrote:
> On Fri, 04 Feb 2011 13:00:15 +0000, Lutrin ci disse:
>
> > molti progetti di digitalizzazione, con buona volontà, ma scarsamente
> > attrezzati tecnicamente, scansionano i libri a due pagine per volta
>
> > per poter ricavare da immagini a doppia facciata, immagini di singole
> > pagine, è necessario tagliarle al centro
questo potrebbe fare al caso tuo
http://unpaper.berlios.de
|
|
|