GIMP - creazione di uno script per elaborare png di un DV

Domandate qui se non riuscite ad installare i filtri o gli script, oppure se avete problemi legati alla creazione e modifica dei filtri. Qui si pongono le domande più tecniche.
Rispondi
moroboshi_84
Principiante
Principiante
Messaggi:5
Iscritto il:dom 5 gen 2014, 12:47
GIMP - creazione di uno script per elaborare png di un DV

Messaggio da moroboshi_84 » dom 5 gen 2014, 13:17

Salve a tutti,
come da titolo, vorrei usare GIMP, per l'elaborazione di una sequenza di immagini png ottenute da un video mini-dv, ottenuti in questo modo:

Codice: Seleziona tutto

avconv -y -i "path video dv/nome.dv" -an -vcodec png "path destinazione/out01/pic%04d.png"
A questi png, vorrei poter applicare i filtri (possibilmente scegliere quali):
Colori->Auto->Bilanciamento del bianco
Colori->Auto->Normalizza
Filtri->Miglioramento->Antialias
Filtri->Miglioramento->Deinterlaccia
Filtri->Miglioramento->Maschera di contrasto
Filtri->Miglioramento->Smacchiatura

Cordialmente, colgo l'occasione per augurare a tutti un buon anno!

Ps: sono ammessi consigli di ogni sorta e genere, del tipo la sequenza giusta di applicazione dei filtri o esistenza di filtri ottimizzati per l'elaborazione video.

Avatar utente
Lazza
Amministratore
Amministratore
Messaggi:5254
Iscritto il:dom 5 set 2004, 13:06
Località:Italia
Contatta:

Re: GIMP - creazione di uno script per elaborare png di un D

Messaggio da Lazza » dom 5 gen 2014, 15:47

Riguardo al bilanciamento del bianco e alla normalizzazione, probabilmente puoi usare Imagemagick direttamente. :) Per le altre cose, hai provato i plugin già citati in vari topic per l'elaborazione batch? Tipo BIMP o DBP...

moroboshi_84
Principiante
Principiante
Messaggi:5
Iscritto il:dom 5 gen 2014, 12:47

Re: GIMP - creazione di uno script per elaborare png di un D

Messaggio da moroboshi_84 » dom 5 gen 2014, 16:23

Lazza ha scritto:Riguardo al bilanciamento del bianco e alla normalizzazione, probabilmente puoi usare Imagemagick direttamente. :) Per le altre cose, hai provato i plugin già citati in vari topic per l'elaborazione batch? Tipo BIMP o DBP...
Intanto ti ringrazio per la pronta risposta, si l'ho installato il David's Batch Processor.
Per l'autowhite si deve andare in Colour-> Enable -> AutoLevel
ma per le altre cose ?
Intanto provo a installare BIMP... ma torno a dire vorrei avere la possibilità di ripetere quello che faccio per il primo frame manualmente...

EDIT: BIMP era quello che cercavo... se magari qualcuno di buona volontà mi spiegasse qual è il nome interno dei plugin da me usati, sarebbe cosa buona e gradita... Pace e Bene, Fratelli!!!

moroboshi_84
Principiante
Principiante
Messaggi:5
Iscritto il:dom 5 gen 2014, 12:47

Re: GIMP - creazione di uno script per elaborare png di un D

Messaggio da moroboshi_84 » lun 6 gen 2014, 2:37

A quanto c'ho capito il nome dei filtri dovrebbe essere

Colori->Auto->Bilanciamento del bianco (gimp-levels-stretch)
Colori->Auto->Normalizza (plug-in-normalize)
Filtri->Miglioramento->Antialias (plug-in-antialias)
Filtri->Miglioramento->Deinterlaccia (plug-in-deinterlace)
Filtri->Miglioramento->Maschera di contrasto (plug-in-unsharp-mask)
Filtri->Miglioramento->Smacchiatura (plug-in-despeckle)

Ho fatto tre prove, ma nessuna che mi soddisfi a pieno (speravo che la smacchiatura, togliesse sta grana fastidiosa, ma invece ha fatto più danni che benefici)

Frame originale

autowhite+normalizza+deinterlaccia dispari+antialias=out01

out01 + smacchiatura

out01 + maschera contrasto

Avatar utente
Lazza
Amministratore
Amministratore
Messaggi:5254
Iscritto il:dom 5 set 2004, 13:06
Località:Italia
Contatta:

Re: GIMP - creazione di uno script per elaborare png di un D

Messaggio da Lazza » lun 6 gen 2014, 13:38

