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





SharperCV был нашим любимым инструментом, и он нас не подводил для нашего проект робототехники. Несмотря на то, что в настоящее время он отмечен как заброшенный, код действительно в хорошем состоянии, требуется лишь незначительная настройка, чтобы настроить его для ваших нужд. Никаких сообщений, и на самом деле очень разумная обработка исключений.
Однако не кросс-платформенный из-за уровня совместимости.
Я начал с opencvdotnet, но сейчас он не очень активно развивается. Кроме того, поддержка необходимой мне функции (распознавание лиц) была неоднородной. Сейчас я использую EmguCV: он охватывает гораздо большую часть API, и человек, стоящий за ним, очень быстро реагирует на предложения и запросы. На код приятно смотреть, и известно, что он работает с Mono.
Я быстро написал руководство по началу работы в своем блоге.
Если вы планируете выпустить свой проект как реальный, поддерживаемый продукт, то с осторожностью относитесь к OpenCVSharp. Я играл с ним несколько недель - он работает нормально, но документов и примеров мало. Мне нравится его лицензия BSD, и разработчик хороший / активный, но ему нужна подходящая команда. EmguCV документация, рабочие примеры и поддержка сообщества значительно превосходят его.
EmguCV зависит от старых версий системных библиотек (включая GTK + 2). Это может быть проблемой, если вы планируете использовать его в какой-либо неподдерживаемой системе, например. Arch Linux.
Ссылка на руководство по началу работы для меня истекло
Ваш блог был перемещен, @friism? friism.com мертв.
Мы используем OpenCVSharp, веб-сайт кода Google находится на японском языке, но он использует последние сборки OpenCV и внедряет IDisposable повсюду. Кажется, что он обеспечивает большую функциональность, чем любой из других, которые мы видели на сегодняшний день, и все еще активен. Он также имеет довольно обширные примеры программ.
Он также доступен на github
Он также доступен в NuGet и является рекомендуемым расположением, если вы используете VS2012 или более позднюю версию.
Я знаю, что на этот вопрос уже давно ответили, но хочу добавить, что есть очень хорошая обертка здесь. Это новая версия оболочки openCV, которую вы пробовали на проект кода. Пару дней пробовал, все работает отлично. Кроме того, он заработал за считанные минуты.
Я не знаю совместимость с моно, но в Visual Studio 2010 он работает как шарм и сэкономил мне массу времени и денег (мой проект является коммерческим, и большая часть библиотеки имеет открытый исходный код с лицензией, которая не позволяет коммерческую использование, если не публикует код)
Я думаю, важно отметить, что исходный вопрос был задан в 2008 г., а OpenCV 2.0 был выпущен в 2009 г.. В выпуске версии 2.0 появилась оболочка C++, с которой значительно проще работать, чем со старым интерфейсом C, с которым столкнулся OP. В моем .NET-проекте я оставляю все графические манипуляции на «родном» C++.
Попробуй это: создает проект C++ / CLR DLL, который ссылается на библиотеки OpenCV. В руководстве по OpenCV описано, как это сделать для Windows C++ EXE, те же шаги также работают для C++ / CLR DLL. Затем, конечно, DLL экспортирует методы, которые вызываются из .NET EXE.
Чтобы проверить это, вы должны иметь возможность включить любой из образцов OpenCV в свою DLL с небольшой настройкой. (Добавьте файл .CPP в свой проект, преобразуйте функцию main () в член класса и т. д. - вы знаете, что такое упражнение ...) Хорошим кандидатом на тестирование может быть образец "mat_mask_operations".
Мне очень нравится твоя идея. Удаление уровня обслуживания и сложности за счет игнорирования сторонней оболочки - это здорово. Можете ли вы связать / предоставить минимальный пример измененного источника?
Я думаю, что лучшая оболочка - opencvsharp http://code.google.com/p/opencvsharp/
Я создал пакет NuGet, чтобы упростить начало работы с OpenCv на C#, используя EmguCV.
Проверьте это! В Visual Studio найдите и добавьте пакет NuGet myEmguCV.Net.
NuGetMustHaves содержит хорошее резюме пакетов в NuGet с датами их сборки и версиями OpenCV.
По состоянию на 22.12.2020:
EmguCV и OpenCvSharp - это 2 пакета с недавними сборками, которые, по всей видимости, станут лучшим выбором в будущем.
Остерегайтесь, EmguCV использует двойную GPL3 / коммерческую лицензию (источник), тогда как OpenCVSharp использует лицензию BSD с тремя пунктами. Другими словами, OpenCVSharp бесплатен для коммерческого использования, а EmguCV - нет. EmguCV имеет превосходную документацию / примеры / поддержку и большую команду разработчиков, тем не менее, что делает лицензию стоящей во многих случаях.
Стоит подумать, каковы ваши будущие варианты использования. Если вы просто хотите быстро начать работу с помощью управляемого языка, обертки подойдут. Я начал с этого пути. Но когда я занялся более серьезными приложениями, я обнаружил, что создание приложения на C++ имеет лучшую производительность и больше возможностей для повторного использования кода на разных платформах.
Престижность за обновление ответа через 5 лет после исходного сообщения.
Остерегайтесь, EmguCV использует двойную лицензию GPL3 / Commercial, тогда как OpenCV использует лицензию BSD. Обратите внимание, что OpenCVSharp использует лицензию LGPL. OpenCVSharp активно развивается с апреля 2014 года.