IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Supprimer les parasites d'une VHS numérisée


Sujet :

Algorithmes et structures de données

  1. #1
    Membre éclairé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Points : 763
    Points
    763
    Par défaut Supprimer les parasites d'une VHS numérisée
    Bonjour à tous et toutes !
    J'ai numérisée une VHS ce week-end, et j'ai des parasites (lignes bleues, noires ou rouges) qui apparaissent, mais pas toujours. Cela dépend de la cassette, je n'ai rien pu faire en amont. Existe-t-il une méthode pour les supprimer ?
    Je pense qu'un filtre doit pouvoir se réaliser, mais j'avoue ne pas voir comment le faire. A moins qu'un logiciel n'existe, mais je ne connais pas.

    Merci d'avance de votre réponse !
    Aucune réponse à une question technique par MP.
    Ce qui vous pose problème peut poser problème à un(e) autre

    http://thebrutace.labrute.fr

  2. #2
    Membre averti Avatar de Flo.
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2002
    Messages : 379
    Points : 404
    Points
    404
    Par défaut
    Salut,

    Peut-on facilement les isoler ces lignes ?

    Admettons que tu arrives à les isoler : ce sont des lignes (horizontales je suppose) de longueur, celle de l'image, de même constante d'un bout à l'autre, etc, etc.

    Ensuite, admettons (puisque tu donnes très peu d'infos sur leur nature ) qu'elles soient isolées les unes des autres, c'est à dire qu'il n'y a jamais 2 lignes qui se touchent ....

    Admettons tout ça, tu peux alors faire un masque : mettons les lignes en noir , le reste (les pixels "sains") en blanc.

    Peut-être pourrait-on déterminer la couleur des pixels (noirs) appartenant aux lignes à partir d'une interpolation des pixels sains (blancs) voisins ?

    Nous montrer des images serait l'idéal.

    Flo.

  3. #3
    Membre éclairé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Points : 763
    Points
    763
    Par défaut
    Voici un exemple, mais elles bougent en permanence.
    En clair, elles sont aléatoires
    Aucune réponse à une question technique par MP.
    Ce qui vous pose problème peut poser problème à un(e) autre

    http://thebrutace.labrute.fr

  4. #4
    Membre averti Avatar de Flo.
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2002
    Messages : 379
    Points : 404
    Points
    404
    Par défaut
    Je pense à un truc mais alors c'est vraiment histoire de prendre une pause café.

    Tu passes en YUV (Luminance, chrominance rouge, chrominance bleue). Tes lignes ressortent bien en rouge et en bleu (ça c'est sur car j'ai passer ton image en YUV). Tu fais un filtre passe-bas sur les chrominance rouge et bleue puis tu reviens en RGB.

    Je suis pas allé jusqu'au bout mais je pense qu'y a moyen d'avoir un faible résultat comme ça.

    Dans tous les cas je pense qu'il faut passer en YUV, puisque tes lignes prédominent dans les teintes du rouge et du bleu.

    Flo.

  5. #5
    Membre éclairé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Points : 763
    Points
    763
    Par défaut
    Mmh, pourquoi pas...
    Mais du coup, je vais avoir des bandes noires au lieu des anciennes bandes ?
    Et puis, je peux le faire sur une image, mais il existe un filtre capable de faire ça dans un logiciel de retouche vidéo gratuit, comme virtual dub ( ou autre, je prends !) ?
    Aucune réponse à une question technique par MP.
    Ce qui vous pose problème peut poser problème à un(e) autre

    http://thebrutace.labrute.fr

  6. #6
    Membre averti Avatar de Flo.
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2002
    Messages : 379
    Points : 404
    Points
    404
    Par défaut
    Et aprés le passage du passe-bas, toujours en YUV, tu récupères les valeurs des pixels supprimés (par le passe-bas) avec une interpolation sur les voisins sains. Tu reconstruis ainsi les parties manquantes de l'image par interpolation.

    Quant aux logiciels de retouche vidéo ... je crois que je me suis emporté et que j'ai un peu oublié le contexte . A ce niveau j'y connais absoluement rien du tout ... désolé.

    Par contre des filtres anti-lignes bleues, ça devrait exister sur ce genre de softs, non ? Les lignes bleues sur de la vidéo (de la vidéo numérisée) c'est un peu comme le poivre et sel ou le speckle sur une image ... c'est un type de bruit courant et bien connu des experts en la matière.

    Flo.

  7. #7
    Membre confirmé
    Profil pro
    Enseignant
    Inscrit en
    Avril 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2004
    Messages : 440
    Points : 451
    Points
    451
    Par défaut
    Vraiment pas simple à mon avis !
    Car en plus ton fond est loin d'être propre donc là aussi c'est chaud de tenter de fusionner les lignes bleues ou rouges avec tes infos du fond...

    En plus ton image est sombre etc etc...

    ça m'étonnerait qu'il y ait un logiciel capable de vraiment t'améliorer ça aujourd'hui...
    "Cultiver les sciences et ne pas aimer les hommes, c'est allumer un flambeau et fermer les yeux." Proverbe chinois

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    162
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2002
    Messages : 162
    Points : 88
    Points
    88
    Par défaut
    Peut-être qu'un logiciel comme VirtualDub pourrais vous aider http://www.virtualdub.org/

    Edit: Mince, je n'avais pas tout lu... désolé

  9. #9
    Membre éclairé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Points : 763
    Points
    763
    Par défaut
    Citation Envoyé par Flo.
    Et aprés le passage du passe-bas, toujours en YUV, tu récupères les valeurs des pixels supprimés (par le passe-bas) avec une interpolation sur les voisins sains. Tu reconstruis ainsi les parties manquantes de l'image par interpolation.
    Tu peux utiliser l'image, appliquer ta technique, et me montrer le résultat ?
    Si ça fonctionne, je programmerais le truc quand j'aurais 5 minutes...(enfin, 20 heures ^^).
    Aucune réponse à une question technique par MP.
    Ce qui vous pose problème peut poser problème à un(e) autre

    http://thebrutace.labrute.fr

  10. #10
    Membre averti Avatar de Flo.
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2002
    Messages : 379
    Points : 404
    Points
    404
    Par défaut
    Ouais je veux bien essayer.

    Mais t'as pas une image plus colorisée plutôt ?

    Flo.

  11. #11
    Membre averti Avatar de Flo.
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2002
    Messages : 379
    Points : 404
    Points
    404
    Par défaut
    Bon c'est pas grave ... l'image que tu as donnée est juste très sale .

    Je rappelles l'image originale :
    http://floriansella.free.fr/LignesBleues/pb_vhs.jpg

    Dans un premier temps, on convertit l'image RGB eu YUV :

    Voici l'image en luminance :
    http://floriansella.free.fr/LignesBl..._luminance.jpg

    Voici l'image en chrominance rouge :
    http://floriansella.free.fr/LignesBl...hrominance.jpg

    Voici l'image en chrominance bleue :
    http://floriansella.free.fr/LignesBl...hrominance.jpg

    Ensuite je seuille à 160 les 2 images de chrominance (le seuil est fixe mais c'est un exemple) :

    Voici l'image en chrominance rouge seuillée à 160 :
    http://floriansella.free.fr/LignesBl..._threshold.jpg

    Voici l'image en chrominance bleue seuillée à 160 :
    http://floriansella.free.fr/LignesBl..._threshold.jpg

    Ensuite, il faudrait une étape de suppression des non-lignes bleues seuillées. J'entends par là que des pixels n'appartenant pas à des lignes bleues sont en blancs. Il faudrait donc calculer pour chaque ligne le pourcentage de pixels blancs et mettre en noir toutes les lignes dont le pourcentage de pixels blancs est inférieur à 50% (ce qui ne correspond pas à une ligne bleue). Je ne l'ai pas fait pour l'exemple ...

    Ensuite je dilate les lignes (bleues) seuillées ...

    Voici donc les images de chrominance à reconstruire :
    http://floriansella.free.fr/LignesBl...econstruct.jpg
    http://floriansella.free.fr/LignesBl...econstruct.jpg

    Pour reconstruire les images (coloriser les pixels noirs), j'ai juste utilisé une interpolation linéaire d'ordre 1 : pour chaque pixel noir P, je cherche les 2 plus proches pixels non noirs de la même colonne (le 1er au-dessus P1 et le 1er en-dessous P2).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    D = P2y - P1y
     
    couleurP = couleurP1 * (Py - P1y) / D + couleurP2 * (P2y - Py) / D
    Puis ensuite je fais un flou horizonal de 3 pixels et cela seulement pour les pixels à reconstuire. Cette étape sert à améliorer un petit peu la verticalité des couleurs reconstruies par l'interpolation linéaire.

    Voici donc les images de chrominance reconstruites :
    http://floriansella.free.fr/LignesBl...onstructed.jpg
    http://floriansella.free.fr/LignesBl...onstructed.jpg

    Et finalement l'image YUV reconstruite convertie en RGB :
    http://floriansella.free.fr/LignesBl...eues_final.jpg

    Voilà. Les lignes bleues ont disparu mais bon il faudrait une image avec une palette de couleurs plus importantes parce que là l'image est carrément verte, ce qui facilite le traitement. C'est dans ce cas-là ou éliminer de fausses lignes bleues apres le seuillage interviendrait.

    A la place du seuillage, on pourrait faire mieux, au minimum un seuillage par hystérisis.

    L'interpolation linéaire sur les colonnes c'est parce que j'ai eu la flemme de faire mieux (et puis l'état de l'image originale ne m'a pas encouragé faut dire ). Mais sinon on pourrait faire mieux avec une interpolation d'ordre supérieur en regardant les pixels sur les colonnes de part et d'autre de la colonne.

    Donc si tu me donnes des images plus "agréables", je veux bien ré-essayer (c'est sympa comme problématique je trouve) ...

    A+

    Flo.

  12. #12
    Membre averti Avatar de Flo.
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2002
    Messages : 379
    Points : 404
    Points
    404
    Par défaut
    En revoyant le résultat, je crois que j'aurais du dilater un peu plus les lignes-bleues seuillées, parce qu'en regardant bien, on s'aperçoit que le contour des lignes-bleues est toujours présent ... mais bon comme c'est des contours flous ...

    D'un autre côté on pourrait coupler (pondérer) la phase de reconstruction des pixels noirs au résultat d'un autre traitement comme un filtrage homomorphique sur la teinte.

    En fait on peut voir que sous les lignes bleues, on distingue l'image réelle (par opposition à l'image obtenue) ... Ce qui sous-entend qu'on peut considérer les lignes bleues comme du bruit multiplicatif. Je pense à la teinte parce qu'en luminance et en saturation (excepté les lignes violettes) ça a pas l'air de trop changer.

    Enfin je dis un filtrage homomorphique comme j'aurais pu dire "allez hop au lit maintenant " ...

    A+

    Flo.

  13. #13
    Membre éclairé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Points : 763
    Points
    763
    Par défaut
    Joli résultat !
    Allez, une un peu meilleure, et va falloir que je demande le droit à l'image pour le frangin...
    Va falloir, si ta technique fonctionne, faire des tests sur de la vidéo ^^.
    Aucune réponse à une question technique par MP.
    Ce qui vous pose problème peut poser problème à un(e) autre

    http://thebrutace.labrute.fr

  14. #14
    Membre averti Avatar de Flo.
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2002
    Messages : 379
    Points : 404
    Points
    404
    Par défaut
    Je me permets d'insister (rapport au MP), elle est ou l'image ?

    Flo.

  15. #15
    Membre averti Avatar de Flo.
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2002
    Messages : 379
    Points : 404
    Points
    404
    Par défaut
    Salut,

    donc ça marche également sur la 2eme image.

    Voici, les 2 images originales :
    http://floriansella.free.fr/LignesBleues/pb_vhs.jpg
    http://floriansella.free.fr/LignesBl...s_original.JPG

    Les résultats obtenus avec les mêmes réglages :
    (seuilage des chrominances à 150 et élimination des non-lignes à moins de 50%)
    http://floriansella.free.fr/LignesBleues/final1.JPG
    http://floriansella.free.fr/LignesBleues/final2.JPG

    Et comme un soft vaut mieux que des paroles (uniquement images bmp 24 bits) :
    http://floriansella.free.fr/LignesBl...limination.exe

    Et comme un code vaut mieux qu'un soft (bcb 6) :
    http://floriansella.free.fr/LignesBl...gnesBleues.rar

    J'ai juste fais une petite modif, pour la création de l'image à reconstruire. Et j'ai implémenté l'élimination des non-lignes bleues (après seuillage). Pour l'interpolation, j'ai pas eu le temps de la changer (mais je suis sur qu'on peut faire bcp mieux avec un ordre supérieur ... mais maintenant que la petite appli est faite, j'essaierai demain soir ).

    Le petit soft, c'est parce qu'en fait j'utilisais des petits prog à droite et à gauche, pour convertir, seuiller et reconstruire ... et ça me gavait : donc là j'ai fais un soft qui fait tout. C'est plus simple et plus rapide.

    Le code est absoluement pas commenté (mais à minuit on commente plus) ... par contre le code est clair et devrait te permettre d'extraire chaque fonction (en c++ standart) (conversion RGB->YUV, dilatation, seuillage, reconstruction par interpolation linéaire et conversion YUV->RGB) pour les reporter dans un autre projet ... J'ai également la version xmmx de la plupart des fonctions (si tu comptes insérer tout ça dans de la vidéo, ça risque d'être nécessaire) ...

    Si tu comptes faire un soft qui fait le traitement sur de la vidéo avec cet algo je serais intéressé par éventuellement y participer : je sais pas programmer une lecture et un traitement sur de la vidéo ... mais j'aimerais bien savoir comment faire .

    Si l'algo fonctionne pas trop mal, fais le moi savoir et puis même envoie des images tests aussi ... Tiens nous au courant

    A+

    Flo.

    edit : je viens de voir sur le résultat de la 2eme image, qu'une ligne verte avait été créée ... Elle se trouve tout en haut de l'image et du coup l'interpolation fait mal son boulot (ya pas de pixels sains valides au dessus). Il faudrait donc modifier l'interpolation pour ces zones-là (haut et bas de l'image) ... mais un autre jour ...

    edit 2 : faudrait également reconstruire l'image en luminance (pour les lignes violettes) parce qu'on voit que les lignes violettes (plus brillantes) marquent l'image en luminance (ça se voit notamment sur la bouche de l'enfant ... le trait vient de la ligne violette qui altère l'image en luminance).

  16. #16
    Membre éclairé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Points : 763
    Points
    763
    Par défaut
    OK, effectivement, en première approximation, ça fonctionne bien .
    Pour du test sur de la vidéo, jamais fait, mais je ne pense pas que ce soit hyper complexe, vu les librairies qui existent ^^.
    Mais sinon, il me parait plus efficace de créer un filtre (ou une série de filtres) dans un logiciel comme virtual dub. La je n'ai pas tellement le temps, la semaine prochaine si j'ai un moment, je regarderais, voire même avant, sait-on jamais...
    Aucune réponse à une question technique par MP.
    Ce qui vous pose problème peut poser problème à un(e) autre

    http://thebrutace.labrute.fr

  17. #17
    Membre confirmé
    Profil pro
    Enseignant
    Inscrit en
    Avril 2004
    Messages
    440
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2004
    Messages : 440
    Points : 451
    Points
    451
    Par défaut
    Salut !

    Bon bah il faut croire que j'ai été trop négatif !

    Le résultat est pas mal !

    Pour ce qui est de l'extraction de la vidéo, il me semble qu'il y a pas mal de logiciels open source qui permettent d'extraire des images à paritr de la vidéo, voir d'effectuer des traitements sur chaque image...

    A+
    "Cultiver les sciences et ne pas aimer les hommes, c'est allumer un flambeau et fermer les yeux." Proverbe chinois

  18. #18
    Membre éclairé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Points : 763
    Points
    763
    Par défaut
    Je pense que l'on peu utiliser transcode, qui est un outil extrèmement puissant :
    http://www.transcoding.org/cgi-bin/t...Filter_Plugins

    Par exemple .
    Aucune réponse à une question technique par MP.
    Ce qui vous pose problème peut poser problème à un(e) autre

    http://thebrutace.labrute.fr

Discussions similaires

  1. Réponses: 9
    Dernier message: 06/11/2007, 12h36
  2. Supprimer les marges dans une page html
    Par Furius dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 12/01/2006, 04h41
  3. [vbexcel]Comment supprimer les doublons dans une combobox?
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 24/11/2005, 11h12
  4. Réponses: 9
    Dernier message: 27/10/2005, 13h20
  5. [DEBUTANT]Supprimer les espaces pour une requete
    Par tripper.dim dans le forum Oracle
    Réponses: 4
    Dernier message: 12/10/2005, 16h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo