Comparer deux avi et en trouver les points communs (generiques)

Soyez le premier à donner votre avis sur cette source.

Vue 4 211 fois - Téléchargée 471 fois

Description

Salut,

A terme ce programme serra capable de trouver les génériques dans une série d'aimés.

Ayez bien à l'esprit que ce programme est en cours de développement ^^

Mon programme avance a grand pas et en voici la version 2 . (en une seule partie celle la ^^)

Choisissez 2 .AVI et lancez la comparaison.
La première phase de traitement (la plus longue) est l'échantillonnage.
Cette étape permet de dresser une liste de valeur représentant d'une certaine manière chaque image de l'AVI
Ro... que c'est long vous dites vous ^^ mais c la faute a l'avi qui a 50K images (pour un épisode assez long ^^)hourra le truc c'est que cette étape est sauvée dans un fichier.ini créé dans le dossier App.path/INI.
On peut sélectionner un fichier ini a la place d'un fichier avi (cela évite de refaire le travail pour un fichier déjà échantillonné)
Pour ce faire, dans la boite de dialogue de choix de fichier change le filtre .avi en .ini et sélectionné le fichier souhaité


Les phases suivantes sont tout aussi casse pieds a coder mais bien plus classiques.
1)Recharger les valeur des fichiers Ini créés.
2)Tenir compte du Nb Frame/Seconde qui induit une distorsion sur le signal
3) Tenir compte du pas d'échantillonage qui peu égallement provoque une distorsion
4) Faire la diférence entre les deux courbes
5) Lisser
6) Ne pas tenir compte des pics (filtre passe bas)
7) Ne pas tenir compte des similitudes aléatoires (filtre passe haut)
8) Admirer le résultat ^^

Perso, je conseil un Pas_Frame de 10 et un Nb_Pixel_par_frame de 5000 pour l'échantillonnage ;)

Florentcreate

Source / Exemple :


Je vous laisse lire le code ^^
J'ai essaye de commenté un minimum pour la compréhension.

Conclusion :


Bonne prog a tous et si vous avez des commentairs , suggestions ou remarques, je suis à l'écoute.

remarque, cette source s'inscrit dans le cadre plus large d'un projet permettant de regarder une série d'animés en chuintant les passages récurant et sans se bouger de son lit ^^)

Florentcreate

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Flocreate
Messages postés
307
Date d'inscription
lundi 17 juillet 2006
Statut
Membre
Dernière intervention
27 mai 2012
3 -
Bonjour,
Non, je n'ai pas porté ce code sous un autre langage que VB6.
J'utilise les API Windows pour lire le contenu des fichiers AVI. Il faut avoir a l'esprit que les API dépendent du noyau de Windows. Il arrive que des fonctions ne soient plus prises en charge en changeant de version d'OS. Il faut vérifier sur MSDN.

A ma connaissance Windows ne peut ouvrire qu'un nombre limité de CODECs ( et uniquement des AVI ? )
Il serrait interessant de voir si il n'existe pas des librairies qui fasse le même travaille ( je pense en particulier a VLC. )

cordialement,
florent
deruaz
Messages postés
2
Date d'inscription
dimanche 6 août 2006
Statut
Membre
Dernière intervention
27 mai 2012
-
Rebonjour,

J'ai essayé de compiler ton programme sous windows 7 , visual basic 8 en important le proget, mais j'ai de nombreuses erreur de chose non definie ou de syntax non admise.
Je n'ai pas reussi a installer vb6 sous windows 7.
Aurais-tu une version plus recente de ton programme qui marche sous cisual basic 8?

Merci d'avance
Flocreate
Messages postés
307
Date d'inscription
lundi 17 juillet 2006
Statut
Membre
Dernière intervention
27 mai 2012
3 -
Bonjour,

Je pense que cela est tout a fait réalisable. Au moins, tu trouvera toutes les fonctions (api windows) nécessaires pour accéder aux données d'un fichier AVI.
Attention cependant a la méthode pour comparer les deux images. Mon astuce d’intensité moyenne ne conviendra pas (je pense)...

Cordialement,
deruaz
Messages postés
2
Date d'inscription
dimanche 6 août 2006
Statut
Membre
Dernière intervention
27 mai 2012
-
Bonjour ton idée m'interesse, mais por trouver une image dans un avi: le but et de localiser le debut et la fin d'une serie enregistrée en ayant extrait auparavant une image sur le generique de debut et de fin.
Pense-tu que je puisse modifier ton programme facilement pour faire cela?

Merci d'avance
MadM@tt
Messages postés
2215
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
16 juillet 2009
-
Ben je te garanti rien, je sais que la transformée de fourier d'une image donne le spectre de l'image (qu'est ce que c'est précisément... bonne question j'ai eu qq cours la dessus et un projet, mais j'ai toujours pas vraiment assimilé le côté "spectre d'image"), un peu comme le spectre d'une son :les différentes fréquences qui composent le son (utilisé dans le codage MP3 si je me trompe pas).
Je me souviens qu'on avait appliqué des transformées de fourier à des images dont la construction était similaire : un dessin en noir & blanc dans un cadre noir. et les spectres étaient semblables. Enfin niveau rapidité c'est sur que ça va être bien plus lent. C'est vrai que si pour ton application cette méthode convient, ne t'embete pas plus, mais pour la comparaison d'images en général ça serait peut etre plus adapté (c'est une méthode plus "fiable").

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.