begin process at 2010 02 10 13:40:07
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Mutimédia

 > 

Image & Vidéo

 > 

Recherche d'un algorithme pour scanner une image sur une zone définie.


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Recherche d'un algorithme pour scanner une image sur une zone définie.

mercredi 25 octobre 2006 à 15:04:46 | Recherche d'un algorithme pour scanner une image sur une zone définie.

cerber943

Bonjour,

Voici mon problème :
Je cherche à analyser une image découpée en "zones".
Je veux comparer cette image à une autre quasiment identique et détecter dans quelle "zone" il y a eu des modifications.
Ces dites "zones" ne sont pas forcément rectangulaires et c'est là qu'est mon problème.
Dans un premier temps je serais déja assez content de les caractériser par seulement 4 points A,B,C,D avec leurs coordonnées respectives xa,ya,xb,yb,xc,yc,xd,yd.
Je cherche donc à faire un objet par zone à qui je passerais par exemple les coordonnées des 4 points en paramètre.
J'utiliserais ensuite une fonction analyseImgOrigine et une fonction analyseImgFinale.
Enfin une fonction analyseDifferences pourrant me retourner un tableau de coordonnées des pixels modifiés dans cette zone par exemple.
Mon problème est de trouver comment implémenter les fonctions analyseImgOrigine, analyseImgFinale (identique à la précédente) et analyseDifférences.

J'imagine que ce genre de problème a déja été envisagé, on ne doit pas toujours chercher à observer une partie rectangulaire d'une image... en tout cas j'espère.
Si vous aviez des idées d'algo à utiliser, de fonctions déja existantes, de la façon dont je devrais stocker les pixels de cette zone qui n'est pas rectangulaires, ca serait génial !

Merci d'avance pour tout aide qui pourrait m'être apporté :)


jeudi 26 octobre 2006 à 09:16:41 | Re : Recherche d'un algorithme pour scanner une image sur une zone définie.

TMONOD

Bonjour,

Je suis prêt à te donner un coup de main si tu m'en dis un peu plus :
- Es-ce que t'on problème s'aparente à une détection d'intru sur une webcam ?
- Est-ce qu'il s'agit d'une reconnaissance de forme ("...presque identique...") ?

Tu peux déjà t'orienter techniquement vers deux sortes d'algos :
- La FFT (Fourrier...) pour la reconnaissance de contours
- Les réseau neuronaux (perceptrons...) pour la reconnaissance de formes plus "floue".

Tiens nous au jus...

JC


Jcbé[^]
jeudi 26 octobre 2006 à 09:56:09 | Re : Recherche d'un algorithme pour scanner une image sur une zone définie.

cerber943

Salut et merci de ta réponse
La reconnaissance de forme m'intéresse mais je pense que cette solution est trop complexe pour mon niveau.
Je pense que mon problème est bien plus simple. Je veux "simplement" stocker une image dans un TBitmap, mais ne pas me soucier de la totalité de l'image. Je souhaiterais ne prendre en considération que les pixels situés dans une zone définie par un ensemble de points (4 me suffirait pour commencer). Ensuite, je créerais des fonctions permettant de comparer 2 images ayant la même zone. Cela me permettrait de savoir le les images sont identiques sur la zone définie.
Par exemple imaginons un TBimap de 50x50.
Je défini une zone représentée par le triangle constitué par les points A(10,10) ; B(30,10) et C (20,30) par exemple.
Je souhaite créer un objet permettant :
  • de définir cette zone
  • de stocker mon bitmap
  • de comparer mon bitmap à un objet identique et comparer (si les zones sont identiques) les pixels situés à l'intérieur de cette zone afin de savoir si les pixels dans cette zones sont en tout points identiques
Je ne veux pas qu'on me fasse le travail, mais simplement être guidé dans la bonne direction.
J'envisageait créer un tableau de bits de la taille de mon Canvas et dont les bits seraient à 1 lorsqu'ils sont dans la zone définie. Mais je ne sais pas trop s'il existe une méthode adaptée pour mettre tous les bits du tableau à 1 lorsqu'ils sont dans cette zone ? y a-t-il des astuces utilisant les régions et un genre de fonction FillRegion ?
Si je disposais de ce tableau il me serait simple de comparer les pixels des 2 images si leurs coordonnées dans le tableau de bits est à 1.

J'epère avoir été assez clair et je suis ouvert à toute autre suggestion : ce n'est que l'aboutissement de mon raisonnement actuel qui est loin d'être celui d'un professionnel...

P.S: Je serais néanmoins intéressé par des infos sur la détection de forme via FFT si tu as des exemples à partir d'image( et non de Webcam) accessoirement mais cela ne concernera pas ce Post.

