begin process at 2012 05 27 21:02:22
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > TRAITEMENT DE L'IMAGE BINAIRE, RECONNAISSANCE DE FORMES

TRAITEMENT DE L'IMAGE BINAIRE, RECONNAISSANCE DE FORMES


 Information sur la source

Note :
8,5 / 10 - par 2 personnes
8,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Graphique Classé sous :image, binaire, morphologie, erosion, cmugraphics Niveau :Débutant Date de création :30/11/2006 Date de mise à jour :02/01/2007 14:00:38 Vu / téléchargé :35 921 / 23 607

Auteur : Pistol_Pete

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (20)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
Ce programme permet de détecter des formes géométriques dans une image en niveau de gris. Le programme effectuera un seuillage automatique puis nettoiera l'image de tous les objets inutiles (trop petit ou sur le bord). Enfin on isolera les différentes formes et on les nommera.

Grace à ce programme, on peut réaliser tout une série de traitements sur l'image.
-Seuillage automatique multimodale
-morphologie mathématiques
-Erosion, dilatation, ouverture, fermeture
-Reconstruction par marqueur
-Opération binaire sur les images: ET OU NON XOR...
-on peut créer des éléments structurants de plusieurs tailles, qui ressemble à des boulles ou non.(diamètre 3 5 ou 7)

Mon site internet : http://pistol.petesampras.free.fr/


 Conclusion

Il manque quelques protections sur certaines de mes fonctions. Je les rajouterai ultérieurement.
Si vous voulez des précisions sur la manière dont je gère la reconnaissance de forme, je vous expliquerai plus précisément la méthode que j'ai utilisé.


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

02 janvier 2007 14:00:39 :
ajout de quelques protections

 Sources du même auteur

Source avec Zip Source avec une capture VISUALISATION DES IMAGES EN 3D SANS OPENGL
Source avec Zip Source avec une capture ANALYSE DE LA TEXTURE D'UNE IMAGE : FILTRE DE GABOR
Source avec Zip Source avec une capture VIEWER COMPLET POUR LE TRAITEMENT DE L'IMAGE : IMANALYSE
Source avec Zip Source avec une capture ALGORITHMES D'OPTIMISATION NON LINÉAIRE: DESCENTE DE GRADIEN...
Source avec Zip Source avec une capture CLASSE GRAPH: GESTION DES GRAPHIQUES DANS LES APPLICATIONS W...

 Sources de la même categorie

