Matrice de convolution et Plugin Arithmétique.

Discussion de programmation pour éviter d'empiéter dans les autres forums

Modérateurs : Modérateurs, Développeurs

Tom
Administrateur(trice)|Administrateur|Administratrice
Administrateur(trice)|Administrateur|Administratrice
Messages : 13216
Inscription : 02 févr. 2005 9:35

Re: Matrice de convolution et Plugin Arithmétique.

Message par Tom »

Ah bah dis donc pour les explications, rien à regretter, tu as mis le paquet, surtout sur un sujet aussi abstrait.

Chose promise, chose due : en bêta test : un filtre pour renforcer la netteté jusqu'à apparition de liserés blancs sur les contours,
et resserrement des contours par opposition de deux calques en fusion Superposition et Produit (pour masquer les liserés) :

Code : Tout sélectionner

//Netteté par convolution et double calque. Fusion Superposition et Produit pour contours.
SS:50;// Opacité-Solidité du Calque Superposition en %
SP:50;I:I1 ;// Opacité-Solidité du Calque Produit en % ; I : Image.
T1:scroll(I,1,1)*(-2);T2:scroll(I,0,1)*(-2);T3:scroll(I,-1,1)*(-2);//Matrice de convolution
T4:scroll(I,1,0)*(-2);T9:I*(22);T5:scroll(I,-1,0)*(-2);// T9 = valeur centrale
T6:scroll(I,1,-1)*(-2);T7:scroll(I,0,-1)*(-2);T8:scroll(I,-1,-1)*(-2);
Div:6; Dec:0;//Diviseur ; Décalage
C:((T1+T2+T3+T4+T5+T6+T7+T8+T9)/Div)+Dec;//Résultat calque + net
M:0 ; // Pour utiliser un Masque, remplacer 0 par
//Ix ,x étant le numéro de l'image du Masque ouvert.
D:W(I);A:D;//Pas de Dégradé. A=amplitude hor. ou vert.
//D:X(I);A:W(I);//Dégradé Horizontal Gauche-Droite 
//D:W(I)-X(I);A:W(I);//Dégradé Horizontal Droite-Gauche
//D:Y(I);A:H(I);//Dégradé Vertical Haut-Bas 
//D:H(I)-Y(I);A:H(I);//Dégradé Vertical Bas-Haut 
V:255-((255-C)*(255-I)/255) ;
C2:AlphaBlend(I,V,D*(255-M)/255*SS/100,A);
V:(C*C2)/255 ;
AlphaBlend(C2,V,D*(255-M)/255*SP/100,A)
//Adaptation Matrice de convolution=> Dominique "dve" sur Forum PhotoFiltre
//Adaptation Technique d'accentuation de contours => http://jptom.free.fr/
Attention étant donné la longueur du code, PhotoFiltre ne garde pas tout en mémoire entre deux exécutions.
Pour relancer le filtre, il faut recharger intégralement la formule.

Bon... la matrice essayée est une combinaison que j'aie choisie, elle n'est pas forcément la meilleure...
La technique du double calque est empruntée à aube-nature.com
http://www.aube-nature.com/technique_ph ... uation.php

Ca ne va pas révolutionner le monde de l'image, mais je sais que je m'en servirai.
Et d'autres peuvent aussi en profiter pour rechercher un rendu particulier...
Par ailleurs les traitements de netteté (ou de flou) ont des rendus assez différents selon la taille de l'image...

Voilà Dominique, j'y pensais depuis plusieurs semaines, sans avoir la solution, grâce à toi c'est chose faite.
Merci encore à toi. J'en ai encore encore une autre derrière la tête, mais il faut que je trouve la matrice qui
s'y prête le mieux.
dve
Nouveau(elle)|Nouveau|Nouvelle
Nouveau(elle)|Nouveau|Nouvelle
Messages : 34
Inscription : 09 juin 2010 8:08
Version de PhotoFiltre : 10.7.1
Système d'exploitation : XP SP3 / Seven SP1
Processeur : Intel 5 3400
Mémoire RAM : 8 Go
Localisation : CLICHY LA GARENNE

