【图片去霾算法实践】NDK下二维数组的传递
最近看到了一篇关于图片“去霾算法”的文章,一下子就有了兴趣,所以想着能不能实现。由于数学能力捉急,无法理解文章的思想和相关论文。于是在Github上找到了相关的Java代码,算法的效果十分明显: 去霾前的图片 去霾算法处理后的图片 不知道是不是算法太复杂,还是Java效率相对较低的缘故,一个3M的JPG图片处理下来需要近20秒的时间。 效果明显的算法让我萌生了开发一款去霾相机的想法,为了获得更快的处理速度,在研究Java去霾算法代码后,我决定将其写成C++代码,然后通过NDK(Android原生开发)移植到Android平台。 项目的基本思想是在Android/Java下获得图片的Bitmap将其像素点转成二维的int二维数组,然后将int二维数组传入JNI层,交给NDK层C++代码处理,NDK层处理完毕后返回去霾后的int二维数组,由Java层转成Bitmap重新显示或保存。 经过一天的奋斗,我终于实现了用C++代码实现“去霾”算法并顺利移植到Android原生开发中。效果已实现,目前还有很多BUG,图片大小稍大时算法耗费的时间和内存过大. Android 图片去霾 本文预计会写一个...