Question

J'ai vu qu'il y en a quelques-uns. opencvdotnet , SharperCV , EmguCV , < a href = "http://www.codeproject.com/KB/cs/Intel_OpenCV.aspx#install" rel = "noreferrer"> Un projet de code .

Quelqu'un at-il une expérience avec l'un de ces? Je me suis un peu amusé avec celui de Code Project, mais dès que j’ai essayé de faire quelque chose de compliqué, j’ai eu quelques méchantes exceptions incontrôlables (à savoir des exceptions Msgbox). La meilleure plate-forme (supporte Mono) serait préférable.

Était-ce utile?

La solution

J'ai commencé avec opencvdotnet mais ce n'est plus vraiment développé activement. De plus, la prise en charge de la fonctionnalité dont j'avais besoin (Faceetection) était inégale. J'utilise EmguCV : cela englobe une partie beaucoup plus importante de l'API et le gars derrière est très sensible aux suggestions et 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.

Autres conseils

Nous utilisons OpenCVSharp , le site Web pour les codes Google est en japonais, mais il utilise les dernières versions OpenCV. et implicite IDisposable partout. Il semble offrir plus de fonctionnalité que tous les autres que nous avons vus à ce jour et est toujours actif. Il contient également d’excellents exemples de programmes.

Je pense qu'il est important de noter que la question initiale avait été posée en 2008 et qu'OpenCV 2.0 avait été publié en 2009 . La version 2.0 introduisait un wrapper C ++ qui était beaucoup plus facile à utiliser que l'ancienne interface C à laquelle l'OP était confronté. Pour mon projet .NET, je laisse toute la manipulation graphique en C ++ natif.

Essayez ceci: créez un projet de DLL C ++ / CLR qui crée un lien vers les bibliothèques OpenCV. Le manuel OpenCV explique comment procéder pour un EXE Windows C ++. Les mêmes étapes s'appliquent également à une DLL C ++ / CLR. Ensuite, bien sûr, la DLL exporte des méthodes appelables depuis un EXE .NET.

Pour le tester, vous devriez pouvoir incorporer n’importe quel échantillon OpenCV dans votre DLL avec un peu de peaufinage. (Ajoutez le fichier .CPP à votre projet, convertissez la fonction main () en membre de la classe, etc. - vous connaissez l’exercice en cours ...) Un bon candidat au test pourrait être le paramètre "mat_mask_operations". échantillon.

OpenCV.NET est disponible à partir 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 vision et l'image de synthèse OpenCV.   bibliothèque de traitement. Ces reliures ont été développées   au cours d'une année et inclure de nombreuses fonctionnalités qui ont été   manquant d'autres tentatives, à savoir:

     
      
  • Compatibilité Mono multi-plateforme (seul P / Invoke est utilisé)
  •   
  • Prise en charge très proche de 100% de la dernière API C (y compris des fonctions non documentées)
  •   
  • Documentation complète / intellisense pour toutes les méthodes, classes et membres enum pris en charge (exténués à partir de nombreuses sources différentes)
  •   
  • Prise en charge des exceptions
  •   
  • Amical pour les éboueurs:      
        
    • GC connaît la mémoire utilisée par les matrices et les images
    •   
    • Il est garanti que les pointeurs survivent aux appels de fonction même si un garbage collection simultané se produit
    •   
  •   
  • Modèle d'objet suivant l'API C ++ autant que possible (pour une prise en charge accrue future de l'API C ++)
  •   
  • Licence de style BSD (MIT)
  •   

Je pense que le meilleur emballage est opencvsharp http://code.google.com/p/opencvsharp/

J'ai créé un package NuGet pour faciliter le démarrage d'OpenCv en C #, à l'aide d'EmguCV.

Découvrez-le! Dans Visual Studio, recherchez le myEmguCV.Net package NuGet.

https://www.nuget.org/packages/myEmguCV.Net

SharperCV était notre outil de prédilection, et il ne nous a pas laissé tomber, pour notre projet de robotique . Même s'il est actuellement marqué comme abandonné, le code est vraiment en bon état et ne nécessite que quelques ajustements mineurs pour le personnaliser selon vos besoins. Pas de msgbox, et en fait une gestion très saine des exceptions.

Pas multi-plateforme, cependant, en raison de la couche d'interopérabilité.

Je sais que l'on répond à cette question depuis longtemps, mais je voudrais ajouter qu'il existe un très bon wrapper ici . Il s'agit de la nouvelle version de l'emballage OpenCV que vous avez essayée sur projet de code . Je l'ai essayé pendant quelques jours et tout fonctionne parfaitement. De plus, cela fonctionne en quelques minutes.

Je ne connais pas la compatibilité avec mono, mais sous Visual Studio 2010, cela fonctionne comme un charme et m'a permis d'économiser beaucoup de temps et d'argent (mon projet est commercial et la plupart des bibliothèques sont open source avec une licence qui ne fonctionne pas. t permettre une utilisation commerciale sauf si le code est publié)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top