A+
jeudi 26 octobre 2006 à 12:29:33 | Re : Recherche d'un algorithme pour scanner une image sur une zone définie.

TMONOD

Ok.
Tu me dit comment tu voudrais faire mais tu ne m'as toujours pas dit CE que tu veux faire. :)
Pour lire les pixels les TBitmap ont des fonctions GetPIxel et SetPixel pour lire ou affecter une couleur RGB.  pour décoder les 3 composantes R G et B il y a des fonctions qui vont bien.

D'autre part renseigne toi sur les "Region" qui permettent de découper un partie d'image en fonction d'une forme définie par une suite de points (par exemple). Tu peux alors extraire cette Region dans un bitmap ajusté à sa taille et travailler avec.
(va voir la par exemple : http://www.delphifr.com/code.aspx?ID=11660)

Pour la comparaison je voudrais savoir ce que tu entend par "objet identique" ?

J'ai bossé sur ce genre de truc avec C++builder il y a qq années, je vais aller récuperer mes sources et voir si y a qq chose qui peut te dépanner.

A bientôt.


Jcbé[^]

jeudi 26 octobre 2006 à 12:43:39 | Re : Recherche d'un algorithme pour scanner une image sur une zone définie.

cerber943

Actuellement tout ce que je cherche c'est ce que je t'ai expliqué ci dessus :
Je souhaite créer un objet permettant :
  • de définir cette zone
  • de stocker mon bitmap
  • de comparer mon bitmap à un objet identique et comparer (si les zones sont identiques) les pixels situés à l'intérieur de cette zone afin de savoir si les pixels dans cette zones sont en tout points identiques
Comment créer un tableau[x,y] de bits dont les bits sont à 0 sauf ceux à l'intérieur d'une zone définie par 3 ou 4 points de coordonnées (x,y) ?
C'est actuellement ca ma grande question.
Quand aux régions, bien qu'elle ne soient pas adaptées qu'aux découpage des fenêtres (vu sur le  très bon tutoriel qui est disponible sur ce site), j'ai vu qu'il était possible de s'en servir pour dessiner sur un canvas, mais pas apparemment pour découper une image.
Et même si cela me permettait de découper une image et la stocker dans un tbitmap, il faudrait avoir une couleur de fond type couleur transparente pour arriver à comparer mes 2 images.
Le tableau de bits semble plus adapté pour moi, mais peut être que j'ai tors.

En tout cas ce que je cherche actuellement serait :
Comment mettre tous les bits d'un tableau[x,y] à 1 si x,y est dans la zone définie par les points A,B,C (et D si possible) ?
Merci d'avance ;)



Cette discussion est classée dans : problème, image, déja, zone, coordonnées


Répondre à ce message

Sujets en rapport avec ce message

Un Label dans une image.. [ par sophie75 ] Salut à toutes et à tous,C'est mon premier message ici, en fait je débute en Delphi donc excusez-moi si mes questions peuvent parraître idiotes :-)J'a Image ayant une zone modifiable [ par tibrus ] Bonjour a tous,Je cherche à insérer sur une forme une image. Jusque la pas de problème.Ensuite j'aimerais rajouter un moyen de rendre une région de ce Problème avec les images et leur fond [ par fab30 ] Salut a tous, voilà, j'ai un probleme avec le Timage de Delphi : Sur ma forme, il y a un Timage avec une image de fond en bmp. Dessus, je rajoute un T Problème pour dessiner !!! [ par max12 ] Bon voilà je voudrais desssiner une images POINT par POINT dans un control d'image, mais avec l'API SetPixel l'image est éffacer lorsqu'un control pas Problème pour dessiner !!! [ par max12 ] Bon voilà je voudrais desssiner une images POINT par POINT dans un control d'image, mais avec l'API SetPixel l'image est éffacer lorsqu'un control pas Problème avec les TMemo [ par sebmime ] Bonjour,Mon application permet de créer des petites zones de texte (des TMEMO) qui sont affichées sur une TFORM.je créé donc mes TMemo avec des "creat Problème agrandissement du canvas d'une TImage [ par Zitoune34 ] BjrJe dessine sur le canvas d'un TImage. Le probleme c'est que la taille du canvas dépend de la taille du TImage à la création, du coup lorsque je red problème avec ComboBoxEx [ par Vishnouu ] Boujour, J'ai sur ma form un ComboBoxEx avec le code suivant pour ajouter des items : ComboBoxEx1.ItemsEx.AddItem(st,0,1,1,0,nil); ça ajoute un item a problème de comparaison d'image en HLS. [ par richardsocrier ] TImage problème [ par MasterNKZ ] Je veux faire une animation tres simple:j'ai une image dans un composant TImage et je la déplace a l'aide d'un timer 4 pixel par 4pixel tout les 70ms


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,045 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales