La vision artificielle en Python

j'aimerais effectuer quelques tâches de vision de base en utilisant Python et je voudrais savoir où trouver des tutoriels pour m'aider à démarrer.

autant que je sache, la seule bibliothèque libre pour Python qui fait de la vision machine est PyCV (qui est un wrapper pour OpenCV apparemment), mais je ne trouve pas de tutoriels appropriés.

Mes tâches principales sont d'acquérir une image de FireWire. Segmenter l'image dans différentes régions. Et puis effectuer des statistiques sur chaque région pour déterminer la zone du pixel et le centre de la masse.

précédemment, J'ai utilisé Matlab's Traitement D'Image Tootlbox sans aucun problème. Les fonctions que j'aimerais trouver un équivalent en Python graythresh, regionprops et gray2ind.

Merci!

19
demandé sur KFack 2009-05-20 14:45:29

7 réponses

OpenCV est probablement votre meilleure option pour une bibliothèque; vous avez le choix de l'emballage pour eux. J'ai regardé l'emballage de SWIG fourni avec L'installation standard OpenCV, mais j'ai fini par utiliser ctypes-opencv parce que la gestion de la mémoire semblait plus propre.

ils sont tous les deux des enveloppements très fins autour du code C, donc toute référence C que vous pouvez trouver sera applicable au Python.

OpenCV est énorme et pas particulièrement bien documenté, mais il ya certains décent échantillons inclus dans le répertoire d'exemples que vous pouvez utiliser pour commencer. Une référence OpenCV interrogeable est ici.

vous n'avez pas mentionné si vous cherchiez des sources en ligne ou imprimées, mais j'ai le O'Reilly livre et il est assez bon (exemples en C, mais facilement traduisible).

FindContours la fonction est un peu similaire à regionprops; il vous permet d'obtenir une liste des composants connectés, que vous pouvez ensuite inspecter pour obtenir leurs informations.

Pour le seuillage vous pouvez essayer Seuil. J'étais sûr que vous pourriez passer un drapeau à utiliser Otsu de la méthode, mais il ne semble pas être répertoriés dans les docs.

Je n'ai pas trouvé de fonctions spécifiques correspondant à gray2ind, mais elles peuvent y être.

13
répondu Kiv 2009-05-30 18:56:10

documentation: il y a quelques années, J'ai beaucoup utilisé OpenCV wrapped pour Python. OpenCV est largement documenté, les navires avec de nombreux exemples, et il ya même un livre. Les enveloppes Python que j'utilisais étaient assez minces pour que très peu de documentation spécifique à l'enveloppe soit nécessaire (et c'est typique pour de nombreuses autres bibliothèques enveloppées). J'imagine que quelques minutes à regarder un exemple, comme les tests de l'unité PyCV serait tout ce dont vous avez besoin, et puis vous pourriez vous concentrer sur L'OpenCV documentation adaptée à vos besoins.

analyse: quant à savoir s'il y a une meilleure bibliothèque Qu'OpenCV, mon opinion quelque peu dépassée est Qu'OpenCV est génial si vous voulez faire des choses assez avancées (par exemple, le suivi d'objets), mais il est peut-être exagéré pour vos besoins. Il sonne comme scipy ndimage combiné avec une manipulation de base de tableaux numpy pourrait être suffisant.

acquisition: les options que je connais pour l'acquisition sont OpenCV, Motmot, ou en utilisant des ctypes pour interface directe avec les pilotes. Parmi ceux-ci, je n'ai jamais utilisé Motmot parce que j'ai eu du mal à l'installer. Les autres méthodes que j'ai trouvé assez simple, bien que je ne me souviens pas des détails (ce qui est une bonne chose, car il signifie que c'était facile).

7
répondu tom10 2009-05-30 18:34:25

j'ai créé un site web sur ce sujet:pythonvision.org