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