機(jī)器視覺三維軟件開發(fā) – 怎么入門?- 你知道如何學(xué)習(xí)嗎(機(jī)器視覺三維建模)
今天在這里討論一下機(jī)器視覺三維軟件開發(fā)方面的介紹,由于今年團(tuán)隊(duì)需要做機(jī)器視覺三維軟件,其中涉及到三維顯示部分,在這里也預(yù)言過幾個(gè)方案,最終使用了Qt OSG方案來做。
在機(jī)器視覺三維軟件開源軟件中,不得不提 CloudCompare,MeshLab兩個(gè)開源庫,都是使用Qt opengl來實(shí)現(xiàn)三維交互,下文把CloudCompare簡稱CC。
CC
MeshLab
源碼直接git clone URL 下來。
CC
CC有強(qiáng)大的點(diǎn)云處理功能,封裝了OpenGL部分,CC定義了比較復(fù)雜的數(shù)據(jù)結(jié)構(gòu),自己看過一段時(shí)間源碼,說實(shí)話沒看懂,只是獨(dú)立了渲染顯示那部分, CC的顯示在交互不復(fù)雜的情況下,比較好獨(dú)立出來,直接顯示三維數(shù)據(jù)即可,如果是你的應(yīng)用軟件有較多的交互,比如選擇對象,對象操作,面片化等操作,你就很難獨(dú)立出來了,復(fù)雜的數(shù)據(jù)結(jié)構(gòu),你加著加著你寫的軟件就改成了CC一樣了,很難做成自己想要的風(fēng)格,所以放棄了這個(gè)想法。
MeshLab
MeshLab以前使用過,只是會簡單的操作,數(shù)學(xué)庫vcglib里面封裝了三角網(wǎng)格、四面體的控制處理以及封裝了OpenGL顯示部分,功能很強(qiáng)大, MeshLab是調(diào)用了vcglib的核心庫實(shí)現(xiàn),源碼也看過一段時(shí)間,學(xué)習(xí)了一部分精華,目前沒有完全看懂,未來的時(shí)間會繼續(xù)研究,三維顯示部分有用過vcglib里面一些。
CC跟MeshLab跟我的應(yīng)用有較大的差異,我的應(yīng)用是需要顯示三維對象,能夠?qū)θS對象進(jìn)行選擇、操作、面片化等,直接使用CC和MeshLab比較難剝離數(shù)據(jù)結(jié)構(gòu),就放棄了。
選擇Osg
為什么要選擇Osg,因?yàn)镺sg封裝了Opengl的所有功能,OsgEarth就是通過OSG開發(fā)的一個(gè)地圖應(yīng)用,做地圖開發(fā)的朋友應(yīng)該都很熟悉,有興趣的朋友可以看看。
我這邊使用OSG來進(jìn)行實(shí)現(xiàn)我的應(yīng)用,就相對來說比較簡單了,對象顯示、對象選擇、面片化等。
osgEarth
osgEarth
快速入門Opengl
想快速學(xué)習(xí)入門opengl的朋友可以去learnOpenGL學(xué)習(xí),做三維軟件開發(fā),需要對OpenGL有一定的理解以及矩陣的操作。
快速入門Opengl
FreeCAD
這也是一個(gè)三維CAD開源庫,我對他無可奈何,不是專業(yè)做軟件開發(fā),看不懂,沒有過多的研究,看了軟件執(zhí)行目錄,boost、pcl、vtk、MKL、tbb等大名鼎鼎的庫,如果有精力研究,這個(gè)開源軟件肯定會學(xué)到不少東西!足以見UG、SolidWorks、Pro-E等三維軟件的復(fù)雜度了,他們很多都是自己開發(fā)的,沒有用開源的庫,所以,別人的東西厲害啊
FreeCAD
Qt
要做三維軟件開發(fā),QT是必不可少的,OSG、MeshLab、CC、FreeCAD等都是QT編寫的,并且這些軟件或庫都是跨平臺,所以選擇QT做應(yīng)用軟件開發(fā),優(yōu)勢是非常明顯的。
愛你不容易
我們的軟件重在實(shí)現(xiàn),沒有能力和精力去過多的對軟件進(jìn)行修飾,最后選擇QT osg來實(shí)現(xiàn),好在目前功能都實(shí)現(xiàn)了,也還可以。
機(jī)器視覺三維算法、軟件是未來的趨勢,需要不斷學(xué)習(xí)加強(qiáng)!加油
寫的比較亂,大家隨意看看,歡迎拍磚,今年剛開始做三維視覺產(chǎn)品開發(fā)。