本来在Ubuntu 10.10里搭好Android-OpenCV,前天点了update,驱动到Ubuntu 11.04全没了。重装Ubuntu 11.04,发现Ubuntu 11.04的2.6.38内核移除了videodev.h。必需改头才能跑起OpenCV(或者保持和trunk同步,见AndroidTrunk,点击下载)。还是换回Ubuntu 10.04 LTS。现在内核是2.6.32。(6月前打死也不点update了。)基本是按照这个(http://opencv.willowgarage.com/wiki/Android2.2)做的。10.04问题不大(比11.04方便太多)1.NDKLinux版 http://www.crystax.net/android/ndk-r4.php放根目录2.SDKhttp://developer.android.com/sdk/index.htmllinux版放根目录3.JDKsudo add-apt-repository "deb http://archive.canonical.com/ natty partner"//11.04是natty了。之前的版本号自己改,10.04是lucidsudo apt-get update sudo apt-get install sun-java6-bin sun-java6-jre sun-java6-jdkjava -version看看如果还是open-jdk的话就用sudo update-alternatives --config java 和sudo update-alternatives --config javac把openjdk改成sunjdk4.改环境变量sudo gedit /etc/environment 改成形如这样的(版本号自己改),主要是加java path,sdk的tools和platform-tools。PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/lib/jvm/java-6-sun-1.6.0.24/bin:/home/alpha/android-sdk-linux_x86/tools:/home/alpha/android-sdk-linux_x86/platform-tools:/home/alpha/android-ndk-r4-crystax"CLASSPATH="/usr/lib/jvm/java-6-sun-1.6.0.24/lib"JAVA_HOME="/usr/lib/jvm/java-6-sun-1.6.0.24"sudo gedit /etc/profileumask上插入export JRE_HOME=/usr/lib/jvm/java-6-sun-1.6.0.24/jreexport PATH=$PATH:$JRE_HOME/binexport CLASSPATH=$CLASSPATH:/usr/lib/jvm/java-6-sun-1.6.0.24/jre/lib(这里好象重复了 ..). /etc/environment让配置生效(试试 android和adb能跑不)5.opencv2.2http://sourceforge.net/projects/opencvlibrary/放到根目录6.eclipsesudo apt-get install eclipsehelp-install new software-地址填https://dl-ssl.google.com/android/eclipse/window-preferences-android-sdk location选SDK位置
3.5.2无法装ADT的问题看 http://www.linuxidc.com/Linux/2011-05/35437.htm7.swigsudo apt-get install swig8.opencv on Ubuntu先把库装上备用 http://www.linuxidc.com/Linux/2011-01/31305.htm (最少要这几个build-essential libv4l-0 libv4l-dev python-numpy libgtk2.0-dev pkg-config libjpeg-progs。libjpeg-prog好像改名叫libjpeg-progs了)之后按照这个做http://www.linuxidc.com/Linux/2011-05/35438.htm就编好opencv了,主要是把opencv的库放到/usr/local/include里,之后android编译时候要调用。试试facedetect。没有摄像头的试试 ./facedetect lena.jpg碰到这个问题./facedetect: error while loading shared libraries: libopencv_core.so.2.2: cannot open shared object file: No such file or directory的话(除了要安装ffmpeg之外)参考http://www.linuxidc.com/Linux/2011-05/35439.htm(export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib)(其他有关LD_LIBRARY_PATH的资料 http://www.linuxidc.com/Linux/2011-05/35440.htm据说是不建议修改bashrc)11.04的2.6.38内核碰到缺少linux/videodev.h的bug,因为linux-headers-2.6.38移除了videodev.h ..http://www.linuxidc.com/Linux/2011-05/35441.htm需要打这个补丁http://www.linuxidc.com/Linux/2011-05/35442.htm然后就能跑了。但是后面用这个似乎出了点问题,就又换回10.04了
再有问题看http://opencv.willowgarage.com/wiki/InstallGuide9.之后就可以按照http://opencv.willowgarage.com/wiki/Android2.2 里的steps做了build一下opencv/android(半小时多。。),跑android-jni,CVCamera ant打包后就有个apk了。是android上摄像头特征检测的程序。注意最后那个Trouble。android-jni的 ant compile 之前修改build.xml即可10.04可能要升级ant到1.8以上( http://www.linuxidc.com/Linux/2011-05/35443.htm )10.android-opencv in eclipse不想在命令行里打包的,把Android.mk改好在eclipse跑也行一个简单的边缘检测测试程序,跑之前在sd卡根目录放个camera.jpg文件。。点击这里下载 http://www.linuxidc.net/thread-2181-1-1.htmlAndroid.mk里opencv-android的root和cpp名字改下
OPENCV_BUILD_ROOT := /home/alpha/opencv/android/build
LOCAL_MODULE := ImgToGray
LOCAL_SRC_FILES := ImgToGray.cppJNI cpp里形如extern "C" {
JNIEXPORT jintArray JNICALL Java_com_CWY_cvtest_LibFuns_ImgToGray(
JNIEnv* env, jobject obj, jintArray buf, int w, int h);
}
;
JNIEXPORT jintArray JNICALL Java_com_CWY_cvtest_LibFuns_ImgToGray(
JNIEnv* env, jobject obj, jintArray buf, int w, int h) { 具体的找本JNI的书看看。。写好cpp和Android.mk后到工程根目录运行ndk-build (之前PATH加好ndk目录)ps..等我调好OpenCV。。刷了下 http://opencv.willowgarage.com/wiki/Android 发现教程都多了篇。。md岁月蹉跎啊。从0开始弄Java,android,OpenCV,Ubuntu的童鞋伤不起啊。。Mini6410-NFS启动Linux/AndoridUbuntu 10.10 OpenCV 2.2 安装全过程相关资讯 Android Ubuntu教程
- Google 收购 Android 十周年,多图 (07/13/2015 07:14:14)
- Ubuntu教程 - 使用Ubuntu拷贝CD和 (12/18/2013 14:38:16)
- Android 负责人:完全开放和一致体 (05/31/2013 07:56:15)
| - 如果没有 Android 世界会是什么样 (04/17/2015 08:17:32)
- Android 咸鱼翻身史:6年从草根到 (08/11/2013 08:16:27)
- Android 赢得移动之战了吗? (05/06/2013 13:28:13)
|
本文评论 查看全部评论 (0)