HardBirch

Android上使用ASIFT实现对视角变化更鲁棒的特征匹配

时间:10-12-24 栏目:安卓入门与提高 作者:张飞不张,文采横飞 评论:32 点击: 11,337 次

     上次讲解了在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的逻辑代码如下:









LibASIFT.initZoomSize(320, 480);//缩放目标的大小
int []size=LibASIFT.GetZoomSize();//判断是否设置成功
Log.e(String.valueOf(size[0]),String.valueOf(size[1]));

Bitmap img1=((BitmapDrawable) getResources().getDrawable(R.drawable.adam1)).getBitmap();
int w1=img1.getWidth(),h1=img1.getHeight();
int[] pix1 = new int[w1 * h1];
img1.getPixels(pix1, 0, w1, 0, 0, w1, h1);
//提取第一张图片的特征点
LibASIFT.initImage1(pix1, w1, h1, 2);
Bitmap img2=((BitmapDrawable) getResources().getDrawable(R.drawable.adam2)).getBitmap();
int w2=img2.getWidth(),h2=img2.getHeight();
int[] pix2 = new int[w2 * h2];
img2.getPixels(pix2, 0, w2, 0, 0, w2, h2);
int[] imgPixels=LibASIFT.Match2ImageForImg(pix2, w2, h2, 2);//两图匹配
int[] imgSize=LibASIFT.GetMatchedImageSize();//匹配结果图的大小
Bitmap imgResult=Bitmap.createBitmap(imgSize[0], imgSize[1], Config.RGB_565);
imgResult.setPixels(imgPixels, 0, imgResult.getWidth(), 0, 0, imgResult.getWidth(), imgResult.getHeight());
imgView.setImageBitmap(imgResult);//显示结果

}
}

Android上使用ASIFT实现对视角变化更鲁棒的特征匹配:目前有32 条留言

  1. 32楼
    QuentinCh:

    [e03]

    2010-12-24 19:33 [回复]
  2. 31楼
    liuwenhan999:

    [e01]虫哥厉害,群成员前来顶贴!

    2010-12-24 19:39 [回复]
  3. 顶gv[e01]

    2010-12-24 20:05 [回复]
  4. 29楼
    cankeyyin:

    [e01]

    2010-12-24 20:08 [回复]
  5. 28楼
    otbzi:

    给你点面子,我还是来顶一下吧~

    2010-12-24 22:24 [回复]
  6. 27楼
    hellogv:

    回复 otbzi:
    谢爷

    2010-12-24 22:25 [回复]
  7. 26楼
    jment:

    [e01]我也来顶一个

    2010-12-24 23:03 [回复]
  8. 顶一个···呵呵 有群号码?我也加入·····学习一下···

    2010-12-25 08:42 [回复]
  9. 24楼
    xuyan87101:

    [e01][e03]

    2010-12-25 22:31 [回复]
  10. 23楼
    kf156:

    [e01]

    2010-12-25 22:31 [回复]
  11. 先[e01]在[e02]

    2010-12-25 23:01 [回复]
  12. 又出新作品了,哈哈,不错。。。

    2010-12-25 23:41 [回复]
  13. 20楼
    Aniao:

    SIFT,当时还搞了这个快速匹配的论文,哈哈

    2010-12-28 17:54 [回复]
  14. 19楼
    safnina:

    [e01]

    2010-12-28 23:22 [回复]
  15. 18楼
    Jeanth:

    [e01]

    2010-12-29 10:56 [回复]
  16. [e01]

    2010-12-31 13:33 [回复]
  17. 16楼
    koko0123:

    [e01][e01][e01]

    2011-02-22 13:42 [回复]
  18. 15楼
    ghd2000:

    楼主 牛人![e03]

    2011-04-28 14:06 [回复]
  19. 14楼
    cricket1981:

    能否发个源码到我的邮箱:casel.chen@gmail.com 谢谢!

    2011-05-22 19:57 [回复]
  20. 13楼
    hellogv:

    回复 cricket1981:
    文中有源代码的链接

    2011-05-22 20:12 [回复]
  21. 12楼
    cricket1981:

    回复 hellogv:偶没有pudn的帐号,能否发个下载URL或者直接打包发到我的邮箱casel.chen@gmail.com, 多谢了!

    2011-05-23 13:26 [回复]
  22. [e01]

    2011-06-01 22:30 [回复]
  23. 10楼
    BenW1988:

    本科时做sift surf匹配就用过opencv呵呵

    2011-08-31 20:21 [回复]
  24. 9楼
    dsm3132787:

    正好需要!!!太感谢了!求群号!!!!!

    2011-12-28 17:31 [回复]
  25. 8楼
    hellogv:

    [reply]dsm3132787[/reply]
    啥群号?

    2011-12-30 15:01 [回复]
  26. 7楼
    dsm3132787:

    [reply]hellogv[/reply]
    前面有人回帖说群成员来顶贴,我以为您有群所以向您要个群号希望能和你交流一下!!
    这个匹配我这边跑起了需要 1-2分钟,而且图片尺寸大小都这么久。。
    主要耗时都在特征点选择和匹配上面!请问如何解决。。。一直看你帖子。。受益匪浅啊!

    2011-12-31 10:13 [回复]
  27. 6楼
    hellogv:

    [reply]dsm3132787[/reply]
    哦,那个是手机群,不是识别模式群,在手机上跑模式识别肯定慢的,现在主流都是手机提取特征码,在云端做识别

    2011-12-31 14:11 [回复]
  28. 5楼
    dsm3132787:

    [reply]hellogv[/reply]
    老大,你可以做一个图片匹配后融合得demo吗?这一块好像资料很少!

    2012-01-08 11:05 [回复]
  29. 4楼
    hellogv:

    [reply]dsm3132787[/reply]
    融合的意思是,你要做全视角?

    2012-01-11 11:40 [回复]
  30. 地板
    wuyuboo:

    这两天在搞毕设,手机上特征点的快速匹配。。。你可以当我导师了啊!!!

    2012-05-26 12:51 [回复]
  31. 板凳
    sdasdasw:

    可以+qq吗?最近在搞手机端的SIFT特征提取,感觉效果不理想,求指导,我的QQ824743203,谢谢了

    2012-07-12 16:04 [回复]
  32. 你好,我下载下来的ASIFT代码不能直接运行,不知道你是如何跑起来的,能不能加你为好友跟你请教一下,614688993

    2012-07-26 17:05 [回复]

发表评论


QQ群互动

Linux系统与内核学习群:194051772

WP建站技术学习交流群:194062106

魔豆之路QR

魔豆的Linux内核之路

魔豆的Linux内核之路

优秀工程师当看优秀书籍

优秀程序员,要看优秀书!

赞助商广告

友荐云推荐