.Net (dotNet) оболочки для OpenCV?

Я видел их несколько. opencvdotnet, SharperCV, EmguCV, Один в проекте кода.

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
71
0
54 907
8
Перейти к ответу Данный вопрос помечен как решенный

Ответы 8

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

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

Ответ принят как подходящий

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

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

Остерегайтесь, EmguCV использует двойную лицензию GPL3 / Commercial, тогда как OpenCV использует лицензию BSD. Обратите внимание, что OpenCVSharp использует лицензию LGPL. OpenCVSharp активно развивается с апреля 2014 года.

Kaganar 17.04.2014 22:24

Если вы планируете выпустить свой проект как реальный, поддерживаемый продукт, то с осторожностью относитесь к OpenCVSharp. Я играл с ним несколько недель - он работает нормально, но документов и примеров мало. Мне нравится его лицензия BSD, и разработчик хороший / активный, но ему нужна подходящая команда. EmguCV документация, рабочие примеры и поддержка сообщества значительно превосходят его.

kdbanman 08.07.2015 21:02

EmguCV зависит от старых версий системных библиотек (включая GTK + 2). Это может быть проблемой, если вы планируете использовать его в какой-либо неподдерживаемой системе, например. Arch Linux.

Dmitry Fedorkov 20.10.2016 07:36

Ссылка на руководство по началу работы для меня истекло

Andy P 23.03.2017 15:58

Ваш блог был перемещен, @friism? friism.com мертв.

Fetchez la vache 24.03.2017 14:30

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

Он также доступен на github

Mike 01.06.2014 06:45

Он также доступен в NuGet и является рекомендуемым расположением, если вы используете VS2012 или более позднюю версию.

VoteCoffee 15.08.2014 22:35

Я знаю, что на этот вопрос уже давно ответили, но хочу добавить, что есть очень хорошая обертка здесь. Это новая версия оболочки 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".

Мне очень нравится твоя идея. Удаление уровня обслуживания и сложности за счет игнорирования сторонней оболочки - это здорово. Можете ли вы связать / предоставить минимальный пример измененного источника?

kdbanman 08.07.2015 21:06

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

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

Проверьте это! В Visual Studio найдите и добавьте пакет NuGet myEmguCV.Net.

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

NuGetMustHaves содержит хорошее резюме пакетов в NuGet с датами их сборки и версиями OpenCV.

По состоянию на 22.12.2020:

  • EmguCV обновлен для OpenCV v4.4.0.4099 10/07/2020
  • OpenCvSharp обновлен для OpenCV v4.5.0.20201013 13.10.2020

EmguCV и OpenCvSharp - это 2 пакета с недавними сборками, которые, по всей видимости, станут лучшим выбором в будущем.

Остерегайтесь, EmguCV использует двойную GPL3 / коммерческую лицензию (источник), тогда как OpenCVSharp использует лицензию BSD с тремя пунктами. Другими словами, OpenCVSharp бесплатен для коммерческого использования, а EmguCV - нет. EmguCV имеет превосходную документацию / примеры / поддержку и большую команду разработчиков, тем не менее, что делает лицензию стоящей во многих случаях.

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

Престижность за обновление ответа через 5 лет после исходного сообщения.

Avi Turner 09.09.2020 08:24

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