2009-04-14 365 views
41

我剛剛學習計算機視覺和C#。看起來像兩個突出的圖像處理庫是OpenCVAForge。兩者有什麼不同?AForge和OpenCV之間的區別

我正在C#中編寫一個基本的圖像編輯器,並在研究過程中遇到過兩篇文章。但我不知道爲什麼我會選擇一個。我想最終改進應用程序以包含更多高級功能。

謝謝。

回答

14

我現在在學校使用OpenCV作爲項目,我瀏覽了AForge的文檔,它們的功能看起來不一樣。 AForge有很多過濾器,可能對於不同的轉換和圖像處理非常有用。但在其他方面似乎缺乏一點。我找不到任何矩陣操作,因爲它在計算機視覺中非常有用,所以這是令人失望的。就我從文檔中看到的情況而言,我們目前的項目(從圖像序列重建3D點雲)將無法單獨應用於AForge。

結合AForge與一個好的線性代數庫,你可能有一些真正有用的,但。

至於OpenCV它有一個豐富的功能集,但是編程有點棘手。

3

如果你想用你所說的越來越高級的功能來改進你的應用程序,我會選擇OpenCV--但是,你的成功的一部分取決於C#端口被主動更新的事實,考慮到三個港口不會有太大的麻煩。我認爲EmguCV似乎是更新後的最佳版本之一,但是當我查看它時,缺少文檔(但可以將C++代碼翻譯成具有C++知識的C#代碼)。 AForge對我來說似乎更容易,這就是我現在使用的。 OpenCV也支持haarcascade.xml文件,您可以使用它包含人臉檢測。因此,對於最終決定:兩者都適合你,OpenCV更廣泛地被使用/支持(雖然大多數用戶基礎都是C++),但是AForge更容易。這一切都歸結於你想要做的事情。

+3

[雅閣](http://accord-net.origo.ethz.ch/),框架延伸AForge支持XML Haar級聯文件。它填補了AForge的許多空白,因此使用兩者都是一個好主意。 – smola 2011-10-12 10:24:27

40

那麼,爲什麼不使用兩者;)?

我使用(從字面上C#...笑)EMGUCV.NET(這是一個OpenCV的C#包裝)和AFORGE.NET在同一時間:

AFORGE.NET加上其 「圖像處理實驗室」對於過濾選項(邊緣檢測,閾值等等)和緩解查看功能非常有意義。

OpenCV提供所有其他像SIFT/SURF和其他更復雜的圖像處理例程。

這就是爲什麼你使用.NET:簡單地將所有組件,你需要一件申請:)