Filtrer un jpeg

J’avais vu dans Paint Shop Pro un petit filtre sympa qui était Jpeg
Artefact Remover (ou un truc du genre), et qu ajoutait une sorte de
bruit sur les jpeg, et qui atténuait sympatiquement donc lesdits
artefacts.

Quelqu’un saurait-il comment ça marche et comment en coder un, dans le principe ?
Voila voila

A priori, si j’avais à programmer ce genre de filtre, je commencerais par choisir au hasard un ensemble de points qui seront modifiés (en me débrouillant pour avoir un certain éparpillement de ces points). Je modifierais la valeur RGB de chacun de ces points avec une petite marge, par exemple 10.
Exemple : mon point fait : R=128; G=23, B=205
Je dis que je change chaque composante de 10;
mon point fait : R=138; G=33, B=215.

Après, il vaut mieux que la valeur de modification soit aléatoire pour chaque point(de -10 a 10 par exemple pour avoir vraiment une impression de bruit aléatoire et pas simplement une modification linéaire de la couleur). Il faut vérifier qu’on n’obtient pas une valeur inférieure à 0 ou supérieure à 255.

Ce message a été édité par Arkhatope le 01/03/2004

Oui, en regardant bien le résultat que donne Paint Shop Pro (enfin d’après mes souvenirs), on avait un peu l’impression qu’ils ne changaient pas la valeur des pixels mais qu’il les changeait de place.
A priori on pourrait prendre un pixel, et prendre au pif un aute endroit de l’image pour l’interchanger à condition que leur valeur bien sur soit assez proche quand même.
L’avantage serait que la luminosité globale de l’image ne varierait pas (ce qui se produirait avec un simple bruit).
Faudrait que je teste ça quand j’aurais le temps, mais j’ai peur que ça ne soit pas du tout aussi simple…

Ah d’accord. A ce moment là, le plus pratique serait probablement un système de matrices : par exemple tu divises ton images en X matrices de 40 sur 40 pixels, tu définis à l’intérieur de chaque matrice des binômes de pixels, et tu intervertis les pixels de chaque binôme, peut-être ?
Tu as sûrement plusieurs méthodes possibles, dans tous les cas ça va être sympa à faire.

Wai voila, ça serait une idée, après le but c’est de trouver la taille idéale des matrices tout ça…
Je testerai ça ce soir pour voir un peu.

A mon avis il faut surtout bien comprendre comment fonctionne la compression JPG (qui effectivement marche par applicatin de “matrice” de differente tailles recursivement sur l’image) pour savoir comment en attenuer les artefacts. Enfin c’est mon avis pour avoir un truc efficace, pas un tatonnement au pifometre qui peut avoir des resultats tres variables selons les images Enfin c’est juste mon avis.

Bien d’accord, mais je me demande comment il serait possible de localiser les artefacts pour les identifier en tant que tels. L’idéal serait une retouche manuelle de l’image, mais comme l’idée est de faire un truc automatique… ou alors, il faut taper dans la reconnaissance de forme, et personnellement, ça va au-dessus de mes connaissances.
Et puis, même si ça ne marche pas comme on veut, c’est quand même un petit programme sympa à faire
Ce message a été édité par Arkhatope le 01/03/2004

Oui je suis bien d’accord avec Glop aussi, mais là c’est une première réflexion plus pour faire mumuse que pour vraiment dire “tu vois le jpeg crade là, bah hophop, on croirait que c’est du bmp maintenant, fort non ?”.
Forcément, détecter les block etc, là ça touche tout de suite dans les trucs de haut niveau, j’ai pas la prétention ni le courage de faire ça (mais si quelqu’un l’a fait avant moi et que c’est en open-source, je veux bien jeter un oeil quand même).