热力图叠加优化


问题:在之前的文章中,我实现了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