HardBirch

Android-opencv之CVCamera

时间:11-01-21 栏目:安卓入门与提高 作者:张飞不张,文采横飞 评论:78 点击: 23,436 次

       android-opencv是opencv在android手机上的移植版,而CVCamera是这个移植版的一个sample。本文主要介绍android-opencv的安装和使用。

  • android-opencv的安装

      opencv基于C++,因此android-opencv也必须依赖NDK(android-ndk-r4-crystax)来编译。PS:关于android-ndk-r4-crystax和CYGWIN的安装和使用,本文不再唠叨,详见http://blog.csdn.net/hellogv/archive/2010/12/23/6094127.aspx

安装步骤具体如下:

 

 

  1. 确保在系统Path中包含了D:/cygwin/bin;D:/cygwin/android-ndk-r4-crystax;(存放目录自己决定,Path中必须包含cygwin的bin和android-ndk-r4-crystax的路径)
  2. 再拷贝android-ndk-r4-crystax到/cygwin/home/GV/android-ndk-r4-crystax,编译android-opencv时需要,编译成功之后可以删除这份拷贝。
  3. 运行cygwin,来到opencv目录下,输入sh build.sh进行编译,编译成功的话会在/opencv/android/libs/生成armeabi和armeabi-v7a两个文件夹,里面都包含libandroid-opencv.so。

 

PS:编译的时候提示缺少文件的话,从网上搜索下载。

 

  • android-opencv的使用
  1. 打开eclipse ,Import Opencv这个工程,工程位于/opencv/android/ 。PS:如果也提示缺少文件,也需要从网上搜索下载
  2. Opencv这个工程编译通过之后,就可以Export它,选择JAVA的JAR file,导出时去掉[obj]和[libs]这两个文件夹,AndroidManifest.xml和default.properties,输出文件名为Opencv.jar,Export设置如下图:
  3. 下载swigwin-1.3.39,在系统path中加入D:/cygwin/swigwin-1.3.39(存放位置自定),重启
  4. 打开cygwin,去到/samples/CVCamera/,输入sh build.sh,开始编译CVCamera的JNI,成功编译之后会生成libcvcamera.so
  5. 把 /opencv/android/libs 复制到/samples/CVCamera/,因为CVCamera同时需要libandroid-opencv.so和libcvcamera.so
  6. Import CVCamera这个工程,加入Opencv.jar 这个Libraries
  7. 编译CVCamera这个工程,生成CVCamera.apk(有6.06MB大小)

CVCamera程序运行截图如下:

 

 

声明: 本文由( 张飞不张,文采横飞 )原创编译,转载请保留链接: Android-opencv之CVCamera

