it-swarm-pt.tech

Wrappers .Net (dotNet) para OpenCV?

Eu vi que existem alguns deles. opencvdotnet , SharperCV , EmguCV , m no projeto de código .

Alguém tem alguma experiência com algum desses? Eu brinquei um pouco com o do Code Project um pouco, mas assim que tentei fazer algo complicado, recebi algumas exceções inatacáveis ​​(ou seja, Msgbox). Plataforma cruzada (suporta Mono) seria melhor.

69
Kris Erickson

Comecei com o opencvdotnet, mas ele não está mais ativo. Além disso, o suporte para o recurso de que eu precisava (detecção de rosto) era irregular. Estou usando EmguCV agora: envolve uma parte muito maior da API e o cara por trás disso responde muito bem a sugestões e solicitações. O código é uma alegria para olhar e é conhecido por trabalhar em Mono.

Eu escrevi um rápido guia de introdução no meu blog.

66
friism

Usamos OpenCVSharp o site do código do google está em japonês, mas ele usa as mais recentes compilações e implementos do OpenCV IDisposable. Parece fornecer mais funcionalidade do que qualquer um dos outros que vimos até agora e ainda está ativo. Também possui programas de exemplo bastante extensos.

22
tidyup

Eu acho importante notar que a pergunta original foi feita em 2008, e o OpenCV 2.0 foi lançado em 2009. A versão 2.0 introduziu um wrapper C++ que é significativamente mais fácil de trabalhar do que a interface C mais antiga com a qual o OP foi confrontado. Para o meu projeto .NET, estou deixando toda a manipulação gráfica em C++ nativo.

Tente isso: crie um projeto C++/CLR DLL que vincula as bibliotecas OpenCV. O manual do OpenCV descreve como fazer isso para um EXE do Windows C++, as mesmas etapas também funciona para uma DLL C++/CLR e, é claro, o DLL exporta métodos que podem ser chamados de um .NET EXE.

Para testá-lo, você poderá incorporar qualquer amostra do OpenCV ao seu DLL com alguns ajustes. (Adicione o arquivo .CPP ao seu projeto, converta a função main () em uma membro da classe etc. - você conhece o exercício ...) Um bom candidato a teste pode ser a amostra "mat_mask_operations".

17
Paul Williams

O OpenCV.NET está disponível no NuGet

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

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

Aqui está uma lista de recursos do site do projeto:

O OpenCV.NET é uma interface .NET para a popular biblioteca de processamento de imagem e visão por computador OpenCV. Essas ligações foram desenvolvidas ao longo de um ano e incluem muitos recursos ausentes de outras tentativas, a saber:

  • Compatibilidade Mono entre plataformas (apenas P/Invoke é usado)
  • Suporte muito próximo a 100% da API C mais recente (incluindo funções não documentadas)
  • Documentação/intellisense completos para todos os métodos, classes e membros enum suportados (minuciosamente extraídos de muitas fontes diferentes)
  • Suporte para exceções
  • Amigo do coletor de lixo:
    • O GC está ciente da memória real usada por matrizes e imagens
    • É garantido que os ponteiros sobrevivam às chamadas de função, mesmo que ocorra a coleta simultânea de lixo
  • Modelo de objeto após a API C++, tanto quanto possível (para um maior suporte futuro da API C++)
  • Licença de estilo BSD (MIT)
10
VoteCoffee

Criei um pacote NuGet para facilitar o início do OpenCv em C #, usando o EmguCV.

Confira! Na pesquisa do Visual Studio e adicione o pacote NuGet myEmguCV.Net .

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

2
Tony

Eu acho que o melhor wrapper é opencvsharp http://code.google.com/p/opencvsharp/

2
mrgloom

Sei que esta pergunta foi respondida por um longo tempo, mas gostaria de acrescentar que existe um wrapper muito bom aqui . Esta é a nova versão do wrapper openCV que você tentou projeto de código . Eu tentei por alguns dias e tudo funciona perfeito. Além disso, consegui trabalhar em questão de minutos.

Não sei pela compatibilidade com o mono, mas no Visual Studio 2010, ele funciona como um encanto e me poupou muito tempo e dinheiro (meu projeto é comercial e a maior parte da biblioteca é de código aberto com licença que não permite comerciais). utilização, a menos que publique o código)

0
Jean-François Côté

O SharperCV foi a nossa ferramenta de escolha, e não nos decepcionou, para o nosso projeto de robótica . Embora atualmente esteja marcado como abandonado, o código está realmente em boa forma, requer apenas pequenos ajustes para personalizá-lo para sua necessidade. Sem msgboxes e, na verdade, manipulação de exceção muito sensata.

Não é multiplataforma, no entanto, devido à camada de interoperabilidade.

0
Silver Dragon