moroboshi_84 ha scritto:Ho fatto tre prove, ma nessuna che mi soddisfi a pieno (speravo che la smacchiatura, togliesse sta grana fastidiosa, ma invece ha fatto più danni che benefici)
Prova con l'anisotropico o con il wavelet denoise. In teoria li trovi tutti su G'MIC (che tra l'altro mi pare si possa scriptare o comunque applicare in qualche modo a tutte le immagini aperte).

moroboshi_84
Principiante
Principiante
Messaggi:5
Iscritto il:dom 5 gen 2014, 12:47

Re: GIMP - creazione di uno script per elaborare png di un D

Messaggio da moroboshi_84 » mar 7 gen 2014, 1:00

Lazza, ancora grazie per la dritta... ho scaricato e compilato i filtri della G'MIC (anima a provarli tutti ci vorrebbe un eternità)... ho scoperto che può essere richiamato da terminale senza passare per gimp (e gli si può fare quindi un bello script, ed applicare i filtri che necessitano per ogni frames).
Se non è chiederti troppo, oserei (visto che indubbiamente avrai molta più esperienza di me in merito) nel spiegarmi in sequenza e con quali parametri impostare i singoli frames (nel post precedente ho linkato anche un frame preso direttamente dalla mini-dv)... Fatto per uno poi io cercherò di applicarlo per tutti.
Sono concio che miracoli non se ne potranno fare (se l'originale è di per se scadente, e sicuramente non stiamo qui restaurando un vecchio capolavoro del cinema mondiale)... però vorrei almeno mascherare qualcosina (sui schermi moderni è davvero na cosa inguardabile).
Sempre cordialmente,
un saluto a tutti.

Avatar utente
Lazza
Amministratore
Amministratore
Messaggi:5254
Iscritto il:dom 5 set 2004, 13:06
Località:Italia
Contatta:

Re: GIMP - creazione di uno script per elaborare png di un D

Messaggio da Lazza » mar 7 gen 2014, 23:42

moroboshi_84 ha scritto:(visto che indubbiamente avrai molta più esperienza di me in merito) nel spiegarmi in sequenza e con quali parametri impostare i singoli frames
Sul mio essere tanto esperto a migliorare i video ho qualche dubbio. :P Comunque indubbiamente farei il deinterlacciamento per primo, poi puoi provare:
  • Smooth (anisotropic) — G'MIC
  • Auto bilanciamento del bianco
  • Sharpen (Octave sharpening) — G'MIC
E poi boh, dipende quello che vuoi fare. :)

moroboshi_84
Principiante
Principiante
Messaggi:5
Iscritto il:dom 5 gen 2014, 12:47

Re: GIMP - creazione di uno script per elaborare png di un D

Messaggio da moroboshi_84 » mar 14 gen 2014, 17:50

Ciao...
di prove ne sto facendo parecchie, ma l'unico che sembra togliere in parte la sgranatura sia l'effetto Pixel denoise...
Intanto ti posto lo script che per ora ho messo su... vorrei capire come fargli digerire in pipe anche qualche filtro di gimp e mettergli magari anche un Pause/Resume/Stop o magari riportarlo in zenity...

Codice: Seleziona tutto

#!/bin/bash
#Costanti -> upper
#Variabili locali -> prima lettera upper
#File -> lettere under

clear

#Imposto la costante YES
YES="y"
NO="n"
ZERO="0"

#Imposto l'user agent
UA="Mozilla/5.0 (Windows NT 6.1; rv:8.0) Gecko/20100101 Firefox/8.0"

#Imposto il tipo di file
TYPE="*.png"

#Imposto cartella di default
DEFAULT=$HOME/Immagini

#Imposto la cartella locale per bgmic
BGMIC=$HOME/.bgmic
echo "BGMIC : " $BGMIC

#Controllo l'esistenza della cartella locale di bgmic
if [ ! -d $BGMIC ]; then
	mkdir $BGMIC
fi

#mi sposto sulla cartella locale di bmic
cd $BGMIC

#Controllo la versione di gmic e scarico il file per usare i filtri è del tipo
#http://gmic.sourceforge.net/update1582.gmic
gmic -version &> version
Gmicversion=`echo | grep -r 'Version' version | cut -d',' -f1`
Gmicversion=`echo $Gmicversion  | cut -d' ' -f2 | tr -d '.'`
echo "Version: " $Gmicversion
Filegmic=update$Gmicversion.gmic

#controllo se esiste il file per usare i plugin gmic
if [ ! -f $Filegmic ]; then
	echo "Non esiste " $Filegmic " lo scarico"
	wget -U "$UA" "http://gmic.sourceforge.net/$Filegmic" -O $Filegmic
fi

#determino la path di elaborazione default o last
if [ ! -f lastsource ]; then
	echo "Non esiste lastsource mi sposto sulla cartella Immagini"
	Lastsource=$DEFAULT
else
	Lastsource=`cat lastsource`
fi

if [ -d $Lastsource ]; then
	echo "Lastsource: " $Lastsource
else
	echo "Il file lastsource è vuoto, imposto al valore di default cartella Immagini"
	Lastsource=$DEFAULT
fi

#Chiedo cartella delle immagini da elaborare
echo "Cartella con le immagini da elaborare: (default : " $Lastsource")"
read Sourcefolder

if [ -z "$Sourcefolder" ]; then
	echo "Valore di default"
	Sourcefolder=$Lastsource
fi

find $Sourcefolder/$TYPE -type f -printf "%p$IFS"|sort > listfilesource

#ripeto la domanda finchè non mi darà una cartella con file da elaborare
while [ ! -s listfilesource ]
	do
		echo "Cartella con le immagini da elaborare: "
		read Sourcefolder
		find $Sourcefolder/$TYPE -type f -printf "%p$IFS"|sort > listfilesource
done

#salvo la cartella per prossime elaborazioni
echo $Sourcefolder > lastsource

#determino la path degli elaborati default o last
Defaultdest=$Sourcefolder/elab
if [ ! -f lastdest ]; then
	echo "Non esiste mi sposto sulla cartella Immagini/elab"
	Lastdest=$Defaultdest
else
	Lastdest=`cat lastdest`
fi

if [ -d $Lastdest ]; then
	echo "Lastdest: " $Lastdest
else
	echo "Il file lastdest è vuoto, imposto al valore di default cartella Immagini/elab"
	Lastdest=$Defaultdest
fi

#chiedo la cartella dove salvare le immagini elaborate
echo "Dove vuoi salvare le immagini elaborate: (default : " $Lastdest ")"
read Destfolder

if [ -z "$Destfolder" ]; then
	echo "Valore di default"
	Destfolder=$Lastdest
fi

#controllo l'esistenza della cartella di destinazione
if [ ! -d $Destfolder ]; then
	echo "Non esiste la cartella"
	mkdir $Destfolder	
fi

#salvo la cartella per prossime elaborazioni
find $Destfolder/$TYPE -type f -printf "%p$IFS"|sort > listfiledest
echo $Destfolder > lastdest

#chiedo se vuole editare il file dei filtri
echo "Vuoi editare il file dei filtri: (default : y)"
read -s -n 1 Edit

if [ "$Edit" == "$NO" ]; then
	echo "vale o N o n"
else
	echo "lo faccio valere y"
	Edit=$YES
fi

if [ ! -f filter ]; then
	echo "Non esiste il file"
	Edit=$YES	
fi

if [ "$Edit" == "$YES" ]; then
	vi filter	
fi

#determino quanti file ci sono nelle due cartelle
wc -l listfilesource &> totalsource
wc -l listfiledest &> totaldest

Totaldest=`cat totaldest`
Totaldest=`echo $Totaldest | cut -d' ' -f1 | cut -d'=' -f2`
TOTALDEST=$Totaldest

Totalsource=`cat totalsource`
Totalsource=`echo $Totalsource | cut -d' ' -f1 | cut -d'=' -f2`
Totalelab=$[Totalsource-Totaldest]
Currentelab="0"

#determino la lunghezza delle path
Lsourcefolder=${#Sourcefolder}+1
Ldestfolder=${#Destfolder}+1

#valorizzo i due array con i file contenuti nelle due cartelle
Listfilesource=`cat listfilesource`
Listfiledest=`cat listfiledest`

#Carico il file dei filtri
Filter=`cat filter`

elaborazione() {
					clear
					echo "Nome file in elaborazione: " $i
					Totaldest=$[Totaldest+1]
					Currentelab=$[Currentelab+1]
					echo $Totaldest"/"$Totalsource
					echo $Currentelab"/"$Totalelab
					gmic $Filegmic $i $Filter -o $Destfolder/$Filenamesource
					echo "$Destfolder/$Filenamesource" >> listfiledest
}

time for i in $Listfilesource
	do
		Filenamesource=${i:$Lsourcefolder}
		if [ ! -f $Destfolder/$Filenamesource ]; then
			elaborazione
		fi
	done
exit 0

Avatar utente
Lazza
Amministratore
Amministratore
Messaggi:5254
Iscritto il:dom 5 set 2004, 13:06
Località:Italia
Contatta:

Re: GIMP - creazione di uno script per elaborare png di un D

Messaggio da Lazza » mar 14 gen 2014, 19:19

moroboshi_84 ha scritto:vorrei capire come fargli digerire in pipe anche qualche filtro di gimp
Be', se chiami il processo passandogli uno script-fu il quale si limita a richiamare gli script già presenti in Gimp (o che faccia anche altro, come vuoi tu) dovrebbe essere possibile: http://www.gimp.org/tutorials/Basic_Batch/

Rispondi