Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

COMPARER DEUX AVI ET EN TROUVER LES POINTS COMMUNS (GENERIQUES)


Information sur la source

Catégorie :API Classé sous : AVI, BMP, comparer, API, generique Niveau : Initié Date de création : 21/09/2008 Date de mise à jour : 23/09/2008 00:43:01 Vu / téléchargé: 1 573 / 128

Note :
Aucune note

Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
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

  • Je vous laisse lire le code ^^
  • J'ai essaye de commenté un minimum pour la compréhension.
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
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

23 septembre 2008 00:41:21 :
Tout programme peut être améliorer. Le précédent était juste une étude, une ébauche ^^
23 septembre 2008 00:43:01 :
Toute chose évolue

Commentaires et avis

signaler à un administrateur
Commentaire de Renfield le 22/09/2008 05:28:37 administrateur CS

tu dois rebooter car ton Call AVIFileRelease(AVIfile) n'est fait qu'en cas d'erreur de traitement...

signaler à un administrateur
Commentaire de MadM@tt le 22/09/2008 23:04:58

Tu dis faire la moyenne des pixels, mais tu parle de la moyenne des couleurs ?

signaler à un administrateur
Commentaire de Flocreate le 23/09/2008 00:08:52

Salut,

bon, j'ai énormément avance mon programme.
Il n'y a plus de trucs "bizards" ^^

Problème de Non libération des fichiers : RÉSOLU
En fait je ne libérai pas les différents pointeurs sur l'avi

MadM@t, pour répondre a ta question, en fait, dans un Frame (image code en BMP)
il y a grosso modo (je rentre pas dans le détail de codage bmp)
Largeur * Hauteur * 3 bytes
Pour ma part, je fait la somme de N bytes * 3
N c'est le nombre de pixels que je veux échantillonner
3 c'est qu'il y a 3 couleurs par pixel
Ensuite, je divise cette somme par N*3 --> moyenne de tout ca.

L'intérêt ??? et bien ces N pixels echantillonés sont pris a intervalles réguliers sur le frame (je ne teste pas genre un coin de l'image)
Cette valeur est conservée et me donne par la suite une ... fonction décrivant l'animé. Entre deux animés, (apres avoir tenu compte du NbFrame/Seconde qui insere une distorsion) on constate que les "fonctions" sont quasiment identique quand les animés sont identiques... --> voila mon générique
j'espère avoir répondu a ta question

Si je trouve comment on met a jour les fichiers sur VBfrance ^^ je vous invite a regarder la nouvelle version (en un seul morceau ^^) bien plus fiable quoi que encore en étude ^^

UN point qui me gène pour le moment ... c'est le temps d'échantillonnage ...
Ce temps important est du a l'utilisation de l'API
CopyMemory Lib "kernel32.dll"  si quelqu'un connais le moyen de diminuer ce temps... Au lieu de copier tout le frame je peu copier seulement les N*3 bytes... mais cela ne semble guère faire gagner de temps

Etape suivante, effectuer une analyse + poussée entre les deux fichiers.
En effet, la ca va bien pour trouver des parties qui sont exactement au meme endroit dans un avi... si jamais il y a un décalage (genre histoire + longue) le générique se décale et on ne trouve donc plus le générique...
A l'attaque (ca je pense que ce serra simple ^^)

J'espère être clair (même si je le suis rarement ^^)

Flocreate

signaler à un administrateur
Commentaire de MadM@tt le 23/09/2008 18:58:44

Donc, tout simplement, tu fais bien une moyenne des couleurs... ;-)

En gros, la fonction représente la luminosité du film à un instant donné si j'ai bien compris. Pour une utilisation plus poussée j'aurais regardé du côté des transformées de fourier.

PS : pour mettre à jour la source, c'est un bouton en haut de la page

signaler à un administrateur
Commentaire de Flocreate le 23/09/2008 23:46:17

MadM@att , en gros oui ^^ on peu considérer que mon gloubiboulga de moyenne me donne une valeur batarde qui représente un mélange de la luminance et de la crominance de l'image.

Le but de cette opération est de trouver une valeur qui caractérise l'image au mieux et dans son ensemble.

En ce qui concerne les séries de fourrier ^^ brr je n'y connais pas grand chose.
J'ai vu que cela était fortement utilisé pour le codage JPG, mais en quoi cela pourrait-il permettre une utilisation plus poussée ? En, sachant que je souhaite que  cette opération soit a la fois précise mais rapide.


Toute idée est bonne a prendre, je vais essayer de plancher sur la question.

signaler à un administrateur
Commentaire de MadM@tt le 24/09/2008 10:30:58

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").

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

il y a til une api qui remplirer le font un bmp [ par sex symbol ] il y a til une api qui remplirer le font un bmp car je nen ai pas trouver et sa me serai trè utile *** AVI controle de BSPlayer par API *** [ par salazar ] Existe t'il une API pour lancer BSplayer et le mettre en lecture ou en pause sans cliquer sur BSPlayer.Par exemple : BSPlayer s'ouvre tout seul, se me Utilistaion des API FindFirstFile, FindNextFile et FindClose [ par delta_wolf_orion ] Salut tout le monde, comment ça va?Bien vu que je suppose que vous êtes programmeur depuis longtemps, je me permet de vous soumettre ma question:Voilà Impression via Printer [ par NoFutur ] Bonjour à tous,Lorsque j'imprime une image via un picturebox qui contient du texte enrichis par la méthode "Picture1.Print" je note quelques petits dé DrawText, API, Effacer [ par salazar ] Comment effacer un texte écrit sur un objet par l'API DrawText ?Merci. conversion d'une image au format BMP [ par PHILOUVB ] Je cherche à savoir comment je peux calculerla taille totale d'une image en octetla résolution horizontale de cette image j'ai une image de 600 x 800 Affichage d'un fond d'écran [ par PHILOUVB ] J'ai créé un programme qui me permet d'afficher des fonds d'écran différents chaque jour.Mais je me bloque à un petit problème. Lorsque l'ordinateur d les api comment ca marche [ par therealgmk ] thegmkthegmk api Get/setDibbits simplement expliqué [ par RDX ] SalutJ'aimerais connaitre la methode la plus rapide pour afficher et travailler des images en dur. J'ai cru comprendre que Get/setDibbits étaient les Transformer une anim flash en avi? [ par smilandfly ] SalutEst -il possible de transformer une anim flash en avi?Qd j'exporte via flash en video, aucun de mes clips n'est activé....seul le scenario princi


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,374 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.