歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Ubuntu 10.04下安裝Android-OpenCV2.2 備忘

Ubuntu 10.04下安裝Android-OpenCV2.2 備忘

日期:2017/2/28 16:16:11   编辑:Linux教程

本來在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.NDK

Linux版 http://www.crystax.net/android/ndk-r4.php

放根目錄

2.SDK

http://developer.android.com/sdk/index.html

linux版

放根目錄

3.JDK

sudo add-apt-repository "deb http://archive.canonical.com/ 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

http://sourceforge.net/projects/opencvlibrary/

放到根目錄

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的問題看 http://www.linuxidc.com/Linux/2011-05/35437.htm

7.swig

sudo apt-get install swig

8.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/InstallGuide

9.之後就可以按照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.html

Android.mk裡opencv-android的root和cpp名字改下


OPENCV_BUILD_ROOT := /home/alpha/opencv/android/build
LOCAL_MODULE := ImgToGray
LOCAL_SRC_FILES := ImgToGray.cpp

JNI 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的童鞋傷不起啊。。

Copyright © Linux教程網 All Rights Reserved