Re: Matrice de convolution et Plugin Arithmétique.

Message par dve »

Bonjour Tom,

je viens de tester ton code.
c'est bluffant !!!
Une image que je considérai comme pas trop mal
prend une nouvelle dimension.

Je vais maintenant tenter de comprendre les différentes étapes.
C'est pas gagné !

Il me faudra un moment avant d'acquérir ta maitrise du module aritthmétique.
Mais comme tu le disais dans l'un de tes posts
c'est plus rigolo que le Sudoku.

Merci pour ce développement et merci également à JCB pour les éléments qu'il a mis à notre disposition.

Cordialement.

Dominique
Tom
Administrateur(trice)|Administrateur|Administratrice
Administrateur(trice)|Administrateur|Administratrice
Messages : 13216
Inscription : 02 févr. 2005 9:35

Re: Matrice de convolution et Plugin Arithmétique.

Message par Tom »

dve a écrit :.../...
Je vais maintenant tenter de comprendre les différentes étapes.
C'est pas gagné ! .../...
en plus du code de la matrice de convolution, j'ai simplement rajouté les deux formules de fusion
Superposition et Produit. Ce qui perturbe un peu ce sont les lignes de code qui concernent
la possibilité d'appliquer un masque et de faire un dégradé.
Pour comprendre le fonctionnement, autant commencer par décortiquer la fusion simple : :wink:
viewtopic.php?p=160189
dve
Nouveau(elle)|Nouveau|Nouvelle
Nouveau(elle)|Nouveau|Nouvelle
Messages : 34
Inscription : 09 juin 2010 8:08
Version de PhotoFiltre : 10.7.1
Système d'exploitation : XP SP3 / Seven SP1
Processeur : Intel 5 3400
Mémoire RAM : 8 Go
Localisation : CLICHY LA GARENNE

Re: Matrice de convolution et Plugin Arithmétique.

Message par dve »

Ok.

j'y vais de ce pas.

merci Tom.


Cordialement.


Dominique
kronky
Nouveau(elle)|Nouveau|Nouvelle
Nouveau(elle)|Nouveau|Nouvelle
Messages : 19
Inscription : 06 mai 2011 16:02
Version de PhotoFiltre : Photofiltre Studio X
Système d'exploitation : Win10 64bits
Processeur : core i5-4460 @3.20GHz
Mémoire RAM : 16go
Localisation : Dijon ou presque

Re: Matrice de convolution et Plugin Arithmétique.

Message par kronky »

Je viens d'essayer sur plusieurs de mes photos et le résultat est pour le moins impressionnant. :clap:

Niveau netteté c'est largement aussi bon que mes plugin photoshop préférés... sans avoir besoin de tâtonner une heure pour trouver le réglage qui donne le plus de netteté sans apparition d'artefacts sur les contours.
Du très bon boulot. :D

Par contre, sur quels paramètres peut-on jouer si l'on souhaite que ça accentue juste un petit peu moins ?
Tom
Administrateur(trice)|Administrateur|Administratrice
Administrateur(trice)|Administrateur|Administratrice
Messages : 13216
Inscription : 02 févr. 2005 9:35

Re: Matrice de convolution et Plugin Arithmétique.

Message par Tom »

Ah merci, content que ça plaise. :)

Pour le réglage, on pourrait utiliser une matrice de convolution un peu moins nerveuse,
mais du coup on n'aurait pas besoin de la technique du double calque pour contracter les halos blancs des contours.

Donc nous avons l'image originale I et un calque C qui est le résultat de l'accentuation à l'état brut. (Avec des contours très blancs)
  • Le calque C est appliqué une première fois en fusion Superposition, avec l'intensité résultant de son opacité SS,
  • le résultat de cette fusion est stocké dans la valeur C2,
  • Le calque C est appliqué une deuxième fois en fusion Produit sur le résultat de la fusion précédente C2, avec l'intensité SP.
En jouant sur la valeur des paramètres SS et SP placés à dessein en tête de formule, on peut :
  • agir sur l'effet de renforcement de la netteté
  • ce qui a un effet simultané sur la gestion des contours
  • assombrir ou éclaircir si l'on attribue des valeurs différentes à SS et SP
