Вопрос

Я видел, что их там несколько. opencvdotnet, SharperCV ( острый ), EmguCV, Один из проектов Code.

Есть ли у кого-нибудь опыт работы с чем-либо из этого?Я немного поиграл с one on Code Project, но как только я попытался сделать что-нибудь сложное, я получил несколько неприятных неуловимых исключений (т.е.Исключения Msgbox).Лучше всего подойдет кроссплатформенность (поддерживает Mono).

Это было полезно?

Решение

Я начинал с opencvdotnet, но на самом деле он больше не развивается активно.Кроме того, поддержка функции, в которой я нуждался (facedetection), была неоднородной.Я использую EmguCV сейчас:Он охватывает гораздо большую часть API, и человек, стоящий за ним, очень отзывчив к предложениям и запросам.На этот код приятно смотреть, и известно, что он работает на Mono.

Я быстро набросал руководство по началу работы в моем блоге.

Другие советы

Мы используем OpenCvSharp веб-сайт Google Code написан на японском языке, но в нем используются последние сборки OpenCV и возможности IDisposable повсюду.Похоже, он обеспечивает больше функциональности, чем любой другой, который мы видели на сегодняшний день, и все еще активен.В нем также есть довольно обширные примеры программ.

Я думаю, важно отметить, что первоначальный вопрос был задан в 2008, а OpenCV 2.0 был выпущен в 2009.В версии 2.0 была представлена оболочка C ++, работать с которой значительно проще, чем со старым интерфейсом C, с которым столкнулась операционная система.Для моего проекта .NET я оставляю все графические манипуляции на родном C ++.

Попробуй это: создайте проект C ++ / CLR DLL, который ссылается на библиотеки OpenCV.В руководстве OpenCV описано, как это сделать для Windows C ++ EXE, те же шаги также работают для C ++ / CLR DLL.Затем, конечно, DLL экспортирует методы, которые можно вызвать из .NET EXE.

Чтобы протестировать это, вы должны иметь возможность включить любой из примеров OpenCV в вашу библиотеку DLL с небольшой настройкой.(Добавьте файл .CPP в свой проект, преобразуйте функцию main() в член класса и т.д.- вы знаете, как это делается ...) Хорошим кандидатом на тестирование может быть образец "mat_mask_operations".

OpenCV.NET доступен из NuGet

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

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

Вот список функций с сайта проекта:

OpenCV.NET представляет собой .NET-интерфейс для популярной библиотеки компьютерного зрения и обработки изображений OpenCV .Эти привязки разрабатывались в течение года и включают в себя множество функций, которые отсутствовали в других попытках, а именно:

  • Кросс-платформенная совместимость с Mono (используется только P /Invoke)
  • Очень близкая к 100% поддержка новейшего C API (включая недокументированные функции)
  • Полная документация / intellisense для всех поддерживаемых методов, классов и членов enum (с трудом добытая из множества различных источников)
  • Поддержка исключений
  • Удобный сборщик мусора:
    • GC знает о фактической памяти, используемой матрицами и изображениями
    • Указатели гарантированно выживут при вызовах функций, даже если произойдет одновременная сборка мусора
  • Объектная модель, максимально соответствующая C ++ API (в направлении расширения поддержки C ++ API в будущем)
  • BSD-style license (MIT)

Я думаю, что лучшая оболочка - это opencvsharp http://code.google.com/p/opencvsharp/

Я создал пакет NuGet, чтобы упростить запуск с OpenCV на C #, используя EmguCV.

Зацените это!В Visual Studio выполните поиск и добавьте myEmguCV.Net Пакет NuGet.

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

SharperCV был нашим любимым инструментом, и он не подводит нас, поскольку наш проект по робототехнике.Несмотря на то, что в настоящее время он помечен как заброшенный, код находится в действительно хорошей форме, требуется лишь незначительная доработка, чтобы настроить его под ваши нужды.Никаких сообщений и на самом деле очень разумная обработка исключений.

Однако он не кроссплатформенный из-за уровня интероперабельности.

Я знаю, что на этот вопрос уже давно дан ответ, но я хотел бы добавить, что существует очень хорошая оболочка здесь.Это новая версия оболочки OpenCV, которую вы опробовали проект кода.Я пробовал это в течение нескольких дней, и все работает идеально.Кроме того, я заставил это сработать за считанные минуты.

Я не уверен в совместимости с mono, но в Visual Studio 2010 это работает как по маслу и сэкономило мне кучу времени и денег (мой проект коммерческий, и большая часть библиотеки с открытым исходным кодом и лицензией, которая не допускает коммерческого использования без публикации кода)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top