opencv和opengl哪個更有前途?
OpenGL
OpenGL的發(fā)展一直處于一種較為遲緩的態(tài)勢,每次版本的提高新增的技術(shù)很少,大多只是對其中部分做出修改和完善。1992年7月,SGI公司發(fā)布了OpenGL的1.0版本,隨后又與微軟公司共同開發(fā)了Windows NT版本的OpenGL,從而使一些原來必須在高檔圖形工作站上運行的大型3D圖形處理軟件也可以在微機上運用。1995年OpenGL的1.1版本面市,該版本比1.0的性能有許多提高,并加入了一些新的功能。其中包括改進打印機支持,在增強元文件中包含OpenGL的調(diào)用,頂點數(shù)組的新特性,提高頂點位置、法線、顏色、色彩指數(shù)、紋理坐標、多邊形邊緣標識的傳輸速度,引入了新的紋理特性等等。OpenGL 1.5又新增了“OpenGL Shading Language”,該語言是“OpenGL 2.0”的底核,用于著色對象、頂點著色以及片斷著色技術(shù)的擴展功能。
OpenGL 2.0標準的主要制訂者并非原來的SGI,而是逐漸在ARB中占據(jù)主動地位的3DLabs。2.0版本首先要做的是與舊版本之間的完整兼容性,同時在頂點與像素及內(nèi)存管理上與DirectX共同合作以維持均勢。OpenGL 2.0將由OpenGL 1.3的現(xiàn)有功能加上與之完全兼容的新功能所組成(如圖一)。借此可以對在ARB停滯不前時代各家推出的各種糾纏不清的擴展指令集做一次徹底的精簡。此外,硬件可編程能力的實現(xiàn)也提供了一個更好的方法以整合現(xiàn)有的擴展指令。
目前,隨著DirectX的不斷發(fā)展和完善,OpenGL的優(yōu)勢逐漸喪失,至今雖然已有3Dlabs提倡開發(fā)的2.0版本面世,在其中加入了很多類似于DirectX中可編程單元的設計,但廠商的用戶的認知程度并不高,未來的OpenGL發(fā)展前景迷茫。
為什么存在OpenCV
計算機視覺市場巨大而且持續(xù)增長,且這方面沒有標準API,目前的計算機視覺軟件大概有以下三種:
1) 研究代碼(慢,不穩(wěn)定,獨立并與其他庫不兼容)
2) 耗費很高的商業(yè)化工具(比如Halcon, MATLAB+Simulink)
3) 依賴硬件的一些特別的解決方案(比如視頻監(jiān)控,制造控制系統(tǒng),醫(yī)療設備)
這是目前的現(xiàn)狀。而標準的API將簡化計算機視覺程序和解決方案的開發(fā)。OpenCV致力于成為這樣的標準API。
2、 項目歷史
1999年1月,CVL項目啟動。主要目標是人機界面,能被UI調(diào)用的實時計算機視覺庫,為Intel處理器做了特定優(yōu)化。
2000年6月,第一個開源版本OpenCV alpha 3發(fā)布。
2000年12月,針對linux平臺的OpenCV beta 1發(fā)布。
期間,繼續(xù)各種研究。。。
2006年,支持Mac OS的OpenCV 1.0發(fā)布。
2009年9月,OpenCV1.2(beta2.0)發(fā)布。
2009年10月1日,Version 2.0發(fā)布。
OpenCV 擁有包括 500 多個C函數(shù)的跨平臺的中、高層 API。它不依賴于其它的外部庫——盡管也可以使用某些外部庫。
OpenCV 使用類BSDlisence,所以對非商業(yè)應用和商業(yè)應用都是免費(FREE)的。(細節(jié)參考 license)。
OpenCV 為Intel Integrated Performance Primitives (IPP) 提供了透明接口。 這意味著如果有為特定處理器優(yōu)化的的IPP 庫, OpenCV 將在運行時自動加載這些庫。
OpenCV提供的視覺處理算法非常豐富,并且他不分以C語言編寫,加上其開源的特性,處理得當,不需要添加新的外部支持也可以完整的編譯鏈接生成執(zhí)行程序,所以很多人用它來做算法的移植,OpenCV的代碼經(jīng)過適當改寫可以正常的運行在DSP系統(tǒng)和單片機系統(tǒng)中,目前這種移植在大學中經(jīng)常作為相關(guān)專業(yè)本科生畢業(yè)設計或者研究生課題的選題。
OpenCV學術(shù)氣息太強,功能雖多,但針對特定功能的優(yōu)化不足,適合創(chuàng)建原型,不適合開發(fā)產(chǎn)品,所以也沒什么前途——當然總比死掉的OpenGL有前途。
電子發(fā)燒友App














評論