J'avais d'ailleurs publié antérieurement un petit comparatif entre cette méthode du double calque et d'autres techniques d'accentuation :
viewtopic.php?p=162617#p162617
Le renforcement utilisé à l'époque était Filtre / Netteté / Renforcement : Gain 300%, Rayon 1, Seuil 3, Adoucir Non
Faute de temps je n'ai pas encore pu répondre aux innombrables réactions que ce post avait suscité. :lol:
Tom
Administrateur(trice)|Administrateur|Administratrice
Administrateur(trice)|Administrateur|Administratrice
Messages : 13216
Inscription : 02 févr. 2005 9:35

Re: Matrice de convolution et Plugin Arithmétique.

Message par Tom »

Comme ça me gavait un peu de recharger la formule à chaque essai, voici une version allégée entièrement mémorisable :

Code : Tout sélectionner

//Netteté par Convolution et double calque Superposition - Produit
SS:50;// Opacité-Solidité Calque Superposition
SP:50;I:I1 ;// Opacité-Solidité Calque Produit
T1:scroll(I,1,1)*(-2);T2:scroll(I,0,1)*(-2);T3:scroll(I,-1,1)*(-2);
T4:scroll(I,1,0)*(-2);T9:I*(22);T5:scroll(I,-1,0)*(-2);
T6:scroll(I,1,-1)*(-2);T7:scroll(I,0,-1)*(-2);T8:scroll(I,-1,-1)*(-2);
Div:6; Dec:0;
C:((T1+T2+T3+T4+T5+T6+T7+T8+T9)/Div)+Dec;
M:0 ; // Si Masque, M:Ix, x=num image-masque ouverte
D:W(I);A:D;//Pas de Dégradé. A=amplitude hor. ou vert.
//D:X(I);A:W(I);//Dégradé Horiz. Gauche-Droite 
//D:W(I)-X(I);A:W(I);//Dégradé Horiz. Droite-Gauche
//D:Y(I);A:H(I);//Dégradé Vert. Haut-Bas 
//D:H(I)-Y(I);A:H(I);//Dégradé Vert. Bas-Haut 
V:255-((255-C)*(255-I)/255) ;
C2:AlphaBlend(I,V,D*(255-M)/255*SS/100,A);
V:(C*C2)/255 ;
AlphaBlend(C2,V,D*(255-M)/255*SP/100,A)
//Adaptation Matrice de convolution=> Dominique "dve" sur Forum PhotoFiltre
//Adaptation Technique d'accentuation de contours => http://jptom.free.fr/
kronky
Nouveau(elle)|Nouveau|Nouvelle
Nouveau(elle)|Nouveau|Nouvelle
Messages : 19
Inscription : 06 mai 2011 16:02
Version de PhotoFiltre : Photofiltre Studio X
Système d'exploitation : Win10 64bits
Processeur : core i5-4460 @3.20GHz
Mémoire RAM : 16go
Localisation : Dijon ou presque

Re: Matrice de convolution et Plugin Arithmétique.

Message par kronky »

Ah merci, content que ça plaise.
Oui, par contre c'est vachement gourmand en RAM ! :shock:

Je n'avais essayé que sur des photos redimensionnées pour impression et je n'avais eu aucun problème. Par contre, sur les photo fraichement sorties de mon APN en 4320x2880, le calcul n'arrive pas au bout et j'ai un message d'erreur "mémoire insufissante" malgré 2Go de RAM.

Enfin bon, ceci-dit, ce n'est pas fondamentalement gênant pour moi puisque j'applique systématiquement l'accentuation en fin de chaine après le redimensionnement.

J'ai un peu observé la charge mémoire pendant le calcul. Ça joue le yoyo un moment en restant autour d'1.5Go, puis ça chute pour descendre vers 500Mo et c'est juste après que ça plante. Je ne sais pas si ça peut t'aider pour savoir à quel moment du calcul ça devient lourd. Peut-être y a t'il moyen de passer par une étape intermédiaire pour contourner le problème ?
Tom
Administrateur(trice)|Administrateur|Administratrice
Administrateur(trice)|Administrateur|Administratrice
Messages : 13216
Inscription : 02 févr. 2005 9:35

