c# emgucv書 - .Net(dotNet)OpenCV包裝?



opencv人臉偵測 emgu.cv (8)

我見過其中有幾個。 opencvdotnetSharperCVEmguCV一個代碼項目

有沒有人有任何這些經驗? 我在Code Project上玩了一下,但只要我試圖做任何復雜的事情,我就會得到一些令人討厭的不可捕捉的異常(即Msgbox異常)。 跨平台(支持Mono)將是最好的。


Answers

我知道這個問題已經回答了很長時間,但我想補充一點,這裡有一個很好的包裝。 這是您在代碼項目中嘗試的openCV包裝器的新版本。 我試了幾天,一切都很完美。 此外,我在幾分鐘內就能完成工作。

我不知道與單聲道的兼容性,但在Visual Studio 2010下,它的功能就像一個魅力,節省了我大量的時間和金錢(我的項目是商業化的,大多數圖書館都是開源的,許可證不允許商業廣告利用率除非發布代碼)


SharperCV是我們的首選工具,它不會讓我們失望,因為我們的機器人項目 。 儘管它目前被標記為廢棄,但代碼的狀態非常好,只需稍作調整即可根據需要對其進行自定義。 沒有msgboxes,實際上非常理智的異常處理。

儘管如此,由於互操作性層,還沒有跨平台。


NuGet提供OpenCV.NET

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

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

以下是項目網站的功能列表:

OpenCV.NET是流行的OpenCV計算機視覺和圖像處理庫的.NET界面。 這些綁定是在一年的時間裡開發的,包含了許多其他嘗試中缺少的功能,即:

  • 跨平台單聲道兼容性(僅使用P / Invoke)
  • 非常接近100%的最新C API支持(包括無證函數)
  • 所有支持的方法,類和枚舉成員的完整文檔/智能感知(從許多不同來源艱苦挖掘)
  • 支持例外
  • 垃圾收集友好:
    • GC知道矩陣和圖像使用的實際內存
    • 即使發生並發垃圾收集,指針也能保證在函數調用中倖存
  • 盡可能遵循C ++ API的對像模型(面向將來增加對C ++ API的支持)
  • BSD式許可(MIT)

我們使用OpenCVSharp ,谷歌代碼網站是日文版,但它使用最新的OpenCV版本,並貫穿整個IDisposable。 它似乎提供了比我們迄今為止所見到的其他功能還有效的功能。 它也有相當廣泛的示例程序。



我認為重要的是要注意最初的問題在2008年被問到,而OpenCV 2.0在2009年發布。 2.0版本引入了一個C ++包裝器,與OP所面臨的舊C接口相比,該包裝器的工作容易得多。 對於我的.NET項目,我將所有圖形操作都放在本機C ++中。

試試這個:創建一個鏈接到OpenCV庫的C ++ / CLR DLL項目。 OpenCV手冊介紹瞭如何為Windows C ++ EXE執行此操作,對於C ++ / CLR DLL也同樣適用。 當然,DLL導出可從.NET EXE調用的方法。

為了測試它,你應該能夠將一些OpenCV示例合併到你的DLL中並進行一些調整。 (將.CPP文件添加到您的項目中,將main()函數轉換為類成員等 - 您知道鑽取...)好的測試候選者可能是“mat_mask_operations”示例。







c# .net opencv mono cross-platform