Android-opencv之CVCamera:目前有78 条留言

  1. 0楼
    kf156:

    [e01]

    2011-01-21 16:46 [回复]
  2. [e01]

    2011-01-21 16:48 [回复]
  3. 0楼
    hmc1985:

    [e01]

    2011-01-21 16:49 [回复]
  4. 0楼
    QuentinCh:

    [e01]

    2011-01-21 17:11 [回复]
  5. 0楼
    goodlinux:

    [e01]被逼顶的![e03]

    2011-01-24 10:20 [回复]
  6. 0楼
    hellogv:

    回复 goodlinux:
    。。。。。。。。。

    2011-01-24 12:01 [回复]
  7. 0楼
    wise_man:

    [e01]

    2011-01-24 16:10 [回复]
  8. [e03]

    2011-01-25 18:37 [回复]
  9. [e01]

    2011-01-27 01:01 [回复]
  10. 0楼
    seai:

    2011-01-30 09:53 [回复]
  11. 0楼
    wuds629:

    請問如果我已經完成export opencv.jar
    如果要從eclipse開新的android project
    要怎麼套用opencv才可以在code裡使用
    我該如何操作呢

    2011-02-21 18:44 [回复]
  12. 你好,国威老师。我在编译的时候遇到了一个问题,直接执行第四步不能生成so文件,不知道出了Android.mk,ImgToGray.cpp,LibFuns.java这三个文件之外还需要什么。因为每次都会出现
    make: *** No rule to make target `/AreaCalculate.c', needed by `/cygdrive/e/Jworkplace/workspace/AreaCalculate/obj/local/armeabi/objs/AreaCalculate/AreaCalculate.o'. Stop.之类的错误提示。我找了很久还是没有找到解决办法,还望赐教,谢谢!!!

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/hellogv/archive/2010/12/23/6094127.aspx

    2011-02-23 23:42 [回复]
  13. 已近做到最后一步了,在编译时出现了
    [2011-02-28 22:46:47 - FooBar]: Dx1 error; aborting
    [2011-02-28 22:46:47 - FooBar] Conversion to Dalvik format failed with error 1

    2011-02-28 23:10 [回复]
  14. 不知道有没有遇到此类问题的,大家探讨下。

    2011-02-28 23:11 [回复]
  15. 2,不要把opencv/android下的libs拷贝到CVCamera下了,这样不会遇到Conversion to Dalvik format failed with error 1的错误。当然,不一定会遇到我的情况,遇到就该,没遇到就按照原来的做。
    在此,感谢国威老师的真情奉献。

    2011-03-03 21:33 [回复]
  16. 解决办法找到了,有两点总结如下,如果遇到和我一样问题的。
    1,需要安装个svn插件在eclipse里面,这样在导入opencv/android工程时不会报错。

    2011-03-03 21:33 [回复]
  17. 0楼
    migan2008:

    你好,国威老师。我现在正在分析代码,遇到不懂得可以指教一下吗?

    2011-03-08 17:43 [回复]
  18. 0楼
    shiboss:

    1.打开eclipse ,Import Opencv这个工程,工程位于/opencv/android/
    但是当我导入exist project时提示说这个不是一个工程,请问这是为什么?

    2011-03-09 22:05 [回复]
  19. 0楼
    YangJY_IS:

    回复 shiboss:同问为什么,求大虾帮忙

    2011-04-09 01:14 [回复]
  20. 0楼
    hellogv:

    回复 YangJY_IS:
    用新建工程来导入现有工程

    2011-04-09 08:47 [回复]
  21. 0楼
    YangJY_IS:

    回复 hellogv:是不是新建一个普通的java工程,让后把所有东西拷贝进去,然后打包成jar

    2011-04-09 12:42 [回复]
  22. 0楼
    YangJY_IS:

    回复 YangJY_IS:CVCamera这个工程呢???

    2011-04-09 12:43 [回复]
  23. 0楼
    viviwen123:

    CVCamera在模拟器上运行闪一下就退出了。

    2011-04-30 10:44 [回复]
  24. 0楼
    viviwen123:

    回复 vision_kong:请问:您的CVCamera能在模拟器上运行吗?

    2011-04-30 10:46 [回复]
  25. 0楼
    hellogv:

    回复 viviwen123:
    唉,做手机开发都是要用真机的,模拟器用来看看界面效果而已

    2011-04-30 11:34 [回复]
  26. 0楼
    viviwen123:

    回复 hellogv:谢谢,最近也在考虑买机的事。

    2011-04-30 15:31 [回复]
  27. 回复 viviwen123:确实不能

    2011-05-07 19:20 [回复]
  28. 0楼
    zzj928:

    我生成的apk也是6.06MB, 直接烧到HTC G6 Android2.2上, 运行一下就退出了, 请问老师知道是为什么吗? 弄了好久了..

    2011-05-08 21:27 [回复]
  29. [e01]您好,我在编译build.sh最后的时候说
    make ***[jni/gen/android_cv-wrap.cpp] Error 127
    怎么办呢

    2011-05-19 17:11 [回复]
  30. 0楼
    sunnywish:

    回复 boboyang518:我也出现这个问题了 你解决了吗

    2011-05-19 18:03 [回复]
  31. 0楼
    hellogv:

    回复 sunnywish:
    如果缺少文件的话,试试上网搜

    2011-05-19 18:07 [回复]
  32. 0楼
    sunnywish:

    我想问一下,Opencv中的HighGUI部分可以直接移植到android上吗?也就是读取视频,抓取帧部分

    2011-05-20 10:26 [回复]
  33. 0楼
    sunnywish:

    回复 hellogv:下载完缺少的文件后,又出现了问题,最后不能生成.so

    2011-05-20 11:09 [回复]
  34. 0楼
    hellogv:

    回复 sunnywish:
    很难移植的,只能根据需要自己逐步实现

    2011-05-20 13:28 [回复]
  35. 0楼
    sunnywish:

    回复 hellogv:噢,谢谢,程序里大部分是HighGUI的函数,[e06]

    2011-05-20 14:24 [回复]
  36. 0楼
    sunnywish:

    回复 hellogv:还有就是opencv2.2需要通过cmake安装吗?

    2011-05-20 15:28 [回复]
  37. 0楼
    sunnywish:

    按照http://opencv.willowgarage.com/wiki/Android2.2这个网址进行配置,在执行make时出现
    make:** No targets specified and no makefile found. Stop.怎么弄呢

    2011-05-20 22:06 [回复]
  38. 能否发个源码到我的邮箱:casel.chen@gmail.com 谢谢!

    2011-05-22 19:55 [回复]
  39. 开源的东西就是难搞,东西虽好可是文档一个少而烂,难怪没人会用。即使会用的人也不发个全点的按步骤安装使用的指南,项目文件直接放在网上让大家下载好了,还要大家去网上搜,搜也罢了,也不告知文件名和版本号,唉! 国人需要提高文档水平和交流水平

    2011-05-23 17:04 [回复]
  40. 0楼
    hellogv:

    回复 cricket1981:
    要不,你的工作我来帮你做,工资你自己拿,好不好呢?

    2011-05-23 17:08 [回复]
  41. 0楼
    sunnywish:

    home/ethan/workspace/googlecode_android_opencv/opencv/libs.mk. stop
    这是怎么回事,请不吝赐教

    2011-05-23 21:28 [回复]
  42. 0楼
    ye7813629:

    回复 cricket1981:
    你只适合做抄袭的东西了,我看了下你空间,全是问人家要源码!!!你不适合做开发!

    2011-05-25 10:50 [回复]
  43. 回复 ye7813629:问源码就等于抄袭?什么逻辑?你学习哪一门技能不是从他人求得的?难道你天生就会?

    2011-05-28 20:49 [回复]
  44. 回复 ye7813629:另外真正适合做开发的人脾气不能像你,你遇事不够冷静。

    2011-05-28 20:50 [回复]
  45. 本来这篇文章也没有什么独创的技术含量,无非是向大家介绍一下opencv如何在android平台上的移植,既然是介绍性的文章就应该让别人容易上手,我看这么多人看了都在问就说明写得还不够明白,按说这篇很吸引人的文章但这么多人看完了还不会,还得来来回回问与答,白白浪费大家的时间,不觉得可惜吗?

    2011-05-28 20:50 [回复]
  46. 0楼
    RoyalVane:

    老师你好~ 我的.so文件已经都生成好了~ 但是编译在Eclipse中import工程后,编译总显示Android library projects cannot be launched 请问这是什么问题呢?

    2011-06-10 13:44 [回复]
  47. 0楼
    hellogv:

    回复 RoyalVane:
    http://www.mydreamsky.tk/?p=434
    网上的解决方法

    2011-06-11 09:33 [回复]
  48. 0楼
    RoyalVane:

    回复 hellogv:谢谢!

    2011-06-11 16:31 [回复]
  49. 0楼
    jojo1717:

    我生成apk了~但装在htc G6 上会闪退~后台好像没出现什么明显异常~请问如何解决呢~

    2011-06-14 16:55 [回复]
  50. 0楼
    ccc003:

    完全按照老师步骤来,其间遇到点问题都一一解决了。
    最终生成apk在N1上成功运行!
    感谢老师!

    2011-06-22 11:16 [回复]
  51. 0楼
    CoN_see:

    编译不了。。

    2011-07-19 10:56 [回复]
  52. 运行cygwin,来到opencv目录下,输入sh build.sh进行编译,编译成功的话会在/opencv/android/libs/生成armeabi和armeabi-v7a两个文件夹,里面都包含libandroid-opencv.so。·····这个不能编译怎么回事?

    2011-07-30 13:40 [回复]
  53. 0楼
    jkwq1124:

    老师,eclipse里面怎么导入opencv工程?

    2011-08-01 12:48 [回复]
  54. 老师为什么我的SVN从这个路径下迁出源码http://android-opencv.googlecode.com/svn/trunk/要账户密码 这个怎么弄的?

    2011-08-03 18:14 [回复]
  55. 0楼
    hellogv:

    [reply]woyaenliniang[/reply]
    试试别的网站

    2011-08-03 19:08 [回复]
  56. 0楼
    hellogv:

    [reply]jkwq1124[/reply]
    opencv是C++做底层,JAVA再做接口,不能像普通的android工程导入的

    2011-08-03 19:08 [回复]
  57. 0楼
    zclovemike:

    老师您好,我现在做一个项目。要用一张全身的图片估算三围,搞了2天了,没有头绪,您这个我看了一下,能用到opencv里的东西,您能给我详细说一下思路么。

    2011-08-12 09:54 [回复]
  58. 0楼
    cryindance:

    [reply]zclovemike[/reply]
    好邪恶的项目…

    2011-08-12 17:40 [回复]
  59. 0楼
    hellogv:

    [reply]zclovemike[/reply]
    这个我也想尝试啊

    2011-08-12 22:54 [回复]
  60. 0楼
    zclovemike:

    老师这个过程我尝试一下 但是在Import进去这个项目以后,编译无法通过啊 有错 怎么办?

    2011-08-15 10:41 [回复]
  61. 0楼
    xcxiong:

    你好,国威老师,我想知道在这个工程中swigwin和cygwin是如何连接的?如果将swigwin分开编译.i文件,又要如何将生成的文件和这个工程相关联?期待您的答案

    2011-08-18 09:22 [回复]
  62. 0楼
    peter_easy:

    目前还没机会用到这个东西。mark下先哈

    2011-08-31 15:27 [回复]
  63. 0楼
    issfith4:

    请问用cygwind 运行sh build.sh 时,提示错误信息,找不到cmath,是什么问题?期待您的答案 ,谢谢!!!

    2011-08-31 16:03 [回复]
  64. 0楼
    hellogv:

    [reply]issfith4[/reply]
    开源就是酱紫的,这个开源库加入了其他开源的话,如果开源协议不允许,就要自己手动添加进去

    2011-09-01 08:56 [回复]
  65. 我遇到个问题希望指教,就是我编译生成/opencv/android/libs/armeabi和 armeabi-v7a两个文件夹生成.so文件后,在导入android工程后总是报错,
    import com.opencv.jni.Calibration;
    import com.opencv.jni.Size;
    import com.opencv.jni.image_pool;这三项报错,然后我看了androidsrccomopencvjni里面却是没有这三个文件,我网上搜了这三个文件并加入后, opencvJNI.这个类又找不到。因此一直无法导出opencv.jar不知如何解决求帮助,谢谢啊!

    2011-09-06 12:03 [回复]
  66. 0楼
    c_qiang0_0:

    现在不要那么复杂了,可以直接下个opencv2.3的,还支持最新的cpu~ 就是不知道浮点数运算快不快。~

    2011-09-19 20:19 [回复]
  67. 0楼
    haojunming:

    我在做相机开发,想设置其焦距
    这是我从网上找到关于焦距设置的方案

    就是手机上有个应用!它是可以实现变焦的!但是,我的应用不行;

    Camera.getParameters().isZoomSupported() –>true
    Camera.getParameters().isSmoothZoomSupported() –>false

    这种情况下,我怎么才能实现变焦呢??

    我有两个手机:
    A.moto me1 ZoomSupported和SmoothZoom都是支持的,我测试了,可以实现变焦!
    B.HTC G8就是上面这种情况,ZoomSupported支持,SmoothZoom不支持,所以调用:Camera.startSmoothZoom(zoom)就没反应了,但是它手机上带了一个拍照程序,有变焦功能,说明

    SmoothZoom不支持的情况下应该也是可以实现变焦功能的!
    我尝试了,使用
    Camera.getParameters().setZoom(zoom);
    或者:
    Camera.Parameters localParameters = mCamera.getParameters();
    mCamera.getParameters().set("taking-picture-zoom", zoom);
    localParameters.set("taking-picture-zoom", zoom);
    都没反应!
    是不是改变了zoom后,还需要是操作???

    另外我将,HTC自带的拍照程序反编译了一下,它代码里,没有发现调用过:
    Camera.startSmoothZoom(zoom);
    但是有发现,调用过:
    Camera.Parameters localParameters = mCamera.getParameters();
    mCamera.getParameters().set("taking-picture-zoom", zoom);
    localParameters.set("taking-picture-zoom", zoom);
    还有就是发现它用了一个.so的动态链接库!

    还有,Camera360这款软件,也实现了变焦!

    不知道他们是怎么实现的!!???

    您帮帮忙

    2011-09-20 14:10 [回复]
  68. 你好,老师,我正在学习使用NDK,我把你这个代码编译,但是不能运行,运行了都显示错误,你能把你这个的源代码都给我吗,就是整个工程的文件,我的邮箱是gaopeng1387@126.com,谢谢啦

    2011-10-03 14:55 [回复]
  69. 0楼
    zhangql87:

    mark

    2011-10-09 11:38 [回复]
  70. 0楼
    icewst:

    老师有没有做过人脸混合的东西,能不能给点思路,这opencv是不是就可以实现?

    2011-10-24 09:56 [回复]
  71. 0楼
    hellogv:

    [reply]icewst[/reply]
    这个倒没有做过呢

    2011-10-24 13:27 [回复]
  72. 请教下 下载android opencv的账号和密码是多少啊

    2011-11-10 00:33 [回复]
  73. 楼主,你使用的是OpenCV哪个版本呢?

    2012-01-03 17:57 [回复]
  74. 现在可以直接下载opencv2.3 了

    2012-04-10 15:55 [回复]
  75. 请问老师,打包的opencv.jar要怎么导入进去,导入的哪个包呢?我发现不用导入opencv.jar程序也能在手机上运行啊,求解

    2012-07-20 16:53 [回复]
  76. 你好, 最近用到opencv的camera碰到个问题, 我用平板测试,camera.grab()能获取到图片帧; 但是把项目放到Moto X910运行,到grab()这个方法就卡住了完全没反应屏幕一片黑啊…. HTC和小米没问题。 然道moto的不支持???

    2012-07-23 18:58 [回复]
  77. 0楼
    caryee89:

    [reply]loveclm860127[/reply]
    是的,很多地方都说不支持moto的,
    官方的buglist 也说明了不支持moto的。

    2012-08-18 16:21 [回复]
  78. [reply]caryee89[/reply]
    谢谢~ 最后通过判读手机如果是moto调用本地摄像头解决了。

    2012-08-29 09:38 [回复]

发表评论


QQ群互动

Linux系统与内核学习群:194051772

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

魔豆之路QR

魔豆的Linux内核之路

魔豆的Linux内核之路

优秀工程师当看优秀书籍

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

赞助商广告

友荐云推荐