Re: Matrice de convolution et Plugin Arithmétique.

Message par Tom »

Bonsoir,

oui c'est sans doute gourmand en Ram, et on peut effectivement décomposer les opérations,
mais l'intérêt du module arithmétique c'est tout de même de pouvoir enchainer plusieurs opérations.

D'autre part il ne me parait pas vraiment nécessaire de renforcer violemment la netteté sur des photos
qui dépassent le format 20x30, et dans ce cas les outils intégrés sont très efficaces.

Sinon, j'ai une autre proposition à te faire qui devrait être moins gourmande en principe :
un filtre de convolution inverse de mon précédent pour faire du flou et l'équivalent d'un filtre passe-haut,
effectué avec une fusion Incrustation (appelé aussi Overlay) :

Code : Tout sélectionner

//Netteté : Convolution Flou-Tom Passe-haut Incrustation
S:300; I:I1 ;// Opacité-Solidité Incrustation exprimée en %
T1:scroll(I,1,1)*2;T2:scroll(I,0,1)*2;T3:scroll(I,-1,1)*2;
T4:scroll(I,1,0)*2;T9:I*6;T5:scroll(I,-1,0)*2;
T6:scroll(I,1,-1)*2;T7:scroll(I,0,-1)*2;T8:scroll(I,-1,-1)*2;
Div:22; Dec:0;
C:255-(((T1+T2+T3+T4+T5+T6+T7+T8+T9)/Div)+Dec);//Résultat flou négatif
M:0 ; // Si Masque, M:Ix, x=num image-masque ouverte
D:W(I);A:D;//Pas de Dégradé. A=amplitude hor. ou vert.
//D:X(I);A:W(I);//Dégradé Horizontal Gauche-Droite 
//D:W(I)-X(I);A:W(I);//Dégradé Horizontal Droite-Gauche
//D:Y(I);A:H(I);//Dégradé Vertical Haut-Bas 
//D:H(I)-Y(I);A:H(I);//Dégradé Vertical Bas-Haut 
V:I*(I + C)/256;
AlphaBlend(I,V,D*(255-M)/255*S/100,A)
//Adaptation Matrice de convolution=> Dominique "dve" sur Forum PhotoFiltre
//Adaptation Passe-haut Incrustation=> http://jptom.free.fr/
A signaler au passage que l'on peut appliquer le renforcement de façon sélective sur les tons foncés ou les tons clairs,
en reprenant l'image elle même comme masque : l'image en positif pour accentuer plutôt les tons clairs,
l'image en négatif pour accentuer plutôt les tons foncés.
Il suffit d'attribuer à M:0 la valeur M:I pour accentuer plutôt les tons clairs
et la valeur M:255-I pour accentuer plutôt les tons foncés.
kronky
Nouveau(elle)|Nouveau|Nouvelle
Nouveau(elle)|Nouveau|Nouvelle
Messages : 19
Inscription : 06 mai 2011 16:02
Version de PhotoFiltre : Photofiltre Studio X
Système d'exploitation : Win10 64bits
Processeur : core i5-4460 @3.20GHz
Mémoire RAM : 16go
Localisation : Dijon ou presque

Re: Matrice de convolution et Plugin Arithmétique.

Message par kronky »

Même sanction "Mémoire insuffisante". Mais comme tu le dis, ce n 'est pas bloquant pour moi puisque j'applique la netteté après redimensionnement, donc en pratique je ne rencontre pas ce problème.
dve
Nouveau(elle)|Nouveau|Nouvelle
Nouveau(elle)|Nouveau|Nouvelle
Messages : 34
Inscription : 09 juin 2010 8:08
Version de PhotoFiltre : 10.7.1
Système d'exploitation : XP SP3 / Seven SP1
Processeur : Intel 5 3400
Mémoire RAM : 8 Go
Localisation : CLICHY LA GARENNE

Re: Matrice de convolution et Plugin Arithmétique.

Message par dve »

Bonjour,

