Pergunta

Eu vi há alguns deles. opencvdotnet , SharperCV , EmguCV , < a href = "http://www.codeproject.com/KB/cs/Intel_OpenCV.aspx#install" rel = "noreferrer"> um em projeto de código .

Alguém tem alguma experiência com qualquer um desses? Eu brinquei com o um no projeto de código para um pouco, mas logo que eu tentei fazer nada complicado eu tenho algumas exceções uncatchable desagradáveis ??(ou seja, Msgbox exceções). multiplataforma (suportes Mono) seria melhor.

Foi útil?

Solução

Eu comecei com opencvdotnet mas não é realmente ativamente desenvolvido mais. Além disso, o suporte para o recurso que eu precisava (detecção facial) foi parciais. Estou usando EmguCV agora: Ela envolve um maior parte muito da API e o cara por trás dele é muito sensível às sugestões e pedidos. O código é uma alegria para olhar e é conhecido por trabalhar em Mono.

Eu escrevi um rápido guia getting-started no meu blog.

Outras dicas

OpenCVSharp site do Google Code é em japonês, mas ele usa a mais recente OpenCV constrói e impliments IDisposable por toda parte. Parece para fornecer mais functioanlity do que qualquer um dos outros que temos visto até agora e ainda está ativa. Tem bastante extensos programas de exemplo também.

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

Tente isto: criar um projeto ++ / CLR DLL C que links para as bibliotecas OpenCV. O manual OpenCV descreve como fazer isso por um ++ EXE do Windows C, os mesmos passos também funcionam para um C ++ / CLR DLL. Então, naturalmente, as exportações DLL métodos que podem ser chamados a partir de um .NET EXE.

Para testá-lo, você deve ser capaz de incorporar qualquer das amostras OpenCV em sua DLL com um pouco de ajustes. (Adicione o arquivo .CPP ao seu projeto, converter a função main () para um membro da classe, etc. - você sabe o que fazer ...). Um candidato bom teste pode ser a "mat_mask_operations" sample

OpenCV.NET está disponível a partir NuGet

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

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

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

OpenCV.NET é uma interface .NET para a visão computacional OpenCV popular e imagem biblioteca de processamento. Essas ligações foram desenvolvidos ao longo de um ano e incluem muitas características que têm sido falta de outras tentativas, a saber:

  • Cross-plataforma compatibilidade Mono (apenas P / invocação é usado)
  • Muito perto de 100% de apoio dos mais recentes C API (incluindo funções indocumentados)
  • A documentação completa / intellisense para todos os métodos suportados, classes e membros de enumeração (arduously minadas de muitas fontes diferentes)
  • Suporte para exceções
  • coletor de lixo friendly:
    • GC está ciente da memória real usado por matrizes e imagens
    • Os ponteiros são garantidos para sobreviver chamadas de função, mesmo que a coleta de lixo simultânea acontece
  • modelo de objeto seguinte API C ++, tanto quanto possível (no sentido de futuro aumento do apoio de C ++ API)
  • licença BSD (MIT)

Eu acho melhor invólucro é opencvsharp http://code.google.com/p/opencvsharp/

Eu criei um pacote NuGet para fazer fácil de começar com opencv em C #, usando EmguCV.

Check it out! Em Visual Studio pesquisar e adicionar o myEmguCV.Net pacote NuGet.

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

SharperCV foi nossa ferramenta de escolha, e não nos decepcionou, para o nosso robótica projetar . Mesmo que ele está atualmente marcado como abandonada, o código está realmente em boa forma, requer apenas pequenos ajustes para personalizá-lo para sua necessidade. Não Msgboxes e tratamento de exceção realmente muito sã.

Não multi-plataforma, no entanto, devido à camada de interoperabilidade.

Eu sei que esta pergunta foi respondida por um longo tempo, mas eu gostaria de acrescentar que há uma muito boa embalagem aqui . Esta é a nova versão do invólucro openCV que você tentou em projeto de código . Eu tentei isso para um par de dias e tudo funciona perfeito. Além disso, eu tenho que trabalhar em minutos.

Eu não sei para a compatibilidade com mono mas sob Visual Studio 2010, ele funciona como um encanto e me salvou de toneladas de tempo e dinheiro (o meu projeto é comercial ea maior parte da biblioteca são de código aberto com licença que doesn' t permitir a utilização comercial, a menos que a publicação do código)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top