熱力圖疊加優化


問題:在之前的文章中,我實現了HeatMap熱力圖的效果,但是實際使用過程中,尤其是多次疊加后,效果較為極端化(如下圖),出現了大量數據接近峰值的狀況,在渲染后,看不出過渡層級變化,於是我針對這個問題,做了相關優化。

原效果:

 

原疊加算法:

 

  value=dst*src/255

 

這個算法會使得值逐漸接近於0,在灰度映射前,這個rgb值就是黑色,而且取值范圍本身就只有0-255的范圍,經過分析,我們決定打破這個界限。

 

 

優化算法:

  1、用int數組來存儲value,這樣可以突破上限。

  2、針對整個數組進行歸一化。

  3、由歸一化的結果重新映射灰度值。

  4、由灰度值映射彩色值。

 

 

優化后的效果:

 

 

 

具體過程不再贅述了,說說遇到的:

  在非托管資源轉為托管資源的時候,我當時直接用int[],出現了大量的-1值,而且會出現句柄超出索引的情況,拋異常“嘗試讀取或寫入受保護的內存”,我思考了很久才發現,這是4個byte轉為一個int類型的結果,數據在物理合並之后會進行取反加一,數據必然出錯。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM