Précédent   Forum du club des développeurs et IT Pro > Autres langages > Algorithmes > Traitement d'images
Traitement d'images Forum d'entraide sur le traitement d'images et l'analyse d'images et de vidéos. Avant de poster : Cours de traitement d'images
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 31/12/2012, 11h57   #1
rockley
Membre confirmé
 
Avatar de rockley
 
Homme
Inscription : décembre 2010
Messages : 332
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Arménie

Informations forums :
Inscription : décembre 2010
Messages : 332
Points : 274
Points : 274
Par défaut Images identiques de différentes tailles

Bonjour à tous. C'est la première fois que je viens dans cette partie du forum.

Voilà mon problème.

J'ai des dossiers contenant x JPEGs.
Dans ces x JPEGs, il y a des images identiques (uniquement dans un même dossier) mais de taille différantes.
Comment puis-je savoir quelles images sont identiques et supprimer les doublons.

J'ai également une forte contrainte de performance. Les JPEGs dépassent le terra.

Avez-vous une solution viable à me proposer ?
Merci d'avance pour votre aide.
rockley est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/12/2012, 12h58   #2
pseudocode
Rédacteur/Modérateur
 
Avatar de pseudocode
 
Homme Xavier Philippeau
Architecte système
Inscription : décembre 2006
Messages : 9 815
Détails du profil
Informations personnelles :
Nom : Homme Xavier Philippeau
Âge : 40
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Architecte système
Secteur : Industrie

Informations forums :
Inscription : décembre 2006
Messages : 9 815
Points : 16 464
Points : 16 464
Une méthode simple, c'est de calculer un descripteur pour chaque image.

Un histogramme de couleurs (un seul global ou un par zones) devrait suffire à trouver les doublons. Pour les images volumineuses, on peut se limiter à un échantillon de pixels.
__________________
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
pseudocode est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/12/2012, 14h49   #3
rockley
Membre confirmé
 
Avatar de rockley
 
Homme
Inscription : décembre 2010
Messages : 332
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Arménie

Informations forums :
Inscription : décembre 2010
Messages : 332
Points : 274
Points : 274
Merci pour ta réponse pseudocode mais malheureusement je n'ai pas bien compris. Aurais-tu des liens de tuto ou pourrais tu l'expliquer plus précisement.

Je fais des recherches sur "calculer descripteur image" ça ne donne pas grand chose. Je code en c# et non mathLab. Je ne sais pas si ça fait une différence.
rockley est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/12/2012, 15h21   #4
pseudocode
Rédacteur/Modérateur
 
Avatar de pseudocode
 
Homme Xavier Philippeau
Architecte système
Inscription : décembre 2006
Messages : 9 815
Détails du profil
Informations personnelles :
Nom : Homme Xavier Philippeau
Âge : 40
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Architecte système
Secteur : Industrie

Informations forums :
Inscription : décembre 2006
Messages : 9 815
Points : 16 464
Points : 16 464
Citation:
Envoyé par rockley Voir le message
Merci pour ta réponse pseudocode mais malheureusement je n'ai pas bien compris. Aurais-tu des liens de tuto ou pourrais tu l'expliquer plus précisement.

Je fais des recherches sur "calculer descripteur image" ça ne donne pas grand chose. Je code en c# et non mathLab. Je ne sais pas si ça fait une différence.
Ce n'est pas spécialement compliqué à comprendre.

1. Tu choisis une palette de couleur. Par exemple la palette 16 couleurs de windows, ou la web-safe, ou la HSV-16x4x4.

2. Pour chaque image, tu calcules l'histogramme correspondant à la palette. C'est à dire, tu calcules la fréquence d'apparition de chaque couleur dans l'image.

Par exemple:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
// Calculer l'histogramme
histo[]={0,0,0,..,0}
Pour chaque pixel "p"
  color = couleur de p
  index = indice dans la palette de la couleur la plus proche
  histo[index] = histo[index] + 1
Fin pour

// Normaliser l'histogramme entre 0..255
Pour i de 0 à Taille de l'histogramme
  histo[i] = 255*Histo[i]/(nombre total de pixels)
Fin Pour
3. Pour chaque image tu as donc un histogramme associé. Si deux images ont "a peu près" le même histogramme, elles ont de bonnes chances d'être des doublons.

Auquel cas, il faut faire une analyse plus poussée de ces deux images pour être certain. Par exemple en découpant les images en vignettes (2x2, 4x4, ...) et en calculant l'histogramme de chaque vignette.
__________________
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.
pseudocode est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/12/2012, 15h36   #5
rockley
Membre confirmé
 
Avatar de rockley
 
Homme
Inscription : décembre 2010
Messages : 332
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Arménie

Informations forums :
Inscription : décembre 2010
Messages : 332
Points : 274
Points : 274
Merci pour tes exlication pseudocode.
Je vais essayer.
rockley est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2013, 10h14   #6
Pseudopode
Nouveau Membre du Club
 
Inscription : février 2011
Messages : 32
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 32
Points : 34
Points : 34
Un autre méthode (inspirée par Tineyes) : http://www.hackerfactor.com/blog/ind...s-Like-It.html

1 - Réduction de couleurs
2 - DCT (il y a les fonctions appropriées dans OpenCV, par exemple)
3 - Hash
Pseudopode est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 22h43.


 
 
 
 
Partenaires

Hébergement Web