2011-10-24 43 views
13

所以我們在大學有這個圖像處理課程,我們將廣泛使用OpenCV。問題是,OpenCV使用C++,但我比C++更流暢地使用C#。我知道有OpenCV的包裝(OpenCVDotNet,SharperCV,EmguCV,...)但我不知道該選哪個。.Net OpenCV包裝是否值得使用?

我的問題是:

  • 哪一個包裹大多數/所有的OpenCV的功能?
  • 他們甚至值得使用? (可能不會經常更新,缺少功能或速度,...)
  • 或者我應該更好地刷我的C++技能嗎?

注:我知道,我的問題是this one可能重複的,但它是舊的(2008年),事情可能改變。

+2

您的前兩個問題都可以通過查看包裝的相應信息頁/回購來回答。您將能夠看到每個人的報道以及活動。 –

+1

@NeilN我從來沒有使用過OpenCV,所以我不知道這些包裝對OpenCV有多大覆蓋。這就是爲什麼我期望聽到與這些庫中的任何一個合作的人的意見。 – Nasreddine

+0

我的意思是說,每個lib的頁面應該有關於什麼/沒有被覆蓋的文檔。 –

回答

11

我沒有使用EmguCV,但我已經使用OpenCV一段時間了。

來自SharperCV的網站:
如果您想使用OpenCV,Emgu CV.Net封裝是我們當前的建議。

而且,OpenCVDotNet看起來更像是一個學術沙箱,所以如果是我,我會用我的任何涉及C#的研究項目來使用EmguCV。主要是因爲它正在積極維護,並且它具有今天可用包裝的最多特徵。

16

我曾嘗試過EmguCV。它支持的功能範圍很好。但是如果你的項目是速度問題的話,那麼最好刷一下你的C++技能。

我不太瞭解其他包裝。我曾經在同一個位置上。我在學術期間從事emgucv工作,不得不在我的職業中轉向C++。

相信我,你不會覺得移植到C++上太難了。

3

作爲更新,我可以證實以前給出的答案。

我已經使用OpenCV與C++和EMGU包裝進行研究和工作,我同意部分與大多數人。

EMGU CV可以簡單易學,你的代碼會更容易理解,它需要較少的代碼行並沒有,你可以調用函數一個體面的範圍。但它並不完整。

許多函數不會提供OpenCV 3.0的所有原始功能,例如, FindNonZero()不能和包裝的函數完全一樣,SetValue()讓我很難拋出運行時錯誤難以調試。

在另一方面,OpenCV提供比你會發現其他任何包裝的大力支持在線,您將有最先進的最新圖書館合作。 OpenCV 3.1是一個很好的版本,我發現在Xcode或Visual Studio上運行它沒有任何問題。

因此,我會建議任何想要沉浸在計算機視覺和圖像處理中的人直奔OpenCV C++。如果你只是想處理更復雜的問題,你可以選擇EMGU(我不能推薦別人,因爲我不熟悉)。