script Gonta image en dessin

Où on parle des différentes versions de Pixia, de script Gonta...

Modérateur: gg

script Gonta image en dessin

Messagede Eric le Dim Sep 16, 2007 22:28

Un petit script à fignoler qui semble donner quelques résultats sympas

Image originale:

http://commons.wikimedia.org/wiki/Image:Hornbill_Zazu_Chitwa_South_Africa_Luca_Galuzzi_2004.JPG

Cette image est sous licence que je reproduit ci dessous:
License. In short: you are free to share and make derivative works of the file under the conditions that you appropriately attribute it, and that you distribute it only under a license identical to this one.

Les images dérivées , donc celles ci dessous ont la même licence.( partage à l' identique )

Image

Le résultat donc sous licence Créative Commons ShareAlike 2.5

Image

Le script : voir ci dessous .
Pour son implantation rendez vous dans le coin des tuto initiation Gonta.

Image

La même chose en texte pour un copier coller:

________________________________________
ORIGINE:
________________________________________

coord=0;
?pourcent,Lumiere générale,0,4000,1800;
?ef,Force,0,20,9;
?cont,Contraste,0,100,0;
?mo,Monochrome,0,1,0;
pourcent=pourcent/10;
pourcent=pourcent+1;
cont=cont/100;
ef=20-ef;
SetMatrix5(1,
0,1,1,1,0, 1,1,1,1,1,
1,1,ef,1,1, 1,1,1,1,1,
0,1,1,1,0, 1/(20+ef));

_________________________________________
TRANSFORMATION
__________________________________________

r2=R;g2=G;b2=B;
Conv(1,x,y);
Conv(1,x,y);
R=((r2*pourcent)/R);
G=((g2*pourcent)/G);
B=((b2*pourcent)/B);
if (mo==1){
v=(R+G+B)/3;
R=v;G=v;B=v;
}
R=R+(cont*(R-127));
G=G+(cont*(G-127));
B=B+(cont*(B-127));

Cela fonctionne relativement bien sur des images pas trop grandes (800 x800 par exemple )
au delà c' est du pointillisme ...
Le script utilise un flou dont je ne peux pas élargir le rayon , ce qui limite la taille de l' image d' origine .

Le principe est le suivant :
image de base
clone de l' image ( r2=R;g2=G;b2=B;)
flou sur le clone ( Conv(1,x,y); )
mode de fusion Diviser ( R=((r2*pourcent)/R); .........)
réglage du contraste ( R=R+(cont*(R-127)); .........)

C' est un essai sous Gimp qui m' a mis sur la piste .
Ce mode de fusion n' existe pas avec Pixia . J' ai essayé de la reproduire au pifometre , d' ou la grande plage de valeur du paramètre Lumiere Générale du script.

Je dois affiner ce point.

Apres son utilisation le réglage de la luminosité et du contraste est nécessaire.

Si vous voulez bien tester cette chose ...
@+ Eric
Dernière édition par Eric le Dim Sep 16, 2007 23:19, édité 1 fois.
Avatar de l’utilisateur
Eric
 
Messages: 761
Inscription: Ven Aoû 25, 2006 10:49
Localisation: France (80)

Messagede gg le Dim Sep 16, 2007 22:37

j'essaie de ce pas !
Avatar de l’utilisateur
gg
 
Messages: 984
Inscription: Lun Aoû 28, 2006 12:55

Messagede gg le Dim Sep 16, 2007 22:52

juste une petite erreur me semble-t-il, il manque le point virgule sur la dernière ligne de transformation :)

à part ça, il semble très très intéressant ce script... il faut encore quelques essais sur des images précises que j'ai en tête et qui ne sont pas faciles, mais autrement, sur de bonnes images, c'est nickel :)
Avatar de l’utilisateur
gg
 
Messages: 984
Inscription: Lun Aoû 28, 2006 12:55

Messagede gg le Dim Sep 16, 2007 23:09

après un essai sur cette bonne vieille image qui nous avait donné bien des soucis
viewtopic.php?t=544&postdays=0&postorder=asc&start=30

je dois dire que c'est impressionnant comme résultat :)
Avatar de l’utilisateur
gg
 
Messages: 984
Inscription: Lun Aoû 28, 2006 12:55

Messagede Eric le Dim Sep 16, 2007 23:18

J' avais pas essayé celle la ! Je suis impressionné .

Bien content que cela fonctionne aussi bien .

Je corrige le point virgule de ce pas

Merci pour le test
Avatar de l’utilisateur
Eric
 
Messages: 761
Inscription: Ven Aoû 25, 2006 10:49
Localisation: France (80)

Messagede Eric le Dim Sep 23, 2007 07:30

