本来在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了。)
基本是按照这个()做的。10.04问题不大(比11.04方便太多)
1.NDK
放根目录
2.SDK
linux版
放根目录
3.JDK
sudo add-apt-repository "deb natty partner"
//11.04是natty了。之前的版本号自己改,10.04是lucid
sudo apt-get update
sudo apt-get install sun-Java6-bin sun-java6-jre sun-java6-jdk
java -version
看看如果还是open-jdk的话就用
sudo update-alternatives --config java
和
sudo update-alternatives --config javac
把openjdk改成sunjdk
4.改环境变量
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/profile
umask上插入
export JRE_HOME=/usr/lib/jvm/java-6-sun-1.6.0.24/jre
export PATH=$PATH:$JRE_HOME/bin
export CLASSPATH=$CLASSPATH:/usr/lib/jvm/java-6-sun-1.6.0.24/jre/lib
(这里好象重复了 ..)
. /etc/environment让配置生效(试试 android和adb能跑不)
5.opencv2.2
放到根目录
6.eclipse
sudo apt-get install eclipse
help-install new software-地址填https://dl-ssl.google.com/android/eclipse/
window-preferences-android-sdk location选SDK位置
3.5.2无法装ADT的问题看
7.swig
sudo apt-get install swig
8.opencv on Ubuntu
先把库装上备用
(最少要这几个build-essential libv4l-0 libv4l-dev Python-numpy libgtk2.0-dev pkg-config libjpeg-progs。libjpeg-prog好像改名叫libjpeg-progs了)
之后按照这个做
就编好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之外)参考
(export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib)
(其他有关LD_LIBRARY_PATH的资料 据说是不建议修改bashrc)
11.04的2.6.38内核碰到缺少linux/videodev.h的bug,因为linux-headers-2.6.38移除了videodev.h ..
然后就能跑了。但是后面用这个似乎出了点问题,就又换回10.04了
build一下opencv/android(半小时多。。),跑android-jni,CVCamera ant打包后就有个apk了。是android上摄像头特征检测的程序。
注意最后那个Trouble。android-jni的 ant compile 之前修改build.xml即可
10.android-opencv in eclipse
不想在命令行里打包的,把Android.mk改好在eclipse跑也行
一个简单的边缘检测测试程序,跑之前在sd卡根目录放个camera.jpg文件。。
Android.mk里opencv-android的root和cpp名字改下
OPENCV_BUILD_ROOT := /home/alpha/opencv/android/build
LOCAL_MODULE := ImgToGray
LOCAL_SRC_FILES := ImgToGray.cpp
JNI cpp里形如