script Gonta image en dessin

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

Modérateur: gg

Messagede Eric le Dim Sep 30, 2007 21:05

Derniere version ( y' en aura pas d' autre )

J' ai supprimé l' option monochrome . Donc c' est monochrome .
Cela permet de n' effectuer les calculs sur un seul canal ( ici le rouge ) et de recopier cette valeur dans vert et bleu .
Il risque d' y avoir des soucis si une partie de l' image à été gommée car l' instruction Conv(....) affecte ce canal qui sera donc flouté .
Pour eviter ça , ajouter apres if (loop==1}(
l' instruction t2=T; (on copie la transparence )
et a la fin du programme avant la fermeture de l' accolade
l' instruction T=t2; qui rétabli la transparence

Fenetre 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,2560;
?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;
if ( pr > 0 ){loop=2;}


Fenetre droite :

Code: Tout sélectionner
if( loop==2){
HLS(R,G,B);
S=0;
RGB(H,L,S);
R=R+(pr*(R-pc));
G=R;B=R;
}
if (loop==1){
r2=R;
Conv(1,x,y);
R=((r2*pourcent)/R);
R=R+(cont*(R-127));
G=R;B=R;
}


_____________________________________________________

Tant qu' a faire , j' ai aussi modifié le script contour_hsl2
J' ai gardé la partie réduction de couleur de ce script et oté le partie contour qui devient de fait inutile ( le script plus haut et bien mieux pour cela )

Fenetre gauche :

Code: Tout sélectionner
coord=0;
?re,Reduire,2,12,4;
?sat,Saturation,-100,100,0;
?lum,Luminosité,-100,100,0;
pla=int(256)/re;
sat=sat/100;
lum=lum/100;


fenetre droite:
Code: Tout sélectionner
HLS(R,G,B);
L=int(L/pla)*pla+pla;
L=L+(L*lum);
S=S+(S*sat);
RGB(H,L,S);


____________________________________________

un script de luminosité contraste
Comme ça , on peut peindre en l' utilisant

Gauche:

Code: Tout sélectionner
coord=0;
?lum,Luminosité,-100,100,0;
?cont,Contraste,-100,100,0;
?med,Centre Contraste,0,255,127;
lum=lum/100;
cont=cont/100;


Droite

Code: Tout sélectionner
R=R*(1+lum);
G=G*(1+lum);
B=B*(1+lum);
R=R+(cont*(R-med));
G=G+(cont*(G-med));
B=B+(cont*(B-med));


C' est pas compliqué à installer .
Quelques petites choses à finir et je refait un pack gonta
Vu le bazard dans mes scripts , y' a du boulot

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

Messagede gg le Lun Oct 01, 2007 00:32

oui, oui, j'avoue... un nouveau gonta...

même moi qui suit attentivement tes scripts et qui connait assez bien le logiciel, je commence à être complètement paumé. :)

dans ton premier script, c'est vrai, pourquoi tu ne mets pas directement cette copie de la transparence ?? :oops:

En plus, comme je n'efface pas au fur et à mesure les scripts, je commence à avoir du mal à trouver des noms (image_dessin1, image_dessin2, etc... ce n'est pas bien original) ;)

mais c'est un sacré truc que tu nous a fait là, je teste ton script sur pas mal de truc, et en général j'arrive toujours à sortir un truc sympa
Avatar de l’utilisateur
gg
 
Messages: 984
Inscription: Lun Aoû 28, 2006 12:55

Messagede Eric le Mar Oct 02, 2007 00:21

