本文来自http://blog.csdn.net/hellogv/ ,引用必须注明出处!
今晚是平安夜,跟众多四眼技术宅一样,这个时候还是跟电脑过节......
上次讲解了在Android上通过NDK把彩图转换为灰度图,现在可以把WindowsMobile版的ASIFT 例子移植到Android上了.......在这里还是要再次感谢Jean-Michel Morel和Guoshen Yu两位大牛的无私奉献,尊重知识尊重开源精神。
先来看看本文程序运行截图:
左图是设定识别率为最低的结果,右图是设定识别率为较低的结果。
本文的代码可以到这里下载:http://www.pudn.com/downloads314/sourcecode/comm/android/detail1391871.html
这里ASIFT的NDK代码(C++)跟WM篇的DLL代码大体一样,不过也存在一些不同:
1、JNI不支持引用传递,所以有些值必须通过函数返回,例如:
2、ASIFT接受的是8bit的灰度图,使用前要转换为8bit的灰度图:
使用后要把8bit灰度图转为RGB565:
主类testASIFT.java的逻辑代码如下: