人機交互,從圖層魔術棒到圖像魔術棒的啓示(兩個緩存)

在公司,圖層魔術棒很快,因爲只是處理設備座標以內的,(比如800*800個座標),而在圖像魔術棒中,是處理了整景影像數據,甚至是比如(30000*300000),因此,對於批處理來說,沒問題,反正後臺處理,但是人機交互相當於實時處理,一等幾分鐘下去了,肯定不行。

 

因此,借鑑圖層魔術棒,只處理屏幕上看得到的柵格行列.

1,如果影像佔不滿,(比如300*300個設備座標),則重採樣(300/30000=0.01),相當於面積是0.01*0.01=0.0001,快一萬倍。所以自然速度就上去了,當然,要把重採樣後的影像記錄在一個重採樣文件夾“”0.01_0.01“裏,表明重採樣倍數,存儲相應的影像,比如(imagetest1_0_0_30000_30000)),標明是影像名爲imagetest1的影像處理了(mincol = 0,,minRow = 0, xSize = 30000,ySize=30000)這個範圍的影像數據。

2,如果屏幕只有影像的一部分,則有兩種情況

(1)影像鋪滿了屏幕,這時候直接截取柵格行列範圍即可。比如(<3000,5000>到<5000,7000>),這時候還是要看看行列號的範圍xsize=2000,ySize = 2000,所以,先採樣,800/2000=0.4,因此放入重採樣文件夾0.4_0.4文件夾裏,再存儲重採樣後的影像(imagetest1_3000_5000_2000_2000)。

(2)影像沒有鋪滿影像,這時候要判斷影像的邊緣在設備座標的多少,有兩種情況

a,也就是最簡單的,就是截取的柵格行列比設備座標少,那時候就不用重採樣了。直接截取該範圍的柵格座標處理即可。比如(<0,100,>到<100,200>》)100個行列佔200個設備座標,則把該影像放入重採樣文件夾1_1裏面,說明沒采樣,直接截取範圍內的影像,命名爲imagetest1_0_100_100_100

b,截取的柵格比設備座標多。比如(佔200*200個設備座標,截取範圍是<0,10000>到<10000,20000>))),則重採樣200/10000=0.02,放入文件夾0.02_0.02中,並記錄採樣後並截取的座標是imagetest1_0_10000_10000_10000,

總結上述,即,判斷哪些設備座標截取了影像的哪些柵格,哪個範圍大, 哪個範圍小,

如果設備座標範圍大於等於柵格範圍,則不重採樣,直接截取即可。

如果設備座標範圍小於柵格範圍,則需要重採樣後截取相應的範圍。

 

 

同理,在三維中,屏幕座標中,地理範圍是由視點的遠近決定的,也就是level of detail,根據視口分級。也就是重採樣。如果再精細些,就進行重採樣後的物體進行裁切,只顯示裁切範圍內的。除非視口內<=1個柵格座標,那就不用分級,也就是重採樣了

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章