Source avec Zip Source avec une capture PLANNING D'EQUIPE par grephit
Source avec Zip APPLICATION DE DESSIN DE QUELQUES FIGURES par laguchori
Source avec Zip Source avec une capture HDR EXPOSURE FUSION par mecrosoft
Source avec Zip Source avec une capture IRC CLIENT MULTISERVEUR EN MFC (TXIRC) par TeniX
Source avec Zip ENTETE DU FICHIER BMP (BIPMAP) par k.Lutchi

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture DÉTECTION DES DROITES DANS UNE IMAGE : HOUGH par Pistol_Pete
Source avec Zip Source avec une capture TRANSFORMÉE DE HOUGH: DÉTECTION DE DROITES par Pistol_Pete
Source avec Zip Source avec une capture STÉGANOGRAPHIE : CAMOUFLAGE DE TEXTE DANS UNE IMAGE par Pistol_Pete
Source avec Zip Source avec une capture DIAGRAMME DE VORONOI par Pistol_Pete
Source avec Zip Source avec une capture TRAITEMENT IMAGE: MODIFICATION NON LINÉAIRE DES COULEURS (CM... par Pistol_Pete

Commentaires et avis

Commentaire de yann_lo_san le 30/11/2006 19:57:27

Au premier abord, ça à l'air passionnant ! Je mettrais une note après avoir compris un peu plus le code.
Bonne continuation...

Commentaire de tazmania37 le 01/12/2006 10:11:46

C'est justement ce que je cherchais pour faire une reconnaissance de formae avec une webcam !!

Commentaire de Tantor54 le 01/12/2006 11:11:51

Tu compile avec quel logiciel, car avec Dev C++ sa marche pas ...

Commentaire de Pistol_Pete le 01/12/2006 15:49:00

Salut à tous. Oui l'imagerie est passionnant, les possibilitées sont illimitées...
Pour ce qui est de la reconnaissance de forme, c'est encore très limité mais je voulais juste réaliser une petite application.

Tantor, moi je le compile avec visual basic mais il ne devrait pas avoir de problème avec dev c++. Donne moi tes erreurs pour que je puisse t'aider.

Commentaire de xkamen le 01/12/2006 18:14:59

Salut, tu es sur d'avoir compilé avec visual basic et pas avec visual c++ ? Car ça ne ressemble pas vraiment à du basic ce que tu as programmé :) lol

Bon, trève de plaisanterie, c'est vrai que c'est intéressant la reconnaissance de forme et c'est un vrai travail dans la recherche (que ce soit en 2D ou 3D). En tout cas, bonne continuation pour améliorer ton programme et le rendre le plus autonome possible, car je suppose qu'il doit exister des cas de figure pour lesquels ton programme ne fonctionne pas. Mais bon, c'est toujours ça qui est bon à prendre.

Commentaire de Pistol_Pete le 01/12/2006 19:44:21

Oui bien sure t'as raison c'est bien du C++ ... (je commence à ètre fatiqué lol)
sinon c'est vrai que pour certaines formes la detection est mauvaise. Je n'est fait que les bases et il doit y avoir beaucoup d'autres techniques pour la reconnaissance de forme. J'ai encore énormement de travail pour effectuer une detection qui soit la plus précise possible et qui marche pour toutes les images
Je vais tenter la detection de cercle avec la transformer de Hought. Je pense qu'il y a des trucs simpas à faire avec.

Commentaire de Pistol_Pete le 03/12/2006 13:22:42

Je suis assez curieux de savoir combien de temps dure le traitement sur vos PC. Ca serait cool d'avoir d'autre base pour faire évoluer mon programme.

Commentaire de xkamen le 04/12/2006 20:22:47

Salut,

Je pense que pour la reconnaissance de forme, tu trouveras plein de choses dans la thèse située à cette adresse (sous forme de PDF) : http://docinsa.insa-lyon.fr/these/1998/bouayad/

Peut être qu'en y jetant un coup d'oeil, tu auras plus d'info à ce sujet.

Commentaire de sdjenadi le 11/12/2006 06:25:45

Bonjour!

j'ai essayé de compiler avec dev-c++ mais sa ne fonctionne pas sa me donne 119 erreurs

voici les erreurs rencontré.

Compilateur: Default compiler
Exécution de  g++.exe...
g++.exe "C:\main.cpp" -o "C:main.exe"    -I"C:\Dev-Cpp\lib\gcc\mingw32\3.4.2\include"  -I"C:\Dev-Cpp\include\c++\3.4.2\backward"  -I"C:\Dev-Cpp\include\c++\3.4.2\mingw32"  -I"C:\Dev-Cpp\include\c++\3.4.2"  -I"C:\Dev-Cpp\include"   -L"C:\Dev-Cpp\lib"
C:\main.cpp:1:25: cmugraphics.h: No such file or directory
C:\main.cpp:14: error: variable or field `DrawImg' declared voidC:\main.cpp:14: error: `window' was not declared in this scope
C:\main.cpp:14: error: `F' was not declared in this scope
C:\main.cpp:14: error: expected primary-expression before "ImgBin"
C:\main.cpp:14: error: initializer expression list treated as compound expression
C:\main.cpp:15: error: `POINT' was not declared in this scope
C:\main.cpp:15: error: template argument 1 is invalid
C:\main.cpp:15: error: template argument 2 is invalidC:\main.cpp:15: error: `window' has not been declared
C:\main.cpp:15: error: ISO C++ forbids declaration of `Pt' with no type
C:\main.cpp:15: error: ISO C++ forbids declaration of `G' with no type
C:\main.cpp:16: error: variable or field `Out' declared void
C:\main.cpp:16: error: `window' was not declared in this scope
C:\main.cpp:16: error: `G' was not declared in this scope
C:\main.cpp:16: error: expected primary-expression before "int"
C:\main.cpp:16: error: expected primary-expression before "char"
C:\main.cpp:16: error: expected primary-expression before "int"
C:\main.cpp:16: error: expected primary-expression before "int"
C:\main.cpp:16: error: initializer expression list treated as compound expression
C:\main.cpp:17: error: variable or field `OUT_MENU' declared voidC:\main.cpp:17: error: `window' was not declared in this scope
C:\main.cpp:17: error: `G' was not declared in this scope
C:\main.cpp: In function `int main()':
C:\main.cpp:28: error: `image' undeclared (first use this function)
C:\main.cpp:28: error: (Each undeclared identifier is reported only once for each function it appears in.)
C:\main.cpp:28: error: expected `;' before "ImgTmp"
C:\main.cpp:31: error: `window' undeclared (first use this function)C:\main.cpp:31: error: expected `;' before "F"
C:\main.cpp:34: error: expected `;' before "G"
C:\main.cpp:37: error: `F' undeclared (first use this function)
C:\main.cpp:37: error: `TRUE' undeclared (first use this function)
C:\main.cpp:38: error: `G' undeclared (first use this function)
C:\main.cpp:39: error: `OUT_MENU' cannot be used as a functionC:\main.cpp:41: error: `ImgTmp' undeclared (first use this function)
C:\main.cpp:52: error: name lookup of `i' changed for new ISO `for' scoping
C:\main.cpp:47: error:   using obsolete binding at `i'C:\main.cpp:56: warning: converting to `short int' from `double'
C:\main.cpp:61: error: `Out' cannot be used as a function
C:\main.cpp:78: error: `Out' cannot be used as a function
C:\main.cpp:79: error: `DrawImg' cannot be used as a function
C:\main.cpp:87: error: `Out' cannot be used as a function
C:\main.cpp:88: error: `DrawImg' cannot be used as a function
C:\main.cpp:100: error: `Out' cannot be used as a function
C:\main.cpp:101: error: `DrawImg' cannot be used as a function
C:\main.cpp:109: error: `Out' cannot be used as a function
C:\main.cpp:114: error: `Out' cannot be used as a function
C:\main.cpp:116: error: `DrawImg' cannot be used as a function
C:\main.cpp:124: error: `POINT' undeclared (first use this function)
C:\main.cpp:124: error: template argument 1 is invalid
C:\main.cpp:124: error: template argument 2 is invalid
C:\main.cpp:124: error: invalid type in declaration before ';' token
C:\main.cpp:125: error: `resize' has not been declared
C:\main.cpp:125: error: request for member of non-aggregate type before '(' token
C:\main.cpp:126: error: expected `;' before "Pt_Tmp"C:\main.cpp:138: error: `DrawImg' cannot be used as a function
C:\main.cpp:142: error: `Out' cannot be used as a function
C:\main.cpp:152: error: `resize' has not been declared
C:\main.cpp:152: error: request for member of non-aggregate type before '(' token
C:\main.cpp:156: error: `Pt_Tmp' undeclared (first use this function)
C:\main.cpp:158: error: `push_back' has not been declared
C:\main.cpp:158: error: request for member of non-aggregate type before '(' token
C:\main.cpp:171: error: `DrawImg' cannot be used as a function
C:\main.cpp:172: error: `Out' cannot be used as a function
C:\main.cpp:178: error: `Sleep' undeclared (first use this function)C:\main.cpp: At global scope:
C:\main.cpp:189: error: `POINT' was not declared in this scope
C:\main.cpp:189: error: template argument 1 is invalid
C:\main.cpp:189: error: template argument 2 is invalid
C:\main.cpp:189: error: `window' has not been declared
C:\main.cpp:190: error: ISO C++ forbids declaration of `Pt' with no type
C:\main.cpp:190: error: ISO C++ forbids declaration of `G' with no type
C:\main.cpp: In function `bool Detection(int, int, int, int&, int*)':
C:\main.cpp:197: error: invalid types `int[int]' for array subscript
C:\main.cpp:197: error: invalid types `int[int]' for array subscript
C:\main.cpp:198: error: invalid types `int[int]' for array subscriptC:\main.cpp:198: error: invalid types `int[int]' for array subscript
C:\main.cpp:200: error: invalid types `int[int]' for array subscript
C:\main.cpp:200: error: invalid types `int[int]' for array subscript
C:\main.cpp:201: error: invalid types `int[int]' for array subscript
C:\main.cpp:201: error: invalid types `int[int]' for array subscript
C:\main.cpp:215: error: invalid types `int[int]' for array subscript
C:\main.cpp:215: error: invalid types `int[int]' for array subscript
C:\main.cpp:216: error: invalid types `int[int]' for array subscript
C:\main.cpp:216: error: invalid types `int[int]' for array subscript
C:\main.cpp:218: error: invalid types `int[int]' for array subscript
C:\main.cpp:218: error: invalid types `int[int]' for array subscript
C:\main.cpp:219: error: invalid types `int[int]' for array subscript
C:\main.cpp:219: error: invalid types `int[int]' for array subscript
C:\main.cpp:237: error: `Out' cannot be used as a function
C:\main.cpp:240: error: `Out' cannot be used as a function
C:\main.cpp:243: error: `Out' cannot be used as a function
C:\main.cpp:246: error: `Out' cannot be used as a function
C:\main.cpp:252: error: `Out' cannot be used as a function
C:\main.cpp:254: error: `Out' cannot be used as a function
C:\main.cpp:259: error: `Out' cannot be used as a function
C:\main.cpp:261: error: `Out' cannot be used as a function
C:\main.cpp:266: error: `Out' cannot be used as a function
C:\main.cpp: At global scope:
C:\main.cpp:274: error: variable or field `DrawImg' declared void
C:\main.cpp:274: error: redefinition of `int DrawImg'
C:\main.cpp:14: error: `int DrawImg' previously defined here
C:\main.cpp:274: error: `window' was not declared in this scope
C:\main.cpp:274: error: `F' was not declared in this scope
C:\main.cpp:274: error: expected primary-expression before "ImgBin"
C:\main.cpp:275: error: expected `,' or `;' before '{' token
C:\main.cpp:293: error: variable or field `OUT_MENU' declared void
C:\main.cpp:293: error: redefinition of `int OUT_MENU'
C:\main.cpp:17: error: `int OUT_MENU' previously defined here
C:\main.cpp:293: error: `window' was not declared in this scope
C:\main.cpp:293: error: `G' was not declared in this scope
C:\main.cpp:294: error: expected `,' or `;' before '{' token
C:\main.cpp:307: error: variable or field `Out' declared void
C:\main.cpp:307: error: redefinition of `int Out'
C:\main.cpp:16: error: `int Out' previously defined here
C:\main.cpp:307: error: `window' was not declared in this scope
C:\main.cpp:307: error: `G' was not declared in this scope
C:\main.cpp:307: error: expected primary-expression before "int"
C:\main.cpp:307: error: expected primary-expression before "char"
C:\main.cpp:307: error: expected primary-expression before "int"
C:\main.cpp:307: error: expected primary-expression before "int"
C:\main.cpp:308: error: expected `,' or `;' before '{' tokenExécution terminée

Commentaire de Pistol_Pete le 11/12/2006 10:45:39

Salut SDGENADI. A mon avis tu aurais pu recopier uniquement la première erreur :
C:\main.cpp:1:25: cmugraphics.h: No such file or directory

toutes les autres dépendent de celle ci. Ben oui il faut inclure cmugraphics sinon ca risque pas de compiler. Tu peux trouver cette lib sur le net.
Voila une adresse, je ne l'ai pas testé...
http://codenewbie.com/forum/standard-c-c/971-installing-using-cmugraphics-library.html

Commentaire de lexius94 le 12/01/2007 15:55:08

Bonjour!
je travail sur la reconnaissance de caractere dans une image. je pensais m'inspirer de ce code comme base pour mon travail mais j'ai quelques problemes avec Cmugraphics. Les liens un peu plus haut ne fonctionnent pas. je l'ai donc recupéré sur un autre site mais j'ai quelques problemes de compilation. Pouriez vous donner un nouveau lien svp?
Pensez-vous que ce code puisse servir de base à un travail de reconnaissance de caractere dans une image? (il s'agirait de récuperer le numero d'une plaque mineralogique depuis une image en noir et blanc)
Merci d'avance de votre réponce.

Commentaire de Pistol_Pete le 14/01/2007 13:29:58

Salut Lexius
Merci pour ton intérêt pour ma source. Oui tu peux utiliser ma source pour effectuer de la reconnaissance de caractère et les plaques d'immatriculation sont de parfaites photos pour commencer.(les chiffres et les lettres sont toujours de la même forme...)
Cependant mon programme ne sera qu'une base de travail. Pour chaques lettres et chaques chiffres tu devras effectuer un travail dessus.
Pour Cmugraphics, je vais mettre les sources sur mon site internet avec toutes les explications nécessaire (ce sera fait ce soir).
http://pistol.petesampras.free.fr/

A+

Commentaire de sicbsicb le 24/01/2007 18:46:13

Trés bon programme.
J'ai mon TPE qui porte sur la reconnaissance d'images. Le but étant de lançer un dé sous une webcam puis que l'ordinateur detecte sur quel chiffre il est tombé. Ce petit programme est trés intérressent pour déja compter le nombre de forme et de m'en donné le type (quand ça veut bien marcher !) parce que souvent il dit rond au lieu de carré ou rectangle au lieu de triangle mais bon c'est simpa.
Je serais ravi d'en savoir un peu plus...
ps: domage que ça soit pas du basic parce que le C++ c'est encore moins mon trucs !
@+

Commentaire de acheo le 06/06/2007 05:16:34

Bonjour,

J'ai moi aussi des problèmes avec cmugraphics.h. J'ai pourtant créer un fichier du même nom, lequel se trouve dans le projet. J'utilise Visual C++ 6.0. A la compilation, j'obtiens le même message d'erreur soit:  c:\documents and settings\mathieu\my documents\informatique\soucres\rf\img\main.cpp(1) : fatal error C1083: Cannot open include file: 'cmugraphics.h': No such file or directory
Error executing cl.exe.

Commentaire de Pistol_Pete le 27/06/2007 16:32:44

Salut Acheo
Pour ce qui est de cmugraphics, regarde sur mon site internet, tu pourras trouver les sources de cmugraphics et une procédure simple pour faire fonctionner cmugraphics

voila le lien
http://pistol.petesampras.free.fr

Commentaire de casslabaracc le 29/12/2008 01:45:31

Bonjour,

personnellement, je n'ai pas de problème avec CMUgraphics mais plutôt des erreurs de type
Error:  Error: Unresolved external 'image::~image()' referenced from C:\USERS\CLEMENT\DESKTOP\TEST\PROJ0002.OBJ
lorsque je compile.
Si quelqu'un a déjà eu ce genre d'erreur...
Merci.

Commentaire de Pistol_Pete le 30/12/2008 10:40:01

Salut
Cela ne vient pas de ma classe puisqu'elle s'intitule ImageBinaire. Cette classe vient de CMUgraphics. Elle permet d'ouvrir des images jpeg. Cela signifie qu'il ne trouve pas le destructeur de cette classe.
Vérifie si le fichier image.cpp est bien inséré à ton projet et si tu as inclus le .lib regarde dans image.h si le destructeur n'est pas définie la. Tu pourras peut etre le declarer la pour voir si ca résout ton probleme.

Si tu as encore des problèmes donne moi plus d'information sur ta procédure pour installer cmugraphics.
A+

Commentaire de altyok le 06/04/2011 17:11:47

salut PISTOL_PETE

je suis aller sur ton site et j'ai vu que tu fait bcp de programme sur le traitement de l'image et donc je pense que tu pourrais m'aider.
moi je cherche a réaliser une reconnaissance de forme sur un signal vidéo. j'ai une caméra qui film l'entrée d'un parking et je dois différencier les piétons des voitures et je pensais donc faire sa par reconnaissance de forme.
pense tu que ce projet peut être réalisable et aurais-tu une idée de départ.

merci
A+

Commentaire de grapin le 12/10/2011 11:29:20

Hello, super boulot déjà

Est-ce que tu as une fonction qui compte le nombre de formes  qu'il y a dans l'image.

Car mon but est de compter le nombre de composants identique qu'il y a sur une photo... J'ai essayé sur une photo 1280x1024, c'est assez long le traitement au bout de 15-20mn il était à la 2e forme.

A++

Commentaire de Franckydenantes le 14/10/2011 10:48:03

Bonjour,

Est-ce que ce programme est utilisable sur une vidéo en temps réel (webcam)? Et comme demandé précédemment peut-on compter le nombre de formes détectées?

L'idée serait d'utiliser ça pour compter le nombre de colis qui passent sur une chaine de production.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Erosion et dilatation d'image - Traitement d'images [ par mahdouch1 ] Bonjour,Est ce que quelqu'un peut me fournir un code source C qui fait l'érosion et la dilatation d'une image en niveaux de gris merci beaucoup d'avan detecter un trou dans une image binaire [ par pipive ] Salut, j'ai une image binaire (background noir et objet blanc). Je veux savoir comment detecter un trou (noir) sur l'object blanc de l'image. Je veux detection des petites cercles dans une image avec open cv [ par swito ] salut je travaille sur un projet qui consiste à détecter les petites cercles manométriques dans les images , j'ai utilisé la fonction cvHoughCircles detection des petites cercles dans une image avec opencv [ par swito ] salut je travaille sur un projet qui consiste à détecter les petites cercles manométriques dans les images , j'ai utilisé la fonction cvHoughCircles algorithme et morphologie [ par dadou846 ] bonçoir à tous :j'ai une image en niveau de gris et je dois appliquer les opérateurs de la morphologie mais j'arrive pas a commencer,j'ai pas trouvé s convertir une image (noire et blanc) en binaire [ par pipive ] Salut, J'ai des images (black&white) que j'aimerais comparer. J'utilise [b]C++[/b] dans [b]QT4[/b]. J'aimerais savoir [b]comment convertir des images COMMENT AFFICHER UNE IMAGE .JPEG, . BITMAP... SOUS FORME DE CODE BINAIRE? [ par soophy44 ] Bonjour, je suis un peu beaucoup artiste, et j'aurais aimer savoir comment faire pour obtenir une image sous forme de code binaire, un affichage un pe convertir une image en code binaire avec langage c++ [ par midoamine89 ] bonjour, voila,je suis débutant en c++. comment convertir une image en binaire ? morphologie mathematique et c++ [ par dadou846 ] bonçoir a tous :mon projet de fin d'étude consiste à la segmentation d'un réseau vasculaire rétinien, en fait je suis démandé d'écrire un programme en Librairie BUILDER C++ Proba-Stat-Traitement Image Signal-Markov [ par builder54 ] Bonjour,Je travaille depuis quelque temps sur la segmentation Markovienne d'images aériennes en utilisant Builder C++.J'étais emmené à tout programmer


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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 : 0,484 sec (3)

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