機器視覺三維軟件開發

今天在這裡討論一下機器視覺三維軟件

開發方面的介紹,由於今年團隊需要做機器視覺三維軟件,其中涉及到三維顯示部分,在這裡也預言過幾個方案,最終使用了Qt+Osg方案來做。

在機器視覺三維軟件開源軟件中,不得不提 CloudCompare,MeshLab兩個開源庫,都是使用Qt+Opengl來實現三維交互,下文把CloudCompare簡稱CC。

機器視覺三維軟件開發 | 怎麼入門?| 你知道如何學習嗎

CC

機器視覺三維軟件開發 | 怎麼入門?| 你知道如何學習嗎

MeshLab

源碼直接git clone URL 下來。

CC

CC有強大的點雲處理功能,封裝了OpenGL部分,CC定義了比較複雜的數據結構,自己看過一段時間源碼,說實話沒看懂,只是獨立了渲染顯示那部分, CC的顯示在交互不復雜的情況下,比較好獨立出來,直接顯示三維數據即可,如果是你的應用軟件有較多的交互,比如選擇對象,對象操作,面片化等操作,你就很難獨立出來了,複雜的數據結構,你加著加著你寫的軟件就改成了CC一樣了,很難做成自己想要的風格,所以放棄了這個想法。

MeshLab

MeshLab以前使用過,只是會簡單的操作,數學庫vcglib裡面封裝了三角網格、四面體的控制處理以及封裝了OpenGL顯示部分,功能很強大, MeshLab是調用了vcglib的核心庫實現,源碼也看過一段時間,學習了一部分精華,目前沒有完全看懂,未來的時間會繼續研究,三維顯示部分有用過vcglib裡面一些。

CC跟MeshLab跟我的應用有較大的差異,我的應用是需要顯示三維對象,能夠對三維對象進行選擇、操作、面片化等,直接使用CC和MeshLab比較難剝離數據結構,就放棄了。

選擇Osg

為什麼要選擇Osg,因為Osg封裝了Opengl的所有功能,OsgEarth就是通過OSG開發的一個地圖應用,做地圖開發的朋友應該都很熟悉,有興趣的朋友可以看看。

我這邊使用OSG來進行實現我的應用,就相對來說比較簡單了,對象顯示、對象選擇、面片化等。

機器視覺三維軟件開發 | 怎麼入門?| 你知道如何學習嗎

osgEarth

機器視覺三維軟件開發 | 怎麼入門?| 你知道如何學習嗎

osgEarth

快速入門Opengl

想快速學習入門opengl的朋友可以去learnOpenGL學習,做三維軟件開發,需要對OpenGL有一定的理解以及矩陣的操作。

機器視覺三維軟件開發 | 怎麼入門?| 你知道如何學習嗎

快速入門Opengl

FreeCAD

這也是一個三維CAD開源庫,我對他無可奈何,不是專業做軟件開發,看不懂,沒有過多的研究,看了軟件執行目錄,boost、pcl、vtk、MKL、tbb等大名鼎鼎的庫,如果有精力研究,這個開源軟件肯定會學到不少東西!足以見UG、SolidWorks、Pro-E等三維軟件的複雜度了,他們很多都是自己開發的,沒有用開源的庫,所以,別人的東西厲害啊

機器視覺三維軟件開發 | 怎麼入門?| 你知道如何學習嗎

FreeCAD

Qt

要做三維軟件開發,QT是必不可少的,OSG、MeshLab、CC、FreeCAD等都是QT編寫的,並且這些軟件或庫都是跨平臺,所以選擇QT做應用軟件開發,優勢是非常明顯的。

愛你不容易

我們的軟件重在實現,沒有能力和精力去過多的對軟件進行修飾,最後選擇QT+osg來實現,好在目前功能都實現了,也還可以。

機器視覺三維算法、軟件是未來的趨勢,需要不斷學習加強!加油

寫的比較亂,大家隨意看看,歡迎拍磚,今年剛開始做三維視覺產品開發。


分享到:


相關文章: