1. 程式人生 > >【視覺化-2】將影象當作DSM進行三維顯示

【視覺化-2】將影象當作DSM進行三維顯示

上一篇文章中,已經跳出顏色或者亮度的侷限,將影象視作一般化的柵格資料,並提供了四種利用顏色和亮度來直觀表示柵格間取值差異的視覺化方法。

柵格資料的四種視覺化方式

這一回,我們又要從一般化走向特殊化。柵格資料,究其本質其實是為了在相互垂直的兩個方向按照一定的取樣間隔記錄二維空間中各處的屬性值(可以是亮度、光譜值、溫度、溼度、降水量、風速等),普通數字影象的二維空間是三維空間投影出來的。這個取樣間隔就是解析度,更準確的叫法應該是空間解析度。地表的起伏也可以用柵格資料進行記錄,選擇一個參考平面,記錄各個取樣點處離參考平面的距離;在地理領域這種資料叫做DEM或者DSM。可見,一般的柵格資料與DSM、DEM的區別,僅在於取樣間隔未知或者單位不是米。如果人為給定一個取樣間隔,將像元值視作離開參考平面的距離,那麼一般柵格資料可以視作DSM、DEM。因此一般柵格資料也可以當作地形資料進行三維顯示。

對柵格資料進行三維顯示與使用顏色和亮度進行二維顯示相比,對柵格上數值的大小關係和變換趨勢能夠提供更加直觀和更加準確的感受。在進行三維顯示時數值的大小實際上是用長短表示的,能夠確保數值與觀感的線性關係;而顏色和亮度的感受與相應電磁波的強度不具有線性關係。

下圖為一幅DSM資料分別按照灰度顯示和三維顯示的結果。

DSM進行灰度顯示

DSM三維顯示

三維顯示工具的啟動

使用tGis Desktop進行柵格資料三維顯示的操作步驟非常方便,點選圖中紅框內的三維顯示工具,在顯示視窗中繪製需要顯示的區域,之後將會自動彈出三維顯示視窗。在三維顯示視窗中會將繪製的多邊形顯示出來,還會顯示一個參考平面,用於輔助觀察柵格上數值的大小。

三維顯示工具,與三維顯示範圍

拉伸柵格數值

通過對柵格數值的拉伸可以實現細節增強或者細節抑制。使用較大的拉伸係數時,放大了局部的差異,可以更加清晰地觀察細節。使用較小地拉伸係數時,縮小了區域性的差異,可以更準確地觀察整體數值分佈。

拉伸柵格數值

移動參考平面

通過移動參考平面,可以更加準確地觀察不同位置數值之間地大小關係。

平移參考平面

頂點著色

當前可以使用不同漸變色進行頂點著色,或者直接顯示為三角網。(下圖純綠色的實際上時三角網,因為太密集了,看不出來)

使用不同漸變色進行頂點著色,或者直接顯示為三角網。純綠色的實際上是三角網

視覺化例子

梯度影象

梯度的三維顯示

紅色通道的三維顯示

亮度的三維顯示

分割結果區域性

分割結果三維顯示(這是沒意義的)

通過多視幾何原理從無人機俯拍照片生成的DSM(與深度圖類似)

將上面的DSM進行三維顯示

 

實現這些視覺化功能的軟體完全開源的,感興趣的可以自行下載原始碼編譯。柵格資料IO用的GDAL,軟體介面一開始用的Qt最近改成了wxWidgets,還依賴的一個記憶體池(elr_memory_pool)。

https://github.com/tgis-top/tGis

&n