算法的后续优化
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 距离越小越好,从测试的几组样例来看,效果还是不错的。