-
Traitement d'image
Dans le cadre d'un projet, je souhaiterai récupérer certaines zones (de couleur particulière) sur une image pour récupérer les coordonnées du centre de la tache.
Je me demande si je dois programmer en Delphi ou utiliser un autre type de langage dédié (type MIL ou autre). Sachant que cet algorithme s'intègrera dans une architecture de logiciel en Delphi.
Que me conseillez-vous ?
Merci d'avance.
-
Re: Traitement d'images
tu peux utiliser getpixel pour récupérer la couleur d'un pixel sur ton image en l'associant à un événement onmousemove si tu te déplaces à la souris.
tu utilises inttohex pour obtenir la couleur en hexa.
Après avec une condition sur la couleur, tu peux définir des zones qui t'intéressent.
-
Tu peux tout à fait le faire en Delphi, les fonctions de traitement d'image sont tout aussi efficaces qu'avec un autre langage. en utilisant les fonctions de scanline d'un TBitmap (http://www.efg2.com/Lab/ImageProcessing/Scanline.htm) ainsi qu'un algo de floodfill tu pourras réussir à faire ce traitement.
-
Salut Thomas,
Je confirme le choix de Delphi, car je ne vois pas ce qu'il a de moins que les autres langages en termes de possibilités et d'efficacité dans ton domaine d'application (enfin bon il est peu probable que tu obtiennes une autre réponse compte tenu du forum dans lequel nous nous trouvons :wink: ).
Je te conseille de travailler avec TBitmap32 lorsque tu fais du traitement d'images. C'est plus efficace.
Je me permets de répondre à ton message, car je peux t'aider si ton problème ressemble au mien : je te laisse vérifier :
http://www.developpez.net/forums/viewtopic.php?t=422278
(on notera la judicieuse participation de jenesuispasunrobot)
J'ai aussi pensé à l'algo de floodfill, mais la fréquence à laquelle je devais détecter des zones, et la relativement haute tolérance d'imprécision, m'obligeait à trouver une façon de faire qui prend (dans mon cas) moins de pross.
J'ai codé un algo (dont j'ai trouvé la description je ne sais plus où sur le net, faut pas déconner j'ai rien inventé) super simple dont le principe est de diviser l'image en 4 récursivement jusqu'à trouver un pourcentage minimal de pixels interessants dans une zone. On cesse de découper les zones vides. La variation du pourcentage permet d'affiner.
J'y ais ajouté deux petites choses qui font que cet algo marche pas mal.
Si ca t'interesse je détaille, sinon je me rendors :P ...
Tu peux aller faire un tour dans le forum algo aussi si ce n'est déjà fait. :D
-
J'ajoute juste une petite chose
Les bib Delphi ne sont pas hyper rapides en ce qui concerne les traitements pixel par pixel.
Si la vitesse de traitement est importante pour toi tu peux aller faire un tour sur le site
www.g32.org
qui permet des traitements beaucoup plus rapides (avec des fonctions en sus certe dont tu n'as peut être pas besoin...).
Ces composants sont gratuits
-
Parce que ca va s'intégrer dans du Delphi, y peut être pas mal de le faire ne Delphi. Sinon, MATLAB c'est ce qui reste le mieux pour faire du traitement d'image.
Faut une license pas contre, et je crois qu'elle est pas donnée.
-
Merci à tous pour ces conseils très précieux.
C'est vrai que dans mon cas, la vitesse d'exécution de l'algo est importante (tout le traitement doit se faire en moins de 150ms environ...).
-
Salut,
Concernant le traitement d'images sous Delphi, je peux te proposer une bibliothèque de fonctions très intéressante et free, qui est Gfl. Cette bibliothèque permet d'appliquer un bon nombre de filtres et de gérer un grand nombre de format, elle est à l'origine de XnView...
Elle est aussi livré avec un exemple sous Delphi, pour un démarrage rapide...
Tu trouveras cette bibliothèque à l'adresse suivante :
http://www.xnview.com
Bon voilà, je crois que tu n'as que l'embarras du choix,
A plus,
Christopher
-
En fait, j'ai deux mois pour réaliser les codes : récupérer les centres de trois taches blanches sur une image noir&blanc. Le but est d'étudier un mouvement (d'où l'intérêt d'une vitesse d'exécution faible, de l'ordre de 150 ou 200ms).
Ayant surtout des bases en C, je me demandais si Delphi pouvais réaliser une telle procédure, de l'acquisition à la restitution des coordonnées des centres.