問題:在以前的文章中,我實現了HeatMap熱力圖的效果,可是實際使用過程當中,尤爲是屢次疊加後,效果較爲極端化(如下圖),出現了大量數據接近峯值的情況,在渲染後,看不出過渡層級變化,因而我針對這個問題,作了相關優化。
html
原效果:算法
原疊加算法:數組
value=dst*src/255優化
這個算法會使得值逐漸接近於0,在灰度映射前,這個rgb值就是黑色,並且取值範圍自己就只有0-255的範圍,通過分析,咱們決定打破這個界限。spa
優化算法:htm
一、用int數組來存儲value,這樣能夠突破上限。blog
二、針對整個數組進行歸一化。索引
三、由歸一化的結果從新映射灰度值。內存
四、由灰度值映射彩色值。
資源
優化後的效果:
具體過程再也不贅述了,說說遇到的坑:
在非託管資源轉爲託管資源的時候,我當時直接用int[],出現了大量的-1值,並且會出現句柄超出索引的狀況,拋異常「嘗試讀取或寫入受保護的內存」,我思考了好久才發現,這是4個byte轉爲一個int類型的結果,數據在物理合並以後會進行取反加一,數據必然出錯。