j'ai fait l'essai suivant :
une fois que les variables ne sont plus utilisées
on les vide en leur affectant la valeur 0.

par comparaison avant et après vidage des variables,
il m'a semblé en suivant la charge UC que cette dernière avait diminué.

Code : Tout sélectionner

//Netteté : Convolution Flou-Tom Passe-haut Incrustation
S:300; I:I1 ;// Opacité-Solidité Incrustation exprimée en %
T1:scroll(I,1,1)*2;T2:scroll(I,0,1)*2;T3:scroll(I,-1,1)*2;
T4:scroll(I,1,0)*2;T9:I*6;T5:scroll(I,-1,0)*2;
T6:scroll(I,1,-1)*2;T7:scroll(I,0,-1)*2;T8:scroll(I,-1,-1)*2;
//Ici ont fait la somme qui sera utilisée pour le résultat du flou négatif
R:T1+T2+T3+T4+T5+T6+T7+T8+T9;
//On vide les variables T1 à T9
T1:0;T2:0;T3:0;T4:0;T5:0;T6:0;T7:0;T5:0;T9:0;
Div:22; Dec:0;
C:255-(((R)/Div)+Dec);//Résultat flou négatif
//on vide à nouveau les variables qui ne seront plus utilisées
R:0;Div:0;
//
M:0 ; // Si Masque, M:Ix, x=num image-masque ouverte
D:W(I);A:D;//Pas de Dégradé. A=amplitude hor. ou vert.
//D:X(I);A:W(I);//Dégradé Horizontal Gauche-Droite 
//D:W(I)-X(I);A:W(I);//Dégradé Horizontal Droite-Gauche
//D:Y(I);A:H(I);//Dégradé Vertical Haut-Bas 
//D:H(I)-Y(I);A:H(I);//Dégradé Vertical Bas-Haut 
V:I*(I + C)/256;
AlphaBlend(I,V,D*(255-M)/255*S/100,A)
//Adaptation Matrice de convolution=> Dominique "dve" sur Forum PhotoFiltre
//Adaptation Passe-haut Incrustation=> http://jptom.free.fr/
Est ce un effet de mon imagination ?!!!


Cordialement.


Dominique
dve
Nouveau(elle)|Nouveau|Nouvelle
Nouveau(elle)|Nouveau|Nouvelle
Messages : 34
Inscription : 09 juin 2010 8:08
Version de PhotoFiltre : 10.7.1
Système d'exploitation : XP SP3 / Seven SP1
Processeur : Intel 5 3400
Mémoire RAM : 8 Go
Localisation : CLICHY LA GARENNE

Re: Matrice de convolution et Plugin Arithmétique.

Message par dve »

Le codage suivant
semble mettre la différence encore plus en évidence

A chaque ligne, après avoir incrémenté la valeur de R
on vide la variable T1 à T9

Code : Tout sélectionner

//Netteté : Convolution Flou-Tom Passe-haut Incrustation
S:300; I:I1 ;// Opacité-Solidité Incrustation exprimée en %

T1:scroll(I,1,1)*2;
R:T1;T1:0;

T2:scroll(I,0,1)*2;
R:R+T2;T2:0;

T3:scroll(I,-1,1)*2;
R:R+T3;T3:0;

T4:scroll(I,1,0)*2;
R:R+T4;T4:0;

T9:I*6;
R:R+T9;T9:0;

T5:scroll(I,-1,0)*2;
R:R+T5;T5:0;

T6:scroll(I,1,-1)*2;
R:R+T6;T6:0;

T7:scroll(I,0,-1)*2;
R:R+T7;T7:0;

T8:scroll(I,-1,-1)*2;
R:R+T8;T8:0;

