Domanda

Ho visto che ce ne sono alcuni. opencvdotnet, CV più nitido, EmguCV, Uno su Code Project.

Qualcuno ha qualche esperienza con qualcuno di questi?Ho giocato un po' con quello su Code Project, ma non appena ho provato a fare qualcosa di complicato ho ottenuto alcune brutte eccezioni non rilevabili (ad esempioeccezioni Msgbox).La soluzione multipiattaforma (supporta Mono) sarebbe la migliore.

È stato utile?

Soluzione

Ho iniziato con opencvdotnet ma non è più sviluppato attivamente.Inoltre, il supporto per la funzionalità di cui avevo bisogno (facedetection) era irregolare.sto usando EmguCV Ora:Comprende una parte molto più ampia dell'API e la persona che sta dietro è molto reattiva ai suggerimenti e alle richieste.Il codice è una gioia da guardare ed è noto che funziona su Mono.

Ho scritto velocemente guida introduttiva sul mio blog.

Altri suggerimenti

Noi usiamo OpenCVSharp il sito Web di Google Code è in giapponese ma utilizza le ultime build OpenCV e implementa IDisposable ovunque.Sembra fornire più funzionalità di tutti gli altri che abbiamo visto fino ad oggi ed è ancora attivo.Ha anche programmi di esempio piuttosto estesi.

Penso che sia importante notare che la domanda originale è stata posta 2008, e OpenCV 2.0 è stato rilasciato nel 2009.La versione 2.0 ha introdotto un wrapper C++ con cui è molto più semplice lavorare rispetto alla vecchia interfaccia C con cui si confrontava l'OP.Per il mio progetto .NET, lascio tutta la manipolazione grafica in C++ nativo.

Prova questo: creare un progetto DLL C++/CLR che si colleghi alle librerie OpenCV.Il manuale OpenCV descrive come eseguire questa operazione per un EXE C++ di Windows, gli stessi passaggi funzionano anche per una DLL C++/CLR.Quindi ovviamente la DLL esporta metodi che possono essere richiamati da un EXE .NET.

Per testarlo, dovresti essere in grado di incorporare uno qualsiasi degli esempi OpenCV nella tua DLL con qualche modifica.(Aggiungi il file .CPP al tuo progetto, converti la funzione main() in un membro della classe, ecc.- conosci la procedura...) Un buon candidato al test potrebbe essere l'esempio "mat_mask_operazioni".

OpenCV.NET è disponibile da NuGet

https://bitbucket.org/horizongir/opencv.net

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

Ecco un elenco delle funzionalità dal sito del progetto:

OpenCV.NET è un'interfaccia .NET per la popolare libreria di elaborazione della visione e delle immagini OpenCV.Questi binding sono stati sviluppati nel corso di un anno e includono molte caratteristiche che mancano da altri tentativi, vale a dire:

  • Compatibilità mono multipiattaforma (viene utilizzato solo P/Invoke)
  • Supporto molto vicino al 100% dell'ultima API C (comprese le funzioni non documentate)
  • Documentazione/intellisense completa per tutti i metodi, le classi e i membri dell'enumerazione supportati (faticosamente estratti da molte fonti diverse)
  • Supporto per eccezioni
  • Adatto ai raccoglitori di rifiuti:
    • GC è a conoscenza della memoria effettiva utilizzata da matrici e immagini
    • È garantito che i puntatori sopravvivano alle chiamate di funzione anche se si verifica la garbage collection simultanea
  • Modello a oggetti che segue il più possibile l'API C++ (verso un futuro maggiore supporto dell'API C++)
  • Licenza in stile BSD (MIT)

Penso che il miglior wrapper sia opencvsharphttp://code.google.com/p/opencvsharp/

Ho creato un pacchetto NuGet per semplificare l'avvio con OpenCv in C#, utilizzando EmguCV.

Controlla!In Visual Studio cerca e aggiungi il file myEmguCV.Net Pacchetto NuGet.

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

SharperCV è stato il nostro strumento preferito e non ci delude, per il nostro progetto di robotica.Anche se attualmente è contrassegnato come abbandonato, il codice è davvero in ottime condizioni e richiede solo piccole modifiche per personalizzarlo in base alle tue esigenze.Nessun msgbox e gestione delle eccezioni in realtà molto sensata.

Non multipiattaforma, però, a causa del livello di interoperabilità.

So che a questa domanda è stata data risposta da molto tempo, ma vorrei aggiungere che esiste un ottimo wrapper Qui.Questa è la nuova versione del wrapper openCV che hai provato progetto di codice.L'ho provato per un paio di giorni e funziona tutto perfettamente.Inoltre, l'ho fatto funzionare in pochi minuti.

Non so per la compatibilità con mono ma con Visual Studio 2010 funziona a meraviglia e mi ha fatto risparmiare un sacco di tempo e denaro (il mio progetto è commerciale e la maggior parte della libreria è open source con licenza che non consente pubblicità utilizzo a meno che non venga pubblicato il codice)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top