轉自:https://www.cnblogs.com/ajian005/archive/2012/11/04/2841171.htmlphp
從cvchina搞到的機器視覺開源處理庫彙總,轉來了,很給力,還在不斷更新。。。css
無需多言。html
Recognition And Vision Library. 線程安全。強大的IO機制。包含AAM。java
很酷的一個圖像處理包。整個庫只有一個頭文件。包含一個基於PDE的光流算法。linux
基於Marker的AR庫算法
ARToolKit的加強版。實現了更好的姿態估計算法。spring
實時的跟蹤、SLAM、AR庫。無需Marker,模板,內置傳感器等。編程
基於特徵點檢測和識別的AR庫。安全
目前最好的Sift開源實現。同時包含了KD-tree,KD-Forest,BoW實現。網絡
基於Naive Bayesian Bundle的特徵點識別。高速,但佔用內存高。
基於OpenCV的Sift實現。
又一個AdaBoost實現。訓練速度快。
基於Centrist和Linear SVM的快速行人檢測。
目前最完整的(近似)最近鄰開源庫。不但實現了一系列查找算法,還包含了一種自動選取最快算法的機制。
另一個近似最近鄰庫。
monoSLAM庫。由Androw Davison開發。
使用Simple Linear Iterative Clustering產生指定數目,近似均勻分佈的Super Pixel。
基於Online Random Forest的目標跟蹤算法。
Kanade-Lucas-Tracker
Online Boosting Trackers
基於聯通域鏈接的直線檢測算法。
基於梯度的,局部直線段檢測算子。
基於感知的多媒體文件Hash算法。(提取,對比圖像、視頻、音頻的指紋)
Ming-Ming Cheng的視覺顯著性算法。
最快,最好的開源FFT。
輕量級的FFT實現。許可證是亮點。
音頻處理,音頻合成。
音頻文件IO。
音頻重採樣。
小波變換
快速小波變換(FWT)
BRIEF: Binary Robust Independent Elementary Feature 一個很好的局部特徵描述子,裏面有FAST corner + BRIEF實現特徵點匹配的DEMO:http://cvlab.epfl.ch/software/brief/
http://code.google.com/p/javacv
Java打包的OpenCV, FFmpeg, libdc1394, PGR FlyCapture, OpenKinect, videoInput, and ARToolKitPlus庫。能夠放在Android上用~
libHIK,HIK SVM,計算HIK SVM跟Centrist的Lib。http://c2inet.sce.ntu.edu.sg/Jianxin/projects/libHIK/libHIK.htm
一組視覺顯著性檢測代碼的連接:http://cg.cs.tsinghua.edu.cn/people/~cmm/saliency/
OpenCV是Intel®開源計算機視覺庫。它由一系列 C 函數和少許 C++ 類構成,實現了圖像處理和計算機視覺方面的不少通用算法。 OpenCV 擁有包括 300 多個C函數的跨平臺的中、高層 API。它不依賴於其它的外部庫——儘管也可使用某些外部庫。 OpenCV 對非商業... |
faceservice.cgi 是一個用來進行人臉識別的 CGI 程序, 你能夠經過上傳圖像,而後該程序即告訴你人臉的大概座標位置。faceservice是採用 OpenCV 庫進行開發的。 |
OpenCVDotNet 是一個 .NET 對 OpenCV 包的封裝。 |
jViolajones是人臉檢測算法Viola-Jones的一個Java實現,並可以加載OpenCV XML文件。 示例代碼:http://www.oschina.net/code/snippet_12_2033 |
JavaCV 提供了在計算機視覺領域的封裝庫,包括:OpenCV、ARToolKitPlus、libdc1394 2.x 、PGR FlyCapture和FFmpeg。此外,該工具能夠很容易地使用Java平臺的功能。 JavaCV還帶有硬件加速的全屏幕圖像顯示(CanvasFrame),易於在多個內核中執行並行代碼(並... |
QMotion 是一個採用 OpenCV 開發的運動檢測程序,基於 QT。 |
OpenVSS - 開放平臺的視頻監控系統 - 是一個系統級別的視頻監控軟件視頻分析框架(VAF)的視頻分析與檢索和播放服務,記錄和索引技術。它被設計成插件式的支持多攝像頭平臺,多分析儀模塊(OpenCV的集成),以及多核心架構。 |
手勢識別,用OpenCV實現 |
提供人臉檢測、識別與檢測特定人臉的功能,示例代碼 cvReleaseImage( &gray ); cvReleaseMemStorage(&storage); cvReleaseHaarClassifierCascade(&cascade);... |
Active Shape Model Library (ASMLibrary©) SDK, 用OpenCV開發,用於人臉檢測與跟蹤。 |
ECV 是 lua 的計算機視覺開發庫(目前只提供linux支持) |
OpenCVSharp 是一個OpenCV的.Net wrapper,應用最新的OpenCV庫開發,使用習慣比EmguCV更接近原始的OpenCV,有詳細的使用樣例供參考。 |
基於OpenCV構建的圖像處理和3D視覺庫。 示例代碼: ImageSequenceReaderFactory factory; ImageSequenceReader* reader = factory.pathRegex("c:/a/im_%03d.jpg", 0, 20); //ImageSequenceReader* reader = factory.avi("a.avi"); if (reader == NULL) { ... |
基於 QT 的面向對象的多平臺計算機視覺庫。能夠方便的建立圖形化應用程序,算法庫主要從 OpenCV,GSL,CGAL,IPP,Octave 等高性能庫借鑑而來。 |
cvBlob 是計算機視覺應用中在二值圖像裏尋找連通域的庫.可以執行連通域分析與特徵提取. |
GShow is a real-time image/video processing filter development kit. It successfully integrates DirectX11 with DirectShow framework. So it has the following features: GShow 是實時 圖像/視頻 處理濾波開發包,集成DiretX11。... |
VideoMan 提供一組視頻捕獲 API 。支持多種視頻流同時輸入(視頻傳輸線、USB攝像頭和視頻文件等)。能利用 OpenGL 對輸入進行處理,方便的與 OpenCV,CUDA 等集成開發計算機視覺系統。 |
Pattern Recognition project(開放模式識別項目),致力於開發出一套包含圖像處理、計算機視覺、天然語言處理、模式識別、機器學習和相關領域算法的函數庫。 |
OpenCV的Python封裝,主要特性包括: 提供與OpenCV 2.x中最新的C++接口極爲類似的Python接口,而且包括C++中不包括的C接口 提供對OpenCV 2.x中全部主要部件的綁定:CxCORE (almost complete), CxFLANN (complete), Cv (complete), CvAux (C++ part almost... |
計算機視覺快速開發平臺,提供測試框架,使開發者能夠專一於算法研究。 |
對函數庫v412的封裝,從網絡攝像頭等硬件得到圖像數據,支持YUYV裸數據輸出和BGR24的OpenCV IplImage輸出 |
OpenVIDIA projects implement computer vision algorithms running on on graphics hardware such as single or multiple graphics processing units(GPUs) using OpenGL, Cg and CUDA-C. Some samples will soon support OpenCL and Direct Compute API'... |
實現了基於混合高斯模型的點集配准算法,該算法描述在論文: A Robust Algorithm for Point Set Registration Using Mixture of Gaussians, Bing Jian and Baba C. Vemuri. ,實現了C++/Matlab/Python接口... |
Recognition And Vision Library (RAVL) 是一個通用 C++ 庫,包含計算機視覺、模式識別等模塊。 |
LTI-Lib 是一個包含圖像處理和計算機視覺經常使用算法和數據結構的面向對象庫,提供 Windows 下的 VC 版本和 Linux 下的 gcc 版本,主要包含如下幾方面內容: 一、線性代數 二、聚類分析 三、圖像處理 四、可視化和繪圖工具 |
OpenCV優化 opencv-dsp-acceleration
優化了OpenCV庫在DSP上的速度。 |
C++計算機視覺庫 Integrating Vision Toolkit
Integrating Vision Toolkit (IVT) 是一個強大而迅速的C++計算機視覺庫,擁有易用的接口和麪向對象的架構,而且含有本身的一套跨平臺GUI組件,另外能夠選擇集成OpenCV |
The Epipolar Geometry Toolbox (EGT) is a toolbox designed for Matlab (by Mathworks Inc.). EGT provides a wide set of functions to approach computer vision and robotics problems with single and multiple views, and with different vision se... |
ImageNets 是對OpenCV 的擴展,提供對機器人視覺算法方面友好的支持,使用Nokia的QT編寫界面。 |
視頻處理、計算機視覺和計算機圖形學的快速開發庫。 |
Matlab 的計算機視覺包,包含用於觀察結果的 GUI 組件,貌似也中止開發了,拿來作學習用挺不錯的。 |
SIP 是 Scilab(一種免費的類Matlab編程環境)的圖像處理和計算機視覺庫。SIP 能夠讀寫 JPEG/PNG/BMP 格式的圖片。具有圖像濾波、分割、邊緣檢測、形態學處理和形狀分析等功能。 |
STAIR Vision Library (SVL) 最初是爲支持斯坦福智能機器人設計的,提供對計算機視覺、機器學習和機率統計模
做者:王先榮
原文;http://www.cnblogs.com/xrwang/archive/2010/01/26/TheComparisonOfImageProcessingLibraries.html
前言
近期須要作一些圖像處理方面的學習和研究,首要任務就是選擇一套合適的圖像處理類庫。目前較知名且功能完善的圖像處理類庫有OpenCv、EmguCv、AForge.net等等。本文將從許可協議、下載、安裝、文檔資料、易用性、性能等方面對這些類庫進行比較,而後給出選擇建議,固然也包括我本身的選擇。
許可協議
類庫 | 許可協議 | 許可協議網址 | 大體介紹 |
OpenCv | BSD | www.opensource.org/licenses/bsd-license.html | 在保留原來BSD協議聲明的前提下,隨便怎麼用都行 |
EmguCv | GPL v3 | http://www.gnu.org/licenses/gpl-3.0.txt | 你的產品必須也使用GPL協議,開源且免費 |
商業受權 | http://www.emgu.com/wiki/files/CommercialLicense.txt | 給錢以後能夠用於閉源的商業產品 | |
AForge.net | LGPL v3 | http://www.gnu.org/licenses/lgpl.html | 若是不修改類庫源代碼,引用該類庫的產品能夠閉源和(或)收費 |
以上三種類庫均可以用於開發商業產品,可是EmguCv須要付費;由於我只是用來學習和研究,因此這些許可協議對我無所謂。不過鑑於咱們身在中國,若是臉皮厚點,去他丫的許可協議。
下載
能夠很方便的下載到這些類庫,下載地址分別爲:
類庫 |
下載地址 |
OpenCv |
http://sourceforge.net/projects/opencvlibrary/files/ |
EmguCv |
http://www.emgu.com/wiki/index.php/Download_And_Installation |
AForge.net |
http://www.aforgenet.com/framework/downloads.html |
安裝
這些類庫的安裝都比較簡單,直接運行安裝程序,並點「下一步」便可完成。可是OpenCv在安裝完以後還須要一些額外的處理才能在VS2008裏面使用,在http://www.opencv.org.cn有一篇名爲《VC2008 Express下安裝OpenCv 2.0》的文章專門介紹瞭如何安裝OpenCv。
類庫 |
安裝難易度 |
備註 |
OpenCv |
比較容易 |
VC下使用須要從新編譯 |
EmguCv |
容易 |
|
AForge.net |
容易 |
|
相信看這篇文章的人都不會被安裝困擾。
文檔資料
類庫 |
整體評價 |
書籍 |
網站 |
文檔 |
示例 |
社區 |
備註 |
OpenCv |
中等 |
中英文 |
中英文 |
中英文 |
較多 |
中文論壇 |
有中文資料但不完整 |
EmguCv |
少 |
無 |
英文 |
英文 |
少 |
英文論壇 |
論壇人氣不好 |
AForge.net |
少 |
無 |
英文 |
英文 |
少 |
英文論壇 |
論壇人氣不好 |
OpenCv有一些中文資料,另外兩種的資料全是英文的;不過EmguCv創建在OpenCv的基礎上,大部分OpenCv的資料能夠用於EmguCv;而AForge.net是原生的.net類庫,對GDI+有不少擴展,一些MSDN的資料能夠借鑑。若是在查詞典的基礎上還看不懂英文文檔,基本上能夠放棄使用這些類庫了。
易用性
易用性這玩意,主觀意志和我的能力對它影響很大,下面是個人見解:
類庫 |
易用性 |
備註 |
OpenCv |
比較差 |
OpenCv大多數功能都以C風格函數形式提供,少部分功能以C++類提供。注意:2.0版將更多的功能封裝成類了。 |
EmguCv |
比較好 |
將OpenCv的絕大部分功能都包裝成了.net類、結構或者枚舉。不過文檔不全,仍是得對照OpenCv的文檔去看才行。 |
AForge.net |
好 |
純.net類庫,用起來很方便。 |
最近幾年一直用的是C# ,把C和C++忘記得差很少了,何況原本C/C++我就不太熟,因此對OpenCv的見解恐怕有偏見。
這段時間由於項目的須要,我一直在折騰計算機視覺,尤爲是雙目立體視覺,代碼、論文、工具箱等……佔用了我幾乎90%的工做時間,還在一點點地摸索,但進度實在不敢恭維,稍後我會把狀況做個總結。
今天的主要任務就是和你們分享一些鄙人收藏的認爲至關研究價值的網頁:
Oxford大牛:Andrew Zisserman,http://www.robots.ox.ac.uk/~vgg/hzbook/code/,此人主要研究多幅圖像的幾何學,該網站提供了部分工具,至關實用,還有例子
西澳大利亞大學的Peter Kovesi:http://www.csse.uwa.edu.au/~pk/research/matlabfns/,提供了一些基本的matlab工具,主要內容涉及Computer Vision, Image Processing
CMU:http://www.cs.cmu.edu/afs/cs/project/cil/ftp/html/vision.html,該網站是個人最愛,尤爲後面這個地址http://www.cs.cmu.edu/afs/cs/project/cil/ftp/html/v-groups.html,在這裏提供了世界各地機構、大學在Computer Vision所涉及各領域的研究狀況,包括Image Processing, Machine Vision,我後來也是經過它鏈接到了不少國外的網站
Cambridge:http://mi.eng.cam.ac.uk/milab.html,這是劍橋大學的機器智能實驗室,裏面有三個小組,Computer Vision & Robotics, Machine Intelligence, Speech,目前爲止,Computer Vision & Robotics的一些研究成果對我往後的幫助可能會比較大,因此在此說起
大量計算機視覺方面的原版電子書:http://homepages.inf.ed.ac.uk/rbf/CVonline/books.htm,我今天先下了本Zisserman的書,呵呵,國外的原版書,雖然都是比較老的,可是對於基礎的理解學習仍是頗有幫助的,至於目前的研究現狀只能經過論文或者一些研究小組的網站
stanford:http://ai.stanford.edu/~asaxena/reconstruction3d/,這個網站是Andrew N.G老師和一個印度阿三的博士一塊兒維護的,主要對於單張照片的三維重建,尤爲他有個網頁make3d.stanford.edu可讓你本身上傳你的照片,經過網站來重建三維模型,這個網站對於剛開始接觸Computer Vision的我來講,如獲至寶,但有個致命問題就是make3d已經沒法註冊,我也屢次給Andrew和印度阿三email,至今未回,鬱悶,要是有這個網站的賬號,那仍是至關爽的,不知道是否是因爲他們的郵箱把個人email當成垃圾郵件過濾,哎,但這個stanford網站的貢獻主要是代碼,有不少computer vision的基礎工具,貌似40M左右,全都是基於matlab的
caltech:http://www.vision.caltech.edu/bouguetj/calib_doc/,這是咱們Computer Vision老師課件上的鏈接,主要是用於攝像機標定的工具集,固然也有涉及對標定圖像三維重建的前期處理過程
JP Tarel:http://perso.lcpc.fr/tarel.jean-philippe/,這是他的我的主頁,也是目前爲止我發的email中,惟一一個給我回信的老外,由於我須要重建練習的正是他的圖片集,我讀過他的論文,但沒有涉及代碼的內容,再加上又是94年之前的論文,不少相關的引文,我都沒法下載,在個人再三追問下,Tarel教授只告訴我,你能夠按照個人那篇論文對足球進行重建,但是...你知道嗎,你有不少圖像處理的引文都下不了了,我只知道你經過那篇文章作了圖像的預處理,根本不知道具體過程,固然我有幸找到過一篇90左右的論文,講的是region-based segmentation,但是這文章裏全部引文又是找不到的....悲劇的人生
開源軟件網站:www.sourceforge.net
最後就是咱們工大的Computer Vision大牛:sychen.com,咱們Computer Vision課的老師,謙虛、低調,頗有學者風範
總結:目前爲止,個人我的感受就是國外學者的論文包括刊登的資料大部分都是對原理進行的說明,並非很在乎具體的代碼實現的講解,而我卻過度的關注於代碼的實現,忽視Computer Vision的原理,國外學者對與本身相關領域的研究現狀瞭解至關充分,對本身的工做進度更新也很勤快,不少好的網站我並無徹底列出來,在這裏只是提了主要的幾個,在這方面,咱們國內的研究氛圍有所不及,固然我選擇的一些網站可能更多的是我的小組的研究介紹,不像一些專門從事領域研究的機構,會有那麼多的權威資料,國外的網站有個很好的地方,就是有不少的免費資源,免費的matlab或者openCV工具集,免費的論文下載,課件下載等等,在這方面國內對於研究資源的共享,作得又有所差距,一樣,國外的研究工具不少樣,主要是matlab,一些發佈的demo都使用C++寫的,不過今天看到一個西班牙的研究機構(university of las palmas)用了個XMW的軟件平臺來實現圖片的三維重建,data用的是人臉,並且國外的不少源代碼基本上是在linux平臺下完成的,對於我來講又是不方便,哎,可能要考慮裝VM Ware了,否則雙系統太累.....
目前,Computer Vision是全世界範圍內自動化、計算機、數學領域的研究熱點,綜合性高,應用於醫療、軍事、民用等等領域,其中有突出成績的仍是一下幾所學校(我的看法):Cambridge(UK), Oxford(UK), CMU(US),Stanford(US),MIT(US),U.C.Berkeley(US),而UK的兩所老牌高校,他們的實際應用領域絲絕不遜於stanford和CMU....
世界就是這樣,當你不斷的接觸,不斷的擴展你所可以及的邊際就會發現本身愈來愈無知,還有不少不少不知道,發現還有不少本身都想不到但卻已經實現的東西.....
革命遠未成功,同志仍須努力,在CV的道路上前進.......
該文轉自http://www.cnblogs.com/yangwei86/archive/2009/07/10/1520215.html