Div:22; Dec:0;
C:255-(((R)/Div)+Dec);//Résultat flou négatif
//on vide à nouveau les variables qui ne seront plus utilisées
R:0;Div:0;
//
M:0 ; // Si Masque, M:Ix, x=num image-masque ouverte
D:W(I);A:D;//Pas de Dégradé. A=amplitude hor. ou vert.
//D:X(I);A:W(I);//Dégradé Horizontal Gauche-Droite 
//D:W(I)-X(I);A:W(I);//Dégradé Horizontal Droite-Gauche
//D:Y(I);A:H(I);//Dégradé Vertical Haut-Bas 
//D:H(I)-Y(I);A:H(I);//Dégradé Vertical Bas-Haut 
V:I*(I + C)/256;
AlphaBlend(I,V,D*(255-M)/255*S/100,A)
//Adaptation Matrice de convolution=> Dominique "dve" sur Forum PhotoFiltre
//Adaptation Passe-haut Incrustation=> http://jptom.free.fr/
Evidement cela alourdi notablement l'écriture du code ainsi que le nombre de lignes.


Cordialement.


Dominique
Tom
Administrateur(trice)|Administrateur|Administratrice
Administrateur(trice)|Administrateur|Administratrice
Messages : 13216
Inscription : 02 févr. 2005 9:35

Re: Matrice de convolution et Plugin Arithmétique.

Message par Tom »

Très nette différence, en effet. Je vais en tenir compte dans les prochaines versions.
Merci encore à tous deux de ces infos. :)
kronky
Nouveau(elle)|Nouveau|Nouvelle
Nouveau(elle)|Nouveau|Nouvelle
Messages : 19
Inscription : 06 mai 2011 16:02
Version de PhotoFiltre : Photofiltre Studio X
Système d'exploitation : Win10 64bits
Processeur : core i5-4460 @3.20GHz
Mémoire RAM : 16go
Localisation : Dijon ou presque

Re: Matrice de convolution et Plugin Arithmétique.

Message par kronky »

En effet, en vidant les variables je n'ai plus de soucis de mémoire pour une photo pleine taille.
J'ai donc reporté le principe sur le traitement en double calque, la charge mémoire dépasse à peine 1Go à son pic.

Code : Tout sélectionner

//Netteté par Convolution et double calque Superposition - Produit
SS:50;// Opacité-Solidité Calque Superposition
SP:50;I:I1 ;// Opacité-Solidité Calque Produit
T1:scroll(I,1,1)*(-2);
R:T1;T1:0;

T2:scroll(I,0,1)*(-2);
R:R+T2;T2:0;

T3:scroll(I,-1,1)*(-2);
R:R+T3;T3:0;

T4:scroll(I,1,0)*(-2);
R:R+T4;T4:0;

T9:I*(22);
R:R+T9;T9:0;

T5:scroll(I,-1,0)*(-2);
R:R+T5;T5:0;

T6:scroll(I,1,-1)*(-2);
R:R+T6;T6:0;

T7:scroll(I,0,-1)*(-2);
R:R+T7;T7:0;

T8:scroll(I,-1,-1)*(-2);
R:R+T8;T8:0;

Div:6; Dec:0;
C:(R/Div)+Dec;
M:0 ; // Si Masque, M:Ix, x=num image-masque ouverte
D:W(I);A:D;//Pas de Dégradé. A=amplitude hor. ou vert.
//D:X(I);A:W(I);//Dégradé Horiz. Gauche-Droite 
//D:W(I)-X(I);A:W(I);//Dégradé Horiz. Droite-Gauche
//D:Y(I);A:H(I);//Dégradé Vert. Haut-Bas 
//D:H(I)-Y(I);A:H(I);//Dégradé Vert. Bas-Haut 
Div:0;R:0;
V:255-((255-C)*(255-I)/255) ;
C2:AlphaBlend(I,V,D*(255-M)/255*SS/100,A);
V:(C*C2)/255 ;
AlphaBlend(C2,V,D*(255-M)/255*SP/100,A)
//Adaptation Matrice de convolution=> Dominique "dve" sur Forum PhotoFiltre
//Adaptation Technique d'accentuation de contours => http://jptom.free.fr/
Tom
Administrateur(trice)|Administrateur|Administratrice
Administrateur(trice)|Administrateur|Administratrice
Messages : 13216
Inscription : 02 févr. 2005 9:35

Re: Matrice de convolution et Plugin Arithmétique.

Message par Tom »

Bonsoir,

