.Net(dotNet) для OpenCV?
Я видел, что есть несколько из них. opencvdotnet, SharperCV, EmguCV, Один из проектов кода.
Есть ли у кого-нибудь опыт в этом отношении? Я немного поиграл с проектом Code Project, но как только я попытался сделать что-нибудь сложное, я получил некоторые неприятные неуловимые исключения (например, исключения Msgbox). Кросс-платформа (поддержка Mono) была бы лучше всего.
Ответы
Ответ 1
Я начал с opencvdotnet, но он не был активно развит. Кроме того, поддержка функции, в которой я нуждалась (сталкиваясь), была неоднородной. Теперь я использую EmguCV: он охватывает гораздо большую часть API, а парень позади него очень чутко реагирует на предложения и запросы. Код - это радость, на которую можно смотреть и, как известно, работает над Mono.
В моем блоге я написал быстрое руководство по началу работы.
Ответ 2
Мы используем OpenCVSharp, веб-сайт google code на японском языке, но он использует последние сборки OpenCV и импликации IDisposable повсюду. Похоже, что она обеспечивает большую функциональность, чем любая другая, которую мы видели на сегодняшний день, и все еще активна. Он также имеет довольно обширные примеры программ.
Ответ 3
Я думаю, важно отметить, что исходный вопрос задавали в 2008, а OpenCV 2.0 был выпущен в 2009. В версии 2.0 появилась оболочка С++, с которой значительно легче работать, чем с более старым интерфейсом C, с которым сталкивался OP. Для моего проекта .NET я оставляю все графические манипуляции в родном С++.
Попробуйте следующее: создать проект С++/CLR DLL, который связывается с библиотеками OpenCV. В руководстве OpenCV описано, как это сделать для Windows С++ EXE, те же действия также выполняются для библиотеки С++/CLR. Затем, конечно, DLL экспортирует методы, которые можно вызывать из .NET EXE.
Чтобы протестировать его, вы сможете с легкостью включить любые образцы OpenCV в свою DLL с небольшой настройкой. (Добавьте файл .CPP в свой проект, преобразуйте функцию main() в член класса и т.д. - вы знаете упражнение...) Хорошим кандидатом на тест может быть образец "mat_mask_operations".
Ответ 4
OpenCV.NET доступен в NuGet
https://bitbucket.org/horizongir/opencv.net
https://www.nuget.org/packages/OpenCV.Net
Вот список возможностей сайта проекта:
OpenCV.NET - это интерфейс .NET для популярного видения и образа компьютера OpenCV библиотека обработки. Эти привязки были разработаны в течение года и включают в себя множество функций, которые были отсутствует при других попытках, а именно:
- Кросс-платформенная моно совместимость (используется только P/Invoke)
- Очень близка к 100% поддержке последнего API C (включая недокументированные функции)
- Полная документация /intellisense для всех поддерживаемых методов, классов и членов перечисления (трудно добытых из разных источников)
- Поддержка исключений
- Сборщик мусора:
- GC осведомлен о фактической памяти, используемой матрицами и изображениями
- Указатели гарантированно смогут выдержать вызовы функций, даже если происходит одновременная сборка мусора.
- Объектная модель, следующая за С++ API, в максимально возможной степени (в сторону увеличения поддержки API С++)
- Лицензия BSD-стиля (MIT)
Ответ 5
Я создал пакет NuGet, чтобы упростить запуск с OpenCv на С#, используя EmguCV.
Проверьте это!
В Visual Studio выполните поиск и добавьте пакет myEmguCV.Net NuGet.
https://www.nuget.org/packages/myEmguCV.Net
Ответ 6
Я думаю, что лучшая обертка - opencvsharp
http://code.google.com/p/opencvsharp/
Ответ 7
SharperCV был нашим инструментом выбора, и это не подведет нас, для нашего проекта робототехники. Несмотря на то, что в настоящее время он отмечен как заброшенный, код находится в действительно хорошей форме, для его настройки требуется только небольшая настройка. Нет msgboxes и фактически очень правильная обработка исключений.
Не межплатформенный, хотя из-за уровня совместимости.
Ответ 8
Я знаю, что на этот вопрос был дан ответ в течение длительного времени, но я хотел бы добавить, что здесь есть очень хорошая оболочка здесь. Это новая версия обертки openCV, которую вы пробовали в проекте . Я пробовал это на пару дней, и все работает отлично. Кроме того, я заработал за несколько минут.
Я не знаю совместимости с моно, но в Visual Studio 2010, он работает как шарм и сэкономил мне много времени и денег (мой проект коммерческий, а большая часть библиотеки - с открытым исходным кодом с лицензией, t разрешить коммерческое использование, если не публиковать код)