J' ai retravaillé le script en ajoutant un réglage de contraste avant l' exécution de l' existant .

en mettant ce réglage au maximum , les valeurs sombres sont noires , un gris intermédiaire apparaît. Par contre les artéfacs du jpg risquent de ressortir .

Le script en l' état :

Fenetre gauche ( Initialisation )
______________________________

Code: Tout sélectionner
coord=0;
?pr,Pre Contraste,0,100,0;
?pourcent,Lumiere générale,0,4000,1800;
?ef,Force,0,20,9;
?cont,Contraste,0,100,0;
?mo,Monochrome,0,1,0;
pourcent=pourcent/10;
pourcent=pourcent+1;
cont=cont/100;
ef=20-ef;
SetMatrix5(1,
0,1,1,1,0, 1,1,1,1,1,
1,1,ef,1,1, 1,1,1,1,1,
0,1,1,1,0, 1/(20+ef));
pr=pr/100;
pl=pl/100;
if ( pr > 0 ){loop=2;}


___________________________________
Fenetre de droite (Transformation )
____________________________________

Code: Tout sélectionner
if( loop==2){
R=R+(pr*(R-127));
G=G+(pr*(G-127));
B=B+(pr*(B-127));
}
if (loop==1){
r2=R;g2=G;b2=B;
Conv(1,x,y);
R=((r2*pourcent)/R);
G=((g2*pourcent)/G);
B=((b2*pourcent)/B);
if (mo==1){
v=(R+G+B)/3;
R=v;G=v;B=v;
}
R=R+(cont*(R-127));
G=G+(cont*(G-127));
B=B+(cont*(B-127));
}


____________________________________

Une tiote image (licence )
This file is licensed under Creative Commons Attribution ShareAlike 2.0
l' originale : http://commons.wikimedia.org/wiki/Image:France_cite_de_carcassonne_gargouille.jpg
Image
Avatar de l’utilisateur
Eric
 
Messages: 761
Inscription: Ven Aoû 25, 2006 10:49
Localisation: France (80)

Messagede gg le Dim Sep 23, 2007 14:12

sympathique cette nouvelle version... j'ai l'impression que ça permet de mieux définir certains contours... mais ce n'est qu'une impression pour l'instant, je poursuis mes essais .. :shock:
Avatar de l’utilisateur
gg
 
Messages: 984
Inscription: Lun Aoû 28, 2006 12:55

Messagede gg le Dim Sep 23, 2007 15:36

tiens, un exemple rapide avec ton dernier script...
Image
Image
Avatar de l’utilisateur
gg
 
Messages: 984
Inscription: Lun Aoû 28, 2006 12:55

Messagede Eric le Dim Sep 23, 2007 18:04

He be ! c' est pas mal . Ça fonctionne . Merci GG
Et comme le montre GG , c' est utilisable pour la colorisation .
On en viendra à bout de cet effet BD!



Min tiot fils avec 2 calques et filtre
le premier : Gonta->Puceron->contour hls2 , pour réduire le nombre de couleurs (avec le parametre seuil au max pour ne pas avoir de contours)

le second calque avec le script ci dessus , calque en mode de fusion superposer.

Image

c' est moins parlant que ce qu' a fait GG , c' est que du filtre
@+ Eric
Avatar de l’utilisateur
Eric
 
Messages: 761
Inscription: Ven Aoû 25, 2006 10:49
Localisation: France (80)

Messagede Eric le Dim Sep 23, 2007 18:37

autre test, comme décrit ci dessus avec plusieurs calque et le filtre Gonta ->artiste->crayon que j' ai un peu bidouillé ( ajout de crayon ..)

image originale : une statue dans la cathédrale d' Amiens , pas loin de chez moi
http://commons.wikimedia.org/wiki/Image:Catedral_amiens_detalle_4.JPG

résultat :
Image
Avatar de l’utilisateur
Eric
 
Messages: 761
Inscription: Ven Aoû 25, 2006 10:49
Localisation: France (80)

Messagede Eric le Ven Sep 28, 2007 20:35

Deux autres versions :
la premiere , reprise de la précedente avec l' ajout d' un réglage : la valeur du nombre servant au réglage du pré contraste est ajustable ( 127 par défaut auparavant ) Globalement , plus on augmente ce chiffre , plus on augmente les valeurs sombres et vice versa .
C' est le slider Centre Contraste

Gauche .....

Code: Tout sélectionner
coord=0;
?pc,Centre Contraste,1,254,127;
?pr,Pre Contraste,0,100,0;
?pourcent,Lumiere générale,0,4000,1800;
?ef,Force,0,20,9;
?cont,Contraste,0,100,0;
?mo,Monochrome,0,1,0;
pourcent=pourcent/10;
pourcent=pourcent+1;
cont=cont/100;
ef=20-ef;
SetMatrix5(1,
0,1,1,1,0, 1,1,1,1,1,
1,1,ef,1,1, 1,1,1,1,1,
0,1,1,1,0, 1/(20+ef));
pr=pr/100;
pl=pl/100;
if ( pr > 0 ){loop=2;}