J'ai fait un peu de ménage pour optimiser l'occupation de la mémoire, tout en améliorant la lisibilité du code,
et j'en ai aussi profité pour supprimer les aberrations dues au scroll sur les bords de l'image.

Voici donc une nouvelle version pour la "Netteté par Convolution et double calque Superposition - Produit" :

Code : Tout sélectionner

//Netteté Tom par Convolution et double calque Superposition - Produit
SS:50; // Opacité-Solidité Calque Superposition
SP:50; I:I1; // Opacité-Solidité Calque Produit
R:scroll(I,1,1)*(-2);    R:R+scroll(I,0,1)*(-2);  R:R+scroll(I,-1,1)*(-2);
R:R+scroll(I,1,0)*(-2);  R:R+(I*22);              R:R+scroll(I,-1,0)*(-2);
R:R+scroll(I,1,-1)*(-2); R:R+scroll(I,0,-1)*(-2); R:R+scroll(I,-1,-1)*(-2);
Div:6; Dec:0; X:X(I); Y:Y(I); W:W(I); H:H(I);
C:If(((X>0)and(X<W-1)and(Y>0)and(Y<H-1)),(R/Div)+Dec,I);
R:0; Div:0; X:0; Y:0; W:0; H:0;
M:0 ; // Si Masque, M:Ix, x=num image-masque ouverte
D:W(I);A:D;//Pas de Dégradé. A=amplitude hor. ou vert.
//D:X(I);A:W(I);//Dégradé Horiz. Gauche-Droite 
//D:W(I)-X(I);A:W(I);//Dégradé Horiz. Droite-Gauche
//D:Y(I);A:H(I);//Dégradé Vert. Haut-Bas 
//D:H(I)-Y(I);A:H(I);//Dégradé Vert. Bas-Haut 
V:255-((255-C)*(255-I)/255);
C2:AlphaBlend(I,V,D*(255-M)/255*SS/100,A);
V:(C*C2)/255; C:0;
AlphaBlend(C2,V,D*(255-M)/255*SP/100,A)
//Adaptation Matrice de convolution=> Dominique "dve" sur Forum PhotoFiltre
//Adaptation Technique d'accentuation de contours => http://jptom.free.fr/
Nouvelle version optimisée pour "Netteté : Convolution Flou-Tom Passe-haut Incrustation" :

Code : Tout sélectionner

//Netteté : Convolution Flou-Tom Passe-haut Incrustation
S:300; I:I1 ;// Opacité-Solidité Incrustation exprimée en %
R:scroll(I,1,1)*2;    R:R+scroll(I,0,1)*2;  R:R+scroll(I,-1,1)*2;
R:R+scroll(I,1,0)*2;  R:R+(I*6);            R:R+scroll(I,-1,0)*2;
R:R+scroll(I,1,-1)*2; R:R+scroll(I,0,-1)*2; R:R+scroll(I,-1,-1)*2;
Div:22; Dec:0; X:X(I); Y:Y(I); W:W(I); H:H(I);
C:If(((X>0)and(X<W-1)and(Y>0)and(Y<H-1)),255-((R/Div)+Dec),255-I);
R:0; Div:0; X:0; Y:0; W:0; H:0;
M:0 ; // Si Masque, M:Ix, x=num image-masque ouverte
D:W(I);A:D;//Pas de Dégradé. A=amplitude hor. ou vert.
//D:X(I);A:W(I);//Dégradé Horizontal Gauche-Droite
//D:W(I)-X(I);A:W(I);//Dégradé Horizontal Droite-Gauche
//D:Y(I);A:H(I);//Dégradé Vertical Haut-Bas
//D:H(I)-Y(I);A:H(I);//Dégradé Vertical Bas-Haut
V:I*(I + C)/256; C:0;
AlphaBlend(I,V,D*(255-M)/255*S/100,A)
//Adaptation Matrice de convolution=> Dominique "dve" sur Forum PhotoFiltre
//Adaptation Passe-haut Incrustation=> http://jptom.free.fr/
Voilà, je vais essayer de faire encore quelques essais avec des matrices un peu plus nerveuses pour des renforcements plus costauds.