J'ai vu qu'il y en a quelques-uns. opencvdotnet , SharperCV , EmguCV , One on Code Project .
Quelqu'un at-il une expérience avec l'un de ces éléments? J'ai un peu joué avec celui sur Code Project, mais dès que j'ai essayé de faire quelque chose de compliqué, j'ai eu quelques méchantes exceptions incatchables (c'est-à-dire des exceptions Msgbox). La plateforme croisée (supporte Mono) serait la meilleure.
J'ai commencé avec opencvdotnet mais il n'est plus vraiment développé activement. De plus, la prise en charge de la fonctionnalité dont j'avais besoin (détection de face) était inégale. J'utilise EmguCV maintenant: il encapsule une plus grande partie de l'API et le gars derrière est très réactif aux suggestions et aux demandes. Le code est une joie à regarder et est connu pour fonctionner sur Mono.
J'ai rédigé un rapide guide de démarrage sur mon blog.
Nous utilisons OpenCVSharp le site Web de code Google est en japonais, mais il utilise les dernières versions et implémentations OpenCV IDisposable partout. Il semble offrir plus de fonctionnalités que tous les autres que nous avons vus à ce jour et est toujours actif. Il contient également des exemples de programmes assez étendus.
Je pense qu'il est important de noter que la question d'origine a été posée dans 2008, et OpenCV 2.0 a été publié dans 2009. La version 2.0 a introduit un wrapper C++ qui est beaucoup plus facile à utiliser que l'ancienne interface C à laquelle l'OP était confronté. Pour mon projet .NET, je laisse toutes les manipulations graphiques en C++ natif.
Essayez ceci: créez un projet C++/CLR DLL qui établit un lien vers les bibliothèques OpenCV. Le manuel OpenCV décrit comment procéder pour un EXE Windows C++, les mêmes étapes fonctionne également pour une DLL C++/CLR. Ensuite, bien sûr, la DLL exporte des méthodes appelables à partir d'un EXE .NET.
Pour le tester, vous devriez être en mesure d'incorporer l'un des exemples OpenCV dans votre DLL avec un petit ajustement. (Ajoutez le fichier .CPP à votre projet, convertissez la fonction main () en membre de la classe, etc. - vous connaissez l'exercice ...) Un bon candidat au test pourrait être l'échantillon "mat_mask_operations".
OpenCV.NET est disponible auprès de NuGet
https://bitbucket.org/horizongir/opencv.net
https://www.nuget.org/packages/OpenCV.Net
Voici une liste des fonctionnalités du site du projet:
OpenCV.NET est une interface .NET pour la populaire bibliothèque de traitement d'images et de vision par ordinateur OpenCV. Ces liaisons ont été développées au cours d'une année et incluent de nombreuses fonctionnalités qui manquaient à d'autres tentatives, à savoir:
- Compatibilité Mono multiplateforme (seul P/Invoke est utilisé)
- Prise en charge très proche de 100% de la dernière API C (y compris les fonctions non documentées)
- Documentation complète/intellisense pour toutes les méthodes, classes et membres enum pris en charge (extraites de nombreuses sources différentes)
- Prise en charge des exceptions
- Convient aux ramasseurs de déchets:
- GC connaît la mémoire réelle utilisée par les matrices et les images
- Les pointeurs sont garantis pour survivre aux appels de fonction même si une récupération de place simultanée se produit
- Modèle d'objet suivant l'API C++ autant que possible (vers un futur support accru de l'API C++)
- Licence de type BSD (MIT)
J'ai créé un package NuGet pour faciliter le démarrage d'OpenCv en C #, en utilisant EmguCV.
Vérifiez-le! Dans Visual Studio, recherchez et ajoutez le package NuGet myEmguCV.Net .
Je pense que le meilleur wrapper est opencvsharp http://code.google.com/p/opencvsharp/
Je sais que cette question a reçu une réponse depuis longtemps, mais je voudrais ajouter qu'il existe un très bon wrapper ici . Il s'agit de la nouvelle version du wrapper openCV que vous avez essayée projet de code . Je l'ai essayé pendant quelques jours et tout fonctionne parfaitement. De plus, je l'ai fait fonctionner en quelques minutes.
Je ne sais pas pour la compatibilité avec mono mais sous Visual Studio 2010, cela fonctionne comme un charme et m'a fait économiser des tonnes de temps et d'argent (mon projet est commercial et la plupart de la bibliothèque sont open source avec une licence qui ne permet pas de commercial utilisation sauf publication du code)
SharperCV était notre outil de choix, et il ne nous laisse pas tomber, pour notre projet robotique . Même s'il est actuellement marqué comme abandonné, le code est en très bon état, ne nécessite que quelques ajustements mineurs pour le personnaliser selon vos besoins. Pas de msgbox, et en fait une gestion des exceptions très saine.
Pas multi-plateforme, cependant, en raison de la couche d'interopérabilité.