Non GG , c' est pas un nouveau gonta , c' est le meme que ta version préférée avec une legere modif pour accelerer le mouvement ( qui se traduit par la disparition de l' option couleur )

Je dois en etre à 6 ou 7 versions . Celle la c' est la bonne

Pour la transparence je vais quand meme l' ajouter quand je ferais le pack gonta . Comme j' utilise un flou , c' est pas méchant comme perturbation de l' image si on a gommée une partie .Eventuellement , la transparence sera flouté .

Je ne l' ai pas mis avant parceque j' y ai pensé en rédigeant le post .

Je voulais ajouter la balance des couleurs version Gonta , un truc simple et rapide , mais un ultime test c' est avéré foireux !

Pourtant ça marchait bien ! sauf dans un cas particulier

tronçon de code :
modif des couleurs :

R=R+(pourcent_R*R);
Idem pour vert et bleu , chacune de ces couleurs se trouvant modifiée par un poucentage qui lui est propre ( un slider da la fenetre gauche )

Cela fonctionne

la suite : la saturation : je convertis en HLS ( TSL) etmodifie de meme la saturation , puis conversion RGB pour recuperer mes trois valeurs

bout de code suivant :
HLS(R,G,B);
S=S+(S*pourcent_S);
RGB(H,L,S);

Sur des images quelconques , ça va ou semble aller

sur une image remplie uniformément d' un gris = 127 , des que modifie un chouia le rouge : tout est noir .. Si je modifie alors le bleu ou le vert c' est de nouveau bon .

j' ai fait d' autres essais , sans slider pour tester des valeurs:
HLS(127,127,127);
RGB(H,L,S);
ca donne une image grise : c' est normal

HLS(128,127,127);
RGB(H,L,S);
ça donne une image noire de chez noire !

C' est insoluble et je pense à un bug

Comme j' utilise ce type de conversion dans le script pour dé saturer l' image et la traduire en niveau de gris , j' ai eu un doute .
c' est ce bout de code:
HLS(R,G,B);
S=0;
RGB(H,L,S);

qui remplace :
v=(R+G+B)/3;
R=v;G=v;B=v;

car apres des essais , je trouvais le résultat plus contrasté.
Ce doute m' a fait relire la machine à Gonta et m' a rappelé que
conv(n,x,y); agit aussi sur T

Mais c' est pas méchant , je vais le modifier .

J' ai quand meme trouvé un cas de figure ou ce script ne donne pas grand chose : un lettrage noir sur fond blanc ! ou vice et versa !
Gris sur blanc , y' a un contour et le reste blanchi , mais le noir reste noir.

Cela ne me gene pas dans la façon dont j' utilise ce script .

Au final , je suis content .
Merci GG pour le compliment.

Bon un tiot dernier et dodo !
C' est un script pour réduire le bruit d' une image

fenetre droite :

Code: Tout sélectionner
coord=0;
?rpt,Repetion,1,10,1;
SetMatrix3(1,
1,1,1,1,1,1,1,1,1,1/(9));
SetMatrix3(2,
1,1,1,1,0,1,1,1,1,1/(8));
loop=2*rpt;-1;


fenetre gauche:

Code: Tout sélectionner
if(0==loop%2){
_Copy(-1);
exit(-1);
}
T2=T;
R2=R;
G2=G;
B2=B;
Conv(1,x,y);
MR=R;
MG=G;
MB=B;
Conv(2,x,y);
if (MR<R){
R=MR;}
else{
R=R2;}
if (MG<G){
G=MG;}
else{
G=G2;}
if (MB<B){
B=MB;}
else{
B=B2;}
T=T2;



Il n' enleve que le bruit foncé , uniquement les valeurs sombres .
tu ouvres une image , remplir en noir avec une petite densité , puis densité au max le filtre .

les deux matrices calculent chacune pour un pixel donné un flou de 3x3 cases , sauf que la seconde matrice ne prend pas en compte le point concerné . la différence entre ces deux valeurs indique une tache auquel cas je donne à la tache la valeur moyenne pour qu' elle se confonde dans la masse . Un flou ponctuel en quelque sorte.

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

Messagede gg le Mar Oct 02, 2007 15:24

y aurait-il un moyen de rajouter une variable qui correspondrait à "l'intensité de la couleur", je ne sais pas trop comment dire. Une sorte de valeur "teinte", qui ferait que le filtre ne fonctionne que sur le bruit foncé, le clair ou le moyen....
Avatar de l’utilisateur
gg
 
Messages: 984
Inscription: Lun Aoû 28, 2006 12:55

Messagede Eric le Mer Oct 03, 2007 10:18

J' ai deja essayé , mais rien de probant .
mes derniers truc , avec un seuil réglables se terminent par le bruit flouté , mais étalé .Aie ! Lorsque j' ai un bruit clair, je met l' image en négatif , le filtre et re négatif . mais probleme si bruit clair et sombre !

Je reverrais ça , si j' y arrive , car c' est un tantinet complexe avec Gonta .
Le probleme avec un seuil , c' est qu' il faut modifier celui ci entre deux passes du filtre , et que c' est pas linéaire .

ici un exe spécialisé :
http://www-sop.inria.fr/odyssee/research/tschumperle-deriche:02d/appliu/

Mais pas d' interface graphique . Il faut le lancer en mode dos ( ligne de commande) .

Voici un tiot script pour faire du papier peint ( et eventuellement un tuto Gonta plus tard )
Il divise l' image en 4 et la recombine par superposition pour la rendre carrelable.


Gauche:

Code: Tout sélectionner
coord=0;
?cor,Correction,-50,50,0;
dist=sqrt((cx*cx)+(cy*cy));
cor=1+(cor/100);


Droite:

Code: Tout sélectionner
x2=x;y2=y;
if ((x<0) &&( y<0)){
x2=x+cx;y2=y+cy;
}
if((x2>0)&&(y2<0)){
x2=x-cx;y2=y+cy;
}
if((x2<=0)&&(y2>=0)){
x2=x+cx;y2=y-cy;
}
if((x2>=0 )&&(y2>=0)){
x2=x-cx;y2=y-cy;
}
d1=sqrt((x*x)+(y*y))/dist;
d1=d1*cor;
d2=1-d1;
R=(R(x2,y2)*d1)+(R(x,y)*d2);
G=(G(x2,y2))*d1+(G(x,y)*d2);
B=(B(x2,y2))*d1+(B(x,y)*d2);




Apres , j' utilise Gonta -> Puceron ->vignette pour voir ce que ça donne

illustration:
Image

Ci dessous j' ai fait une correction de luminosité avant les filtres et j' ai oublié d' enlever le masque filtrant , d' ou les differentes tailles avec Vignette

Image

Je cherche maintenant à estomper les bordures

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

Messagede Eric le Mer Oct 03, 2007 14:54

oups :oops: :oops:

ligne à modifier :
Code: Tout sélectionner
if((x2>0)&&(y2<0)){


par :
Code: Tout sélectionner
if((x2>=0)&&(y2<0)){


autrement , ça fait une ligne qui n' est pas prise en compte
Avatar de l’utilisateur
Eric
 
Messages: 761
Inscription: Ven Aoû 25, 2006 10:49
Localisation: France (80)

Messagede Eric le Mer Oct 03, 2007 21:43

autre test direct du filtre sans retouche
l' original ici : http://commons.wikimedia.org/wiki/Image:Egypte_louvre_129_ramses6.jpg

L' image ci dessous a donc la meme licence : GNU Free Documentation License


Image

Bon dans ce cas c' est plus facile :lol:
Avatar de l’utilisateur
Eric
 
Messages: 761
Inscription: Ven Aoû 25, 2006 10:49
Localisation: France (80)

Messagede Eric le Dim Oct 07, 2007 08:28

Nouvelle révision du contour
j' ai ajouté une option .
Cette option à 0 donne le meme rendu qu' avant .

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,2560;
?ef,Force,0,20,9;
?cont,Contraste,0,100,0;
?opt,Option,0,10,0;
pourcent=pourcent/10;
pourcent=pourcent+1;
cont=cont/100;
ef=20-ef;
SetMatrix5(1,
1,1,1,1,1, 1,1,1,1,1,
1,1,ef,1,1, 1,1,1,1,1,
1,1,1,1,1, 1/(24+ef));
pr=pr/100;
pl=pl/100;
if ( pr > 0 ){loop=2;}


droite

Code: Tout sélectionner
if( loop==2){
HLS(R,G,B);
S=0;
RGB(H,L,S);
R=R+(pr*(R-pc));
G=R;B=R;
}
if (loop==1){
r2=R;
Conv(1,x,y);
if(opt!=0){
R1=R;
Conv(1,x-opt,y);
R=(R1+R)/2;
}
R=((r2*pourcent)/R);
R=R+(cont*(R-127));
G=R;B=R;
}


Une rue de Loche

Option=0

Image

Option=5

Image

Les deux calques superposés

Image
Dernière édition par Eric le Dim Oct 07, 2007 21:17, édité 1 fois.
Avatar de l’utilisateur
Eric
 
Messages: 761
Inscription: Ven Aoû 25, 2006 10:49
Localisation: France (80)

Messagede nifa le Dim Oct 07, 2007 16:09

pourquoi que je rentre des scripts que tu as mis sur cette page gonta ne veut pas que je les utilises, il me met erreure à centre contraste !

que fair ?
nifa
 
Messages: 194
Inscription: Ven Déc 08, 2006 20:05

Messagede gg le Dim Oct 07, 2007 16:35

perso, le dernier filtre ne pose aucun souci chez moi, donc, je crains que ça ne vienne de toi... une fausse manip ?

et les autres non plus.... je crois les avoir tous essayés....

petit résumé de la manip, au cas ou :

activation de la fenêtre de filtre, sélection de gonta, cliquage sur Reglages.
Dans Groupe avoir Puceron, dans Titre, mettre le nom du nouveau filtre (faire attention à ne pas utiliser un titre déjà usité).
revenir sur le forum, copier/coller le script qui commence par "coord=0;" dans la colonne de gauche.... copier/coller le script qui commence par "if (loop...) dans la colonne de droite.
clique sur Sauver, puis Ok
c'est tout.

donc, comme c'est du copier coller, il ne peut pas y avoir de bug de copie... peut-être que tu as laissé des bouts de script du filtre précédent...
Avatar de l’utilisateur
gg
 
Messages: 984
Inscription: Lun Aoû 28, 2006 12:55

Messagede nifa le Dim Oct 07, 2007 16:45

j'ai réessayer mais ça me met toujours : paramètre erroné à centre contraste alors que je fais du copier colé c'ets bizarre !
nifa
 
Messages: 194
Inscription: Ven Déc 08, 2006 20:05

Messagede gg le Dim Oct 07, 2007 16:51

tu dois avoir un bug quelque part... jette un oeil sur ma dernière réponse sur l'autre sujet... avec peut être juste un remplacement du gtprog.dll par celle de puceron
Avatar de l’utilisateur
gg
 
Messages: 984
Inscription: Lun Aoû 28, 2006 12:55

Messagede Eric le Dim Oct 07, 2007 21:44

:oops: :oops: je viens de rectifier cette inversion

Nifa , si c' est le dernier script , j' avais inversé gauche et droite .
Je viens de corriger.
centre contraste doit se trouver dans le fenetre gauche de Gonta.
verifie ligne par ligne .

parametre erroné peut indiquer l' abscence d' une virgule .

la ligne complete:

?pc,Centre Contraste,1,254,127;

La seule modif faite dans le gonta de puceron est la taille de la fenetre et celui de la fonte de caractere . Rien qui change le fonctionnement de la DLL.

Envoie moi ton mail par messsage privé et je t' enverrais un extrait de mon fichier Gonta que tu pourras utiliser avec le bouton ajouter de Gonta.

Le mieux , c' est de le mettre sur puceron

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

Messagede Eric le Dim Oct 07, 2007 22:51

les fichiers texte sont ici:
http://puceron.net/Nouveaux-scripts

Article tres bref car gros soucis avec mon clavier.
@+ Eric
Avatar de l’utilisateur
Eric
 
Messages: 761
Inscription: Ven Aoû 25, 2006 10:49
Localisation: France (80)

Messagede nifa le Dim Oct 14, 2007 10:44

C'est super Eric, en les rentrant comme ça je n'ai eu aucun problème merci beaucoup!
nifa
 
Messages: 194
Inscription: Ven Déc 08, 2006 20:05

PrécédentSuivante

Retourner vers Développement de Pixia

Qui est en ligne

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

cron