Droite .........

Code: Tout sélectionner
if( loop==2){
R=R+(pr*(R-pc));
G=G+(pr*(G-pc));
B=B+(pr*(B-pc));
}
if (loop==1){
r2=R;g2=G;b2=B;
Conv(1,x,y);
R=((r2*pourcent)/R);
G=((g2*pourcent)/G);
B=((b2*pourcent)/B);
if (mo==1){
v=(R+G+B)/3;
R=v;G=v;B=v;
}
R=R+(cont*(R-127));
G=G+(cont*(G-127));
B=B+(cont*(B-127));
}


__________________________________________

Derniere version : pour élargir le rayon du flou de la premiere boucle du script , il faut coder à la main , la convolution de matrice n' autorisant qu 'un carré de 5 x5 pixels . ( c' est précodé par gonta et donc relativement rapide )
Donc pour un carré de 10x 10 , il faut 100 addition pour chaque canal soit 300 en RVB (RGB) à multiplier par le nombre de pixels de l' image ....
cela laisse grandement le temps de se mitonner une choucroute ...

En travaillant en noir et blanc , on divise par trois ce temps .

Le script
Gauche ...........

Code: Tout sélectionner
coord=0;
?pr,Pre Contraste,0,100,0;
?large,Rayon,3,10,5;
?pourcent,Lumiere générale,0,4000,1800;
?ef,Force,0,20,9;
?cont,Contraste,0,100,0;

pourcent=pourcent/10;
pourcent=pourcent+1;
cont=cont/100;
ef=20-ef;
SetMatrix5(1,
0,1,1,1,0, 1,1,1,1,1,
1,1,ef,1,1, 1,1,1,1,1,
0,1,1,1,0, 1/(20+ef));
pr=pr/100;
pl=pl/100;
ll=int( large/2);
if ( pr > 0 ){loop=2;}



Doite .............

Code: Tout sélectionner
if( loop==2){
HLS(R,G,B);
S=0;
RGB(H,L,S);
R=R+(pr*(R-127));
}
if (loop==1){
rr=0;nb=0;
yy=y-ll;fy=y+ll;fx=x+ll;
while ( yy<fy){
xx=x-ll;
while (xx<fx){
if( (xx != x)&&(yy!=y)){
rr=rr+R(xx,yy);
nb=nb+1;}
xx=xx+1;}
yy=yy+1;}
;rr=rr/nb;
R=((R*pourcent)/rr);
G=R;
B=R;
}


R=R+(cont*(R-127));
G=R;
B=R;


Attention : au dela de cinq la prévisualisation est tres longue . Je conseille de la desactiver

Augmenter ce rayon augmente aussi les artéfacts du jpg ..
C' est pas terrible cette derniere version.

Je m' oriente maintenant vers une legere modif de la premiere version de ce post qui ne travaillerais qu'en niveau de gris .
Un flou de 5 de rayon donne de bons résultats et je m' en tiendrai la.

@+ Eric
Avatar de l’utilisateur
Eric
 
Messages: 761
Inscription: Ven Aoû 25, 2006 10:49
Localisation: France (80)

Messagede gg le Sam Sep 29, 2007 00:31

j'ai une préférence pour la première des dernières versions... nettement...;)
Avatar de l’utilisateur
gg
 
Messages: 984
Inscription: Lun Aoû 28, 2006 12:55

Messagede Eric le Sam Sep 29, 2007 07:49

Itout pour moi ! je vais simplifier un peu et clore ce travail en n' ayant qu' une sortie monochrome .
Avatar de l’utilisateur
Eric
 
Messages: 761
Inscription: Ven Aoû 25, 2006 10:49
Localisation: France (80)

Messagede Eric le Sam Sep 29, 2007 16:34

Cela permet de réaliser rapidement le genre de bidouille suivante .
Une image et quelques traits ajoutés de ci de la
Y' a plus qu' a colorier

Image
Avatar de l’utilisateur
Eric
 
Messages: 761
Inscription: Ven Aoû 25, 2006 10:49
Localisation: France (80)

Messagede gg le Sam Sep 29, 2007 17:06

franchement, ce script et les modif apportées... c'est excellent pour transformer une image en dessin.
Avatar de l’utilisateur
gg
 
Messages: 984
Inscription: Lun Aoû 28, 2006 12:55

Suivante

Retourner vers Développement de Pixia

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 3 invités

cron