Boooil's BLOG.

图像特征匹配开发手记Vol_3

2021/01/26 Share

算法的后续优化


  • Bitmap中加载函数 decodeStream()和decodeResource()的区别

    之前加载用的函数一直是decodeResource(),导致图片处理速度一直很慢,让我一度认为是SIFT算法本身的问题,但是其实不是。

    decodeStream()和decodeResource(),这两个api的最大区别在于最后解析出来的Options的inDensity和inTargetDensity(图像密度),即前一个decodeResource会以bitmap的密度做为绘制密度,而decodeStream直接以屏幕默认密度做为绘制密度。所以如果当图片密度远大于屏幕密度时会导致decodeResource解析出来的Bitmap很大,导致机器很卡。

    所以当我换成decodeStream()时匹配速度明显蹭的一下就上去了,解决了一个很要紧的问题。


  • RANSAC的小优化

    之前两张图片的评价指标是RANSAC提纯后的match中最小的distance,但是在测试中发现,最小值作为评价指标有时候并不准确,于是便改用平均值的办法。

    建筑物 distance
    图书馆2和图书馆1 0.04026
    男生楼1和图书馆1 0.0735
    体育馆1和图书馆1 0.0767
    一教和图书馆1 0.0735

    距离越小越好,从测试的几组样